import random


def get_best_move(board, scores):
    """
    returns the best move tuple (row, col) that has the highest score in scores
    """
    max_squares = []
    empty_squares = board.get_empty_squares()
    
    # find max score
    max_score = -999
    for square in empty_squares:
        if scores[square[0]][square[1]] >= max_score:
            max_score = scores[square[0]][square[1]]
            
    # find empty squares with max scores
    for square in empty_squares:
        if scores[square[0]][square[1]] == max_score:
            max_squares.append((square[0], square[1]))
            
    return random.choice(max_squares)