Game logic is fleshed out. It can play a move in response to a user move, determine if a user move is valid and if the game is over and the winner, if it is (draws are not handled yet)