added some validation for board boundaries
took logic about whether the player had won out of board and put it into game
changed the methods to get and set the board position to an indexer rather than methods because I think it's clearer
added some comments around my design decisions