Skip to content

Instantly share code, notes, and snippets.

@JL-Cox
Created December 5, 2019 00:35
Show Gist options
  • Save JL-Cox/37999e4155278e29a65ab377b9ac4ada to your computer and use it in GitHub Desktop.
Save JL-Cox/37999e4155278e29a65ab377b9ac4ada to your computer and use it in GitHub Desktop.
CodeWars.com - Tic-Tac-Toe Checker
def isSolved(board):
print(board)
def check_rows(game_board):
for i in range(len(game_board)):
row = (game_board[i][0], game_board[i][1], game_board[i][2])
if (len([i for i in row if i == 1]) == 3):
return 1
elif (len([i for i in row if i == 2]) == 3):
return 2
return None
def check_columns(game_board):
for i in range(len(game_board[0])):
column = (game_board[0][i], game_board[1][i], game_board[2][i])
if (len([i for i in column if i == 1]) == 3):
return 1
elif (len([i for i in column if i == 2]) == 3):
return 2
return None
def stale_or_unfinished(game_board):
for i in range(len(game_board)):
if 0 in game_board[i]:
return -1
return 0
row_win = check_rows(board)
column_win = check_columns(board)
diagnal_r = (board[0][0], board[1][1], board[2][2])
diagnal_l = (board[0][2], board[1][1], board[2][0])
x_diagnal_win = (len([i for i in diagnal_l if i == 1]) == 3) or (len([i for i in diagnal_r if i == 1]) == 3)
y_diagnal_win = (len([i for i in diagnal_l if i == 2]) == 3) or (len([i for i in diagnal_r if i == 2]) == 3)
if row_win != None:
return row_win
elif column_win != None:
return column_win
elif x_diagnal_win:
return 1
elif y_diagnal_win:
return 2
else:
return stale_or_unfinished(board)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment