def get_winner()

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