in simulation/decai/simulation/data/ttt_data_loader.py [0:0]
def get_winner(self, board):
def get_single_winner(line: set):
if len(line) == 1:
val = next(iter(line))
if val != 0:
return val
return None
for row in range(self.width):
result = get_single_winner(set(board[row]))
if result is not None:
return result
for col in range(self.length):
result = get_single_winner(set(board[:, col]))
if result is not None:
return result
result = get_single_winner(set(board.diagonal()))
if result is not None:
return result
diag_vals = set(board[i, self.length - 1 - i] for i in range(self.width))
result = get_single_winner(diag_vals)
if result is not None:
return result
return None