added user input and game tests and refactored game, player, user_input