generated from mwc/lab_tic_tac_toe
55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# 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 inspects the board for winning patterns
|
|
(three identical non-empty marks in any row, column, or diagonal).
|
|
It also checks whether there are any empty squares left — if there
|
|
are none and there is no winner the result is a draw.
|
|
|
|
### Determining which actions are available at a particular state
|
|
|
|
The function scans the board representation and returns the indices or coordinate pairs for empty cells.
|
|
If the state is terminal it returns an empty list.
|
|
|
|
### Showing the board
|
|
|
|
The view module provides formatting and printing utilities that convert the internal state into a nice 3x3 grid
|
|
|
|
### Choosing which action to play on a turn
|
|
|
|
Scans the board for who went last; giving the next placement opportunity to the person who went before the move that was just played
|
|
## 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 | O |
|
|
---+---+--- ---+---+--- ---+---+--- ---+---+---
|
|
X | X | | X | X | O | O | |
|
|
---+---+--- ---+---+--- ---+---+--- ---+---+---
|
|
| | | | O | | | |
|
|
|
|
1) Place X at the middle right to win
|
|
|
|
2) Place the X in the middle right again to block my opponent from winning
|
|
|
|
3) Place X at the top left of the board to gain an opportunity to win on the next turn
|
|
|
|
4) Place X in the middle for possible opportunities in the future and to block the opponents O in the top middle from being of any use.
|
|
|
|
### Initial game state
|
|
|
|
You can get the initial game state using `game.get_initial_state()`.
|
|
Current reward is 0 so neither player has an advantage at the start.
|
|
|
|
|