Files
lab_tic_tac_toe/notes.md

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.