generated from mwc/lab_tic_tac_toe
Checkpoint 2
To decide on a winner, the game needs to check each of the winning combinations on the board for either x symbols or o symbols and then return the correct winner. To do this, I utilized 2 functions, a check_winning_combo, which checked each index in each combination to see if an x or o symbol was present, and then a check_winner which sent each possible winning combination through check_winning combo. If the combo did not have all x's or all o's (a mix of x's and o's and/or blanks) the check_winning combo returned false otherwise it returned true.
This commit is contained in:
parent
18ceeb60b7
commit
2d470c3c89
1
notes.md
1
notes.md
|
@ -30,6 +30,7 @@ and it's your turn, which action would you take? Why?
|
||||||
---+---+--- ---+---+--- ---+---+--- ---+---+---
|
---+---+--- ---+---+--- ---+---+--- ---+---+---
|
||||||
| | | | O | | | |
|
| | | | O | | | |
|
||||||
|
|
||||||
|
|
||||||
### Initial game state
|
### Initial game state
|
||||||
|
|
||||||
You can get the inital game state using game.get_initial_state().
|
You can get the inital game state using game.get_initial_state().
|
||||||
|
|
21
ttt/game.py
21
ttt/game.py
|
@ -58,4 +58,25 @@ class TTTGame:
|
||||||
|
|
||||||
def check_winner(self, state, symbol):
|
def check_winner(self, state, symbol):
|
||||||
"Checks whether the player with `symbol` has won the game."
|
"Checks whether the player with `symbol` has won the game."
|
||||||
|
combos = [
|
||||||
|
[0, 1 ,2],
|
||||||
|
[3, 4, 5],
|
||||||
|
[6, 7, 8],
|
||||||
|
[0, 3, 6],
|
||||||
|
[1, 4 ,7],
|
||||||
|
[2, 5 ,8],
|
||||||
|
[0, 4 ,8],
|
||||||
|
[2, 4 ,6]
|
||||||
|
]
|
||||||
|
for combo in combos:
|
||||||
|
if self.check_winning_combo(state,symbol,combo):
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def check_winning_combo(self, state, symbol, combo):
|
||||||
|
"""Checks whether all three spaces in a combo eg[1,2,3] are
|
||||||
|
filled with a symbol"""
|
||||||
|
for index in combo:
|
||||||
|
if state["board"][index] != symbol:
|
||||||
|
return False
|
||||||
|
return True
|
Loading…
Reference in New Issue