lab_tic_tac_toe/notes.md

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?