30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
def is_solved(board):
|
|
vertical_0 = [board[i][0] for i in range(len(board))]
|
|
vertical_1 = [board[i][1] for i in range(len(board))]
|
|
vertical_2 = [board[i][2] for i in range(len(board))]
|
|
diagonal_l = [board[i][i] for i in range(len(board))]
|
|
diagonal_r = [board[i][len(board) - 1 - i] for i in range(len(board))]
|
|
|
|
if len(set(board[0])) == 1 and 0 not in set(board[0]):
|
|
return board[0][0]
|
|
elif len(set(board[1])) == 1 and 0 not in set(board[1]):
|
|
return board[1][0]
|
|
elif len(set(board[2])) == 1 and 0 not in set(board[2]):
|
|
return board[2][0]
|
|
elif len(set(board[2])) == 1 and 0 not in set(board[2]):
|
|
return board[2][0]
|
|
elif len(set(vertical_0)) == 1 and 0 not in set(vertical_0):
|
|
return board[0][0]
|
|
elif len(set(vertical_1)) == 1 and 0 not in set(vertical_1):
|
|
return board[1][1]
|
|
elif len(set(vertical_2)) == 1 and 0 not in set(vertical_2):
|
|
return board[2][2]
|
|
elif len(set(diagonal_l)) == 1 and 0 not in set(diagonal_l):
|
|
return board[0][0]
|
|
elif len(set(diagonal_r)) == 1 and 0 not in set(diagonal_r):
|
|
return board[0][2]
|
|
elif 0 in board[0] or 0 in board[1] or 0 in board[2]:
|
|
return -1
|
|
else:
|
|
return 0
|