1.9 KiB
Tic Tac Toe notes
Checkpoint 1 Notes
Which class is responsible for each of the following behaviors? For each, explain how the behavior is accomplished.
Checking to see whether the game is over
TTTGame checks whether the board is full and which player (if any) wins. If a player meets a win condition (yet to be defined) or if all spaces are full and no additional moves are possible, the end of the game is (or should be) triggered in is_over()
Determining which actions are available at a particular state
TTTGame generates the list of available actions based on the current state
Showing the board
TTTView controls generating the board and printing it to the screen through the print_board() and get_action() methods
Choosing which action to play on a turn
TTTHumanPlayer allows the user to play an action based on the list of available actions generated
Checkpoint 2 Notes
TTT Strategy
For each of the following board states, if you are playing as X and it's your turn, which action would you take? Why?
| O | O | | O x | X | X | O |
---+---+--- ---+---+--- ---+---+--- ---+---+---
X | X | x | X | x X | O | O | x |
---+---+--- ---+---+--- ---+---+--- ---+---+---
| | | | O | | | |
For #1, choosing 6 wins the game. For #2, choosing 6 blocks O from winning. For #3, choosing 0 gives a win on the next turn regardless of where O blocks. For #4, choosing 4 means O has to block, then if X chooses 6 on the next turn, there is a guaranteed win in 2 or 3 regardless of where O blocks.
Initial game state
You can get the inital game state using game.get_initial_state(). What is the current and future reward for this state? What does this mean?
The current and future reward for this state is 0 which tells me there are as many games where x wins as loses and most games end in a draw? Does this mean it's a fair game?