2.4 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
The game class checks if the game is over using the is_over method.
Determining which actions are available at a particular state
The game class also does this through the get_actions method
Showing the board
The view class does this through the print_board method
Choosing which action to play on a turn
The player class contains the choose_action method which allows the player to choose whicn place to play.
Checkpoint 2 Notes
I was able to get the game to correctly determine who the winner was. I understand that there's an array that I'm accessing, and that indexes 0 through 9 correspond to the different spaces on the board starting on the top left and going across the row, then down to the left of the next row, etc. What I do not understand is what state is and why we need to use state["board"][index] to access something on the boare
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?
0 | O | O 0 | 1 | O 0 | X | 2 X | O | 2 ---+---+--- ---+---+--- ---+---+--- ---+---+--- X | X | 5 3 | X | 5 X | O | O 3 | 4 | 5 ---+---+--- ---+---+--- ---+---+--- ---+---+--- 6 | 7 | 8 6 | 7 | O 6 | 7 | 8 6 | 7 | 8
1 - You should play in space 5, since you'll win the game. 2 - You should play in space 5 since that will block the O player from winning and also give you two in a row. 3 - You should play in space 0, since that will give you two chances to win on your next move and the other player can only block one of them. 4 - Play in space 4. This blocks the other player from using the O they placed.
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? I think the current reward is 1, meaning x wins, and the future reward is 0. This means that at the beginning of the game, x who is the first player is likely to win, but after the computer tests all of it's cases, it's likely that the game will end in a draw. This makes sense to me. It wasn't too difficult to tie with the computer, however it was difficult to beat the computer.