generated from mwc/lab_tic_tac_toe
added win conditions to check_winner in game.py
What I changed I added the 8 possible tic-tac-toe win conditions to check_winner and compare the values in the state with the symbol passed to the method Why I changed it It took a WHILE to figure out how to actually read the current state of the game, but once I had that, I was able to figure out how to check it for the symbol being sought. Estimate for remaining time to finish assignment: [1 hour?] I thought it was "how long did it take" now "how long remaining" originally.
This commit is contained in:
14
ttt/game.py
14
ttt/game.py
@@ -26,6 +26,7 @@ class TTTGame:
|
||||
|
||||
def is_over(self, state):
|
||||
"Checks whether the game is over."
|
||||
# FALSE because blank FALSE because no markers FALSE because no markers
|
||||
return self.board_is_full(state) or self.check_winner(state, 'X') or self.check_winner(state, 'O')
|
||||
|
||||
def get_reward(self, state):
|
||||
@@ -58,4 +59,17 @@ class TTTGame:
|
||||
|
||||
def check_winner(self, state, symbol):
|
||||
"Checks whether the player with `symbol` has won the game."
|
||||
currentState = state["board"]
|
||||
# possible tic tac toes: 012 345 678 036 147 258 048 246
|
||||
for i in range(0,7,3):
|
||||
if currentState[i] == symbol and currentState[i+1] == symbol and currentState[i+2] == symbol:
|
||||
return True
|
||||
for i in range(3):
|
||||
if currentState[i] == symbol and currentState[i+3] == symbol and currentState[i+6] == symbol:
|
||||
return True
|
||||
if currentState[0] == symbol and currentState[4] == symbol and currentState[8] == symbol:
|
||||
return True
|
||||
if currentState[2] == symbol and currentState[4] == symbol and currentState[6] == symbol:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user