def METHOD_NAME(self):
    # Check horizontal
    for across in self.board:
        value = sum(across)
        if value == 3:
            return self.O
        elif value == -3:
            return self.X
    # Check vertical
    for line in range(3):
        value = self.board[0][line] + self.board[1][line] + self.board[2][line]
        if value == 3:
            return self.O
        elif value == -3:
            return self.X
    # Check diagonals
    diag = self.board[0][2] + self.board[1][1] + self.board[2][0]
    if diag == 3:
        return self.O
    elif diag == -3:
        return self.X
    diag = self.board[0][0] + self.board[1][1] + self.board[2][2]
    if diag == -3:
        return self.X
    elif diag == 3:
        return self.O
    # If we're here, we need to check if a tie has been reached.
    if all(i != 0 for row in self.board for i in row):
        return self.Tie
    return None