def validate_move(move, turn, board):
    """
    Determine if the next move is valid for the current player
    :param move:
    :param turn:
    :param board:
    :return: boolean flag for if the move is valid as well as the current gamestate dictionary
    """
    if turn == 1:
        piece = 'X'
    else:
        piece = 'O'

    try:
        if board[move[:-1]][move] not in ('X', 'O'):
            board[move[:-1]][move] = piece
            return True, board
        else:
            return False, board
    except KeyError:
        return False, board