Пример #1
1
 def main_final():
     print(
         "Welcome to AM's Turf Management System\nPress 1 if you are an existing User\nPress any other key to "
         "create an acoount")
     n = int(input())
     if n == 1:
         print(
             "Welcome back User\nIf you are an owner press 1\nIf you are an employee/manager press 2\n if you "
             "are an customer press 3")
         ch = int(input())
         if ch == 1:
             Owner.owner_main()
         elif ch == 2:
             Manager.manager_main()
         elif ch == 3:
             Cust.cust_main()
         else:
             print("Damn! we think you didn't get that, invalid syntax")
     else:
         print(
             "Press 1 if you want to sign up as a owner\nPress 2 if you want to sign up as a manager\nPress 3 "
             "you want to sign up as a Customer")
         ch = int(input())
         if ch == 1:
             user = input("Enter a username of your choice")
             passwd = input("enter a pass of your choice")
             Creator.creator_ow(user, passwd, 1)
         elif ch == 2:
             user = input("Enter a username of your choice")
             passwd = input("enter a pass of your choice")
             Creator.creator_ow(user, passwd, 2)
Пример #2
0
class XController(object):

    def __init__(self, typecode):
        self.started = False
        self.probe = ListeningProbe(typecode)
        if not self.probe.noplaying:
            self.xiaquery = TagQuery(self.probe.lid, dbfile=DB_FILE)
            self.crt = Creator(TEMP_DIR, self.probe.lpath)
        else:
            raise ControllerError('no current listening')

    def start(self):
        self.started = True
        self.pr1 = self.xiaquery.expandInfo()
        self.pr2 = self.crt.ensureEnv( self.xiaquery.gettags() )
        self.pr3 = self.crt.move()
        

    def ahk_display(self):
        print u'Xiami_controller'
        if self.started:
            print self.pr1
            print self.pr2
            print self.pr3
        else:
            print u'Not Yet Started!'
Пример #3
0
def main(input_path, output_path):
    with open(input_path, 'r') as f:
        input_data = json.load(f)

    creator = Creator(input_data['style'])

    if not os.path.exists(output_path):
        os.makedirs(output_path)

    for card_name, card_data in input_data['cards'].items():
        creator.create_card(
            os.path.join(output_path, card_name + '.png'),
            card_data,
        )
Пример #4
0
    def _simulate_population(cls, i, seed_offset, population_size,
                             string_size):
        seed(19520624 + 10 * i + seed_offset)
        creator = Creator(population_size=population_size,
                          string_size=string_size)

        population = creator.create_population()
        evolved_population, evaluations = creator.evolve_population(population)

        success = False
        if cls._found_global_optimum(creator, evolved_population, string_size):
            success = True

        return success, evaluations
Пример #5
0
def main(argv):
	n = 100000
	loops = 1000
	threads = 0
	if len(argv) >= 4:
		n = int(argv[1])
		loops = int(argv[2])
		threads = int(argv[3])
		
	c = Creator(n, loops)
	if threads == 1:
		c.start()
		sleep(1000.0)
	else:
		c.body()
Пример #6
0
 def __init__(self, typecode):
     self.started = False
     self.probe = ListeningProbe(typecode)
     if not self.probe.noplaying:
         self.xiaquery = TagQuery(self.probe.lid, dbfile=DB_FILE)
         self.crt = Creator(TEMP_DIR, self.probe.lpath)
     else:
         raise ControllerError('no current listening')
Пример #7
0
 def __init__(self, res=(0,0)):
     pygame.init()
     pygame.mixer.init()
     self.screen = pygame.display.set_mode(res,
                                            RESIZABLE|FULLSCREEN)
     self.creator = Creator(self.screen)
     self.hConn = harmonyConn('sundhome.com', 1234)
     self.updateQ = UpdateQ(self.hConn)
     self.ui = HarmonyUi(self.screen, self.creator.get_mouse_pos())
Пример #8
0
    def find_minimum_population_size(cls,
                                     string_size,
                                     initial_population_size=5,
                                     num_runs=5) -> int:
        population_size = initial_population_size
        lower_bound = 0
        upper_bound = 81920
        found_upper_bound = False
        found_global_optimum_count = 0
        while lower_bound != upper_bound or found_global_optimum_count != num_runs:
            found_global_optimum_count = 0
            creator = Creator(population_size=population_size,
                              string_size=string_size)
            population = creator.create_population()

            for _ in range(num_runs):
                evolved_population = creator.evolve_population(population)
                if cls._found_global_optimum(creator, evolved_population,
                                             string_size):
                    found_global_optimum_count += 1

            if found_global_optimum_count > 0:  # Found global optimum.
                upper_bound = population_size
                if not found_upper_bound:
                    lower_bound = int(population_size / 2)
                population_size = cls._midpoint(lower_bound, upper_bound)
                found_upper_bound = True
            else:  # Failed to find global optimum 5/5 times
                if lower_bound == upper_bound:  # Lower and upper bound converged
                    # Increment population size until it succeeds 5/5 times
                    population_size += 2
                    lower_bound = population_size
                    upper_bound = population_size
                elif found_upper_bound:  # Found upper bound and failed.
                    # Increase lower bound and population size.
                    population_size = cls._midpoint(lower_bound, upper_bound)
                    lower_bound = population_size
                    if upper_bound - lower_bound == 2:
                        lower_bound += 2
                else:  # Failed without finding upper bound.
                    population_size *= 2  # Double population size

        return upper_bound
Пример #9
0
 def _set_y_loc(self, y):
     while True:
         self.win_y_loc = self.source.win_y_loc
         invisible = self.win_y_loc*self.lr
         block = self.mem.get_data(invisible, self.rows*self.lr)
         self.creator = Creator(block, self.lr, self.win_y_loc)
         if len(self.creator.lines) > self.rows-2 or not self.win_y_loc:
             break
         y += 1
         self.source.win_y_loc -= 1
     return y
Пример #10
0
    def run(s):

        s.log.info('Started host node {0} on {1}'.format(s.nodename, s.address))

        # Make some count of creator
        for i in range(0, s.creators):

            # Create instance
            creator = Creator(s.nodename)

            # Run thread
            creator.start()

            # Logging
            s.log.info('Started creator thread: {0}'.format(creator.name))

        # Make connector
        connector = Connector(s.nodename)

        # Run connector thread
        connector.start()

        # Logging
        s.log.info('Started connector thread: {0}'.format(connector.name))
Пример #11
0
 def start(self):
     self.started = True
     for n in range(len(self.probe.playing.lpath)):
         lpath = self.probe.playing.lpath[n]
         lid = self.probe.playing.lid[n]
         q = TagQuery(lid, dbfile=DB_FILE)
         c = Creator(TEMP_DIR, lpath)
         q.expandInfo()
         tags = q.gettags()
         c.ensureEnv(tags)
         print n
         c.move()
         c.clear()
     print u'<\t -All Done!- \t>'
Пример #12
0
 def update_quiz(self, type, size=10):
     creator = Creator(type, size)
     self.quiz = creator.get_quiz()
     """
Пример #13
0
from creator import Creator

c = Creator("dewiki")
dataset = c.create(10000, batch_size=100, fname="dewiki_10000.json.bz2")
Пример #14
0
import logging

from creator import Creator

logging.basicConfig(level=logging.INFO)
logging.getLogger('requests').setLevel(logging.WARNING)
logging.getLogger('urllib3').setLevel(logging.WARNING)
logger = logging.getLogger()
fh = logging.FileHandler("creator.log")
logger.addHandler(fh)
logger.info("Starting...")
c = Creator("dewiki")
dataset = c.create(start=20170101000000,
                   stop=20171231235959,
                   batch_size=50,
                   fname="test2017.json.bz2")
Пример #15
0
    def __init__(self, root, **kwargs):
        super().__init__(root, **kwargs)
        self.content = ttk.Frame(root, padding=(5, 5, 5, 5))
        self.content.grid(column=0, row=0, sticky=(N, W, E, S))
        self.content.grid_columnconfigure(0, weight=1)
        self.content.grid_columnconfigure(1, weight=1)
        self.content.grid_columnconfigure(2, weight=1)
        self.content.grid_columnconfigure(3, weight=1)
        self.content.grid_rowconfigure(0, weight=1)
        self.content.grid_rowconfigure(1, weight=100)
        self.content.grid_rowconfigure(2, weight=1)
        self.content.grid_rowconfigure(3, weight=1)

        self.logic = Creator()
        ######
        # NAME
        #
        # LABEL FRAME
        self.names_lframe = ttk.Labelframe(self.content,
                                           text='Name',
                                           padding=(10, 10, 10, 10))
        self.names_lframe.grid_columnconfigure(0, weight=1)
        # ENTRY
        self.pack_name = StringVar()
        self_pack_name_entry = ttk.Entry(self.names_lframe,
                                         textvariable=self.pack_name)
        self.pack_name.trace_add("write", self.name_has_been_written)
        # NAME GRID
        self_pack_name_entry.grid(column=0,
                                  row=0,
                                  columnspan=1,
                                  sticky=(N, W, E))

        # TODO: Make tab list items bigger in every way
        ######
        # TABS
        #
        # LABEL FRAME
        self.tabs_lframe = ttk.Labelframe(self.content,
                                          text='Tabs & Codes',
                                          padding=(10, 10, 10, 10))
        self.tabs_lframe.grid_rowconfigure(0, weight=1)
        self.tabs_lframe.grid_columnconfigure(0, weight=1)
        # ADD BUTTON
        self.add_tabs_btn = ttk.Button(self.tabs_lframe,
                                       text="Add",
                                       command=self.on_add_tabs_btn_click)
        # REMOVE BUTTON
        self.remove_tabs_btn = ttk.Button(self.tabs_lframe,
                                          text="Remove",
                                          command=self.on_remove_tab_btn_click)
        # TABS LISTBOX
        self.tab_list = StringVar(value=self.logic.tabs)
        self.tabs_lbox = Listbox(self.tabs_lframe,
                                 listvariable=self.tab_list,
                                 selectmode='extended')
        # TABS GRID
        self.tabs_lbox.grid(column=0,
                            columnspan=2,
                            row=0,
                            rowspan=2,
                            sticky=(N, S, W, E))
        self.add_tabs_btn.grid(column=0, columnspan=1, row=2, sticky=(S, W))
        self.remove_tabs_btn.grid(column=1, columnspan=1, row=2, sticky=(S, E))

        ######
        # BANNER
        #
        # LABEL FRAME
        self.banner_lframe = ttk.Labelframe(self.content,
                                            text='Banner (optional)',
                                            padding=(10, 10, 10, 10))
        # ADD BUTTON
        self.choose_banner_btn = ttk.Button(
            self.banner_lframe,
            text='Choose Banner',
            command=self.on_choose_banner_click)
        # REMOVE BUTTON
        self.remove_banner_btn = ttk.Button(
            self.banner_lframe,
            text='Remove Banner',
            command=self.on_remove_banner_click)
        # IMAGE
        self.banner_image = ImageTk.PhotoImage(Image.open(EMPTY_BANNER))
        self.banner_image_label = ttk.Label(self.banner_lframe,
                                            image=self.banner_image)
        # BANNER GRID
        self.banner_image_label.grid(column=0, row=1)
        self.choose_banner_btn.grid(column=0, row=0, sticky=W)
        self.banner_image_label.lower(self.choose_banner_btn)
        self.remove_banner_btn.grid(column=0, row=0, sticky=E)

        ######
        # ATTRACT
        #
        # LABEL FRAME
        self.attract_lframe = ttk.Labelframe(self.content,
                                             text='Attract (optional)',
                                             padding=(10, 10, 10, 10))
        # ENTRY
        self.attract_location = StringVar()
        self.attract_entry = ttk.Entry(self.attract_lframe,
                                       textvariable=self.attract_location)
        # CHOOSE ATTRACT BUTTON
        self.choose_attract_button = ttk.Button(
            self.attract_lframe,
            text='Choose',
            command=self.on_choose_attract_click)
        # ATTRACT GRID
        self.choose_attract_button.grid(column=1, row=0)
        self.attract_entry.grid(column=0, row=0)

        ######
        # NPROFILE
        #
        # LABEL FRAME
        self.nprofile_lframe = ttk.Labelframe(self.content,
                                              text='nprofile (optional)',
                                              padding=(10, 10, 10, 10))
        self.nprofile_location = StringVar()
        self.nprofile_entry = ttk.Entry(self.nprofile_lframe,
                                        textvariable=self.nprofile_location)
        # CHOOSE ATTRACT BUTTON
        self.choose_nprofile_button = ttk.Button(
            self.nprofile_lframe,
            text='Choose',
            command=self.on_choose_nprofile_click)
        # ATTRACT GRID
        self.choose_nprofile_button.grid(column=1, row=0)
        self.nprofile_entry.grid(column=0, row=0)

        ######
        # SEPARATOR
        #
        # self.separator = ttk.Separator(self.content, orient=HORIZONTAL)
        ######
        # CREATE PACK BUTTON
        self.create_pack_btn = ttk.Button(self.content,
                                          text='Save pack',
                                          command=self.on_create_pack_click)

        # ROOT GRID
        self.names_lframe.grid(column=0,
                               columnspan=2,
                               row=0,
                               rowspan=1,
                               padx=5,
                               pady=5,
                               sticky=(N, E, W))
        self.tabs_lframe.grid(column=0,
                              columnspan=2,
                              row=1,
                              rowspan=2,
                              padx=5,
                              pady=5,
                              sticky=(N, S, E, W))
        self.banner_lframe.grid(column=2,
                                columnspan=2,
                                row=0,
                                rowspan=3,
                                padx=5,
                                pady=5,
                                sticky=(N, S, E, W))
        self.attract_lframe.grid(column=0,
                                 columnspan=2,
                                 row=3,
                                 rowspan=1,
                                 padx=5,
                                 pady=5,
                                 sticky=(N, E, W))
        self.nprofile_lframe.grid(column=2,
                                  columnspan=2,
                                  row=3,
                                  rowspan=1,
                                  padx=5,
                                  pady=5,
                                  sticky=(N, E, W))
        # self.separator.grid(column=0, columnspan=4, row=4, rowspan=1, padx=5, pady=5)
        self.create_pack_btn.grid(column=3,
                                  columnspan=1,
                                  row=5,
                                  rowspan=1,
                                  padx=5,
                                  pady=5,
                                  sticky=E)
Пример #16
0
import numpy as np
from creator import Creator
from viewer import Viewer
from advertiser import Advertiser
from operator import itemgetter

#np.random.seed(0)

# creating players
num_creators = 15
num_advertisers = 10
num_viewers = 40

creators = [Creator(i, 5, 1000) for i in range(num_creators)]
creators[0].max_p = 30
creators[1].max_p = 20
creators[2].max_p = 8
advertisers = [
    Advertiser(i, 1000, num_creators) for i in range(num_advertisers)
]
viewers = [Viewer(i, 100, num_creators) for i in range(num_viewers)]

rounds = 20
prev_bids = None
prev_prices = [None] * num_creators

creator_values = [[i] for i in range(num_creators)]
advertiser_values = [[i] for i in range(num_advertisers)]
viewer_values = [[i] for i in range(num_viewers)]

for c in creators:
 def setUpClass(cls):
     seed(1)
     cls._creator = Creator(population_size=6, string_size=5)
Пример #18
0
def client_code(creator: Creator) -> None:
    print(creator.some_operation())
Пример #19
0
class MainWindow(ttk.Frame):
    def __init__(self, root, **kwargs):
        super().__init__(root, **kwargs)
        self.content = ttk.Frame(root, padding=(5, 5, 5, 5))
        self.content.grid(column=0, row=0, sticky=(N, W, E, S))
        self.content.grid_columnconfigure(0, weight=1)
        self.content.grid_columnconfigure(1, weight=1)
        self.content.grid_columnconfigure(2, weight=1)
        self.content.grid_columnconfigure(3, weight=1)
        self.content.grid_rowconfigure(0, weight=1)
        self.content.grid_rowconfigure(1, weight=100)
        self.content.grid_rowconfigure(2, weight=1)
        self.content.grid_rowconfigure(3, weight=1)

        self.logic = Creator()
        ######
        # NAME
        #
        # LABEL FRAME
        self.names_lframe = ttk.Labelframe(self.content,
                                           text='Name',
                                           padding=(10, 10, 10, 10))
        self.names_lframe.grid_columnconfigure(0, weight=1)
        # ENTRY
        self.pack_name = StringVar()
        self_pack_name_entry = ttk.Entry(self.names_lframe,
                                         textvariable=self.pack_name)
        self.pack_name.trace_add("write", self.name_has_been_written)
        # NAME GRID
        self_pack_name_entry.grid(column=0,
                                  row=0,
                                  columnspan=1,
                                  sticky=(N, W, E))

        # TODO: Make tab list items bigger in every way
        ######
        # TABS
        #
        # LABEL FRAME
        self.tabs_lframe = ttk.Labelframe(self.content,
                                          text='Tabs & Codes',
                                          padding=(10, 10, 10, 10))
        self.tabs_lframe.grid_rowconfigure(0, weight=1)
        self.tabs_lframe.grid_columnconfigure(0, weight=1)
        # ADD BUTTON
        self.add_tabs_btn = ttk.Button(self.tabs_lframe,
                                       text="Add",
                                       command=self.on_add_tabs_btn_click)
        # REMOVE BUTTON
        self.remove_tabs_btn = ttk.Button(self.tabs_lframe,
                                          text="Remove",
                                          command=self.on_remove_tab_btn_click)
        # TABS LISTBOX
        self.tab_list = StringVar(value=self.logic.tabs)
        self.tabs_lbox = Listbox(self.tabs_lframe,
                                 listvariable=self.tab_list,
                                 selectmode='extended')
        # TABS GRID
        self.tabs_lbox.grid(column=0,
                            columnspan=2,
                            row=0,
                            rowspan=2,
                            sticky=(N, S, W, E))
        self.add_tabs_btn.grid(column=0, columnspan=1, row=2, sticky=(S, W))
        self.remove_tabs_btn.grid(column=1, columnspan=1, row=2, sticky=(S, E))

        ######
        # BANNER
        #
        # LABEL FRAME
        self.banner_lframe = ttk.Labelframe(self.content,
                                            text='Banner (optional)',
                                            padding=(10, 10, 10, 10))
        # ADD BUTTON
        self.choose_banner_btn = ttk.Button(
            self.banner_lframe,
            text='Choose Banner',
            command=self.on_choose_banner_click)
        # REMOVE BUTTON
        self.remove_banner_btn = ttk.Button(
            self.banner_lframe,
            text='Remove Banner',
            command=self.on_remove_banner_click)
        # IMAGE
        self.banner_image = ImageTk.PhotoImage(Image.open(EMPTY_BANNER))
        self.banner_image_label = ttk.Label(self.banner_lframe,
                                            image=self.banner_image)
        # BANNER GRID
        self.banner_image_label.grid(column=0, row=1)
        self.choose_banner_btn.grid(column=0, row=0, sticky=W)
        self.banner_image_label.lower(self.choose_banner_btn)
        self.remove_banner_btn.grid(column=0, row=0, sticky=E)

        ######
        # ATTRACT
        #
        # LABEL FRAME
        self.attract_lframe = ttk.Labelframe(self.content,
                                             text='Attract (optional)',
                                             padding=(10, 10, 10, 10))
        # ENTRY
        self.attract_location = StringVar()
        self.attract_entry = ttk.Entry(self.attract_lframe,
                                       textvariable=self.attract_location)
        # CHOOSE ATTRACT BUTTON
        self.choose_attract_button = ttk.Button(
            self.attract_lframe,
            text='Choose',
            command=self.on_choose_attract_click)
        # ATTRACT GRID
        self.choose_attract_button.grid(column=1, row=0)
        self.attract_entry.grid(column=0, row=0)

        ######
        # NPROFILE
        #
        # LABEL FRAME
        self.nprofile_lframe = ttk.Labelframe(self.content,
                                              text='nprofile (optional)',
                                              padding=(10, 10, 10, 10))
        self.nprofile_location = StringVar()
        self.nprofile_entry = ttk.Entry(self.nprofile_lframe,
                                        textvariable=self.nprofile_location)
        # CHOOSE ATTRACT BUTTON
        self.choose_nprofile_button = ttk.Button(
            self.nprofile_lframe,
            text='Choose',
            command=self.on_choose_nprofile_click)
        # ATTRACT GRID
        self.choose_nprofile_button.grid(column=1, row=0)
        self.nprofile_entry.grid(column=0, row=0)

        ######
        # SEPARATOR
        #
        # self.separator = ttk.Separator(self.content, orient=HORIZONTAL)
        ######
        # CREATE PACK BUTTON
        self.create_pack_btn = ttk.Button(self.content,
                                          text='Save pack',
                                          command=self.on_create_pack_click)

        # ROOT GRID
        self.names_lframe.grid(column=0,
                               columnspan=2,
                               row=0,
                               rowspan=1,
                               padx=5,
                               pady=5,
                               sticky=(N, E, W))
        self.tabs_lframe.grid(column=0,
                              columnspan=2,
                              row=1,
                              rowspan=2,
                              padx=5,
                              pady=5,
                              sticky=(N, S, E, W))
        self.banner_lframe.grid(column=2,
                                columnspan=2,
                                row=0,
                                rowspan=3,
                                padx=5,
                                pady=5,
                                sticky=(N, S, E, W))
        self.attract_lframe.grid(column=0,
                                 columnspan=2,
                                 row=3,
                                 rowspan=1,
                                 padx=5,
                                 pady=5,
                                 sticky=(N, E, W))
        self.nprofile_lframe.grid(column=2,
                                  columnspan=2,
                                  row=3,
                                  rowspan=1,
                                  padx=5,
                                  pady=5,
                                  sticky=(N, E, W))
        # self.separator.grid(column=0, columnspan=4, row=4, rowspan=1, padx=5, pady=5)
        self.create_pack_btn.grid(column=3,
                                  columnspan=1,
                                  row=5,
                                  rowspan=1,
                                  padx=5,
                                  pady=5,
                                  sticky=E)

    def on_add_tabs_btn_click(self):
        new_tabs = filedialog.askopenfilenames()
        tabs_exist = []
        temp_tabs = self.logic.tabs.copy()

        # Check if those tabs have already been added
        for tab in new_tabs:
            if not self.logic.has_tab(tab):
                temp_tabs.append(tab)
            else:
                tabs_exist.append(tab)
        self.logic.tabs = temp_tabs.copy()

        # If some tabs had already been added, ask if they want to replace them
        if not len(tabs_exist) == 0:
            existing_tabs_str = ''
            for tab in tabs_exist:
                existing_tabs_str = existing_tabs_str + os.path.basename(
                    tab) + '\n'
            tabs_exist_question = TABS_EXIST_WARNING_MESSAGE + existing_tabs_str + TABS_EXIST_WARNING_QUESTION

            if messagebox.askyesno(WARNING_TITLE, tabs_exist_question):
                print("Replace")
                for replacing_tab in tabs_exist:
                    # TODO: Verify if the created pack has the correct tabs
                    for tab in self.logic.tabs:
                        if self.logic.has_tab(replacing_tab):
                            print("Replacing tab:", replacing_tab)
                            print("Tab:", tab)
                            self.logic.tabs.remove(tab)
                            self.logic.tabs.append(replacing_tab)
                    tabs_exist.remove(replacing_tab)
            else:
                print("Do not replace")
        self.update_tab_list()

    def on_remove_tab_btn_click(self):
        tabs_to_remove = []
        for tab in self.tabs_lbox.curselection():
            tabs_to_remove.append(self.logic.tabs[tab])
        for tab in tabs_to_remove:
            self.logic.tabs.remove(tab)
        self.update_tab_list()

    def update_tab_list(self):
        tabs_basenames = []
        for tab in self.logic.tabs:
            tabs_basenames.append(os.path.basename(tab))
        self.tab_list.set(tabs_basenames)

    def on_choose_banner_click(self):
        banner = filedialog.askopenfilename()
        self.logic.banner = banner
        if self.logic.has_banner():
            if self.logic.validate_banner():
                # Hide add banner button
                self.banner_image = ImageTk.PhotoImage(
                    Image.open(self.logic.banner).resize((277, 480)))
                self.banner_image_label.configure(image=self.banner_image)
            else:
                messagebox.showerror(
                    "Error loading banner",
                    "Chosen file isn't an image! Currently it NEEDS to be a 900x1300 file btw it's gonna change eventually kthxbai"
                )
                self.logic.banner = ''

    def on_remove_banner_click(self):
        self.logic.remove_banner()
        self.banner_image = ImageTk.PhotoImage(Image.open(EMPTY_BANNER))
        self.banner_image_label.configure(image=self.banner_image)

    def on_choose_attract_click(self):
        attract = filedialog.askopenfilename()
        if not attract == '':
            self.logic.remove_attracts()
            self.logic.attracts.append(attract)
            self.attract_location.set(os.path.basename(self.logic.attracts[0]))

    def on_choose_nprofile_click(self):
        # TODO all the checks
        nprofile = filedialog.askopenfilename()
        self.logic.nprofile = nprofile
        self.nprofile_location.set(self.logic.nprofile)

    def on_create_pack_click(self):
        if not self.logic.has_name():
            messagebox.showerror("Error creating pack",
                                 "A pack name is required!")
        elif not self.logic.has_tabs():
            messagebox.showerror("Error creating pack",
                                 "Tab files are required!")
        else:
            self.logic.create_pack()

    # DO NOT REMOVE *ARGS, they ARE needed
    def name_has_been_written(self, *args):
        self.logic.name = self.pack_name.get()
Пример #20
0
class Harmony(object):
    screen = None
    creator = None
    updateQ = None
    hConn = None
    ui = None
    update = None
    
    def __init__(self, res=(0,0)):
        pygame.init()
        pygame.mixer.init()
        self.screen = pygame.display.set_mode(res,
                                               RESIZABLE|FULLSCREEN)
        self.creator = Creator(self.screen)
        self.hConn = harmonyConn('sundhome.com', 1234)
        self.updateQ = UpdateQ(self.hConn)
        self.ui = HarmonyUi(self.screen, self.creator.get_mouse_pos())
      
    def parse_update(self, update):
        if update[0] == 'universe':
            self.creator.update_time(self.updateQ.timestamp)
            self.creator.update_universe(update[2])
            

    def handle_events(self):
         mousePos = self.creator.get_mouse_pos()
         key_pressed = pygame.key.get_pressed()
	 for event in pygame.event.get():
            if   event.type == pygame.QUIT: sys.exit(0)
            elif event.type == pygame.KEYDOWN:
                if event.key == K_ESCAPE:
                    self.screen = pygame.display.set_mode(RESIZE, 0, 0) 
                elif event.key == K_q:
                    sys.exit()
                elif event.key == K_s:
                    self.hConn.addStar(mousePos[0], mousePos[1], 
               			       self.ui.get_edit_key())
                
         if key_pressed[K_RIGHT]:
             self.creator.scroll_right()
         if key_pressed[K_LEFT]:
             self.creator.scroll_left()
         if key_pressed[K_DOWN]:
             self.creator.scroll_down()
         if key_pressed[K_UP]:
             self.creator.scroll_up()

    def graphics_tick(self):
        self.handle_events()
        self.creator.update_collisions()
        self.creator.draw_universe()
        self.ui.create_fields()
        self.ui.draw_ui()
        self.screen.blit(self.ui.image, self.ui.rect)
        pygame.display.flip()

    def network_tick(self):
        if self.updateQ.check_for_update():
            update = self.updateQ.get_next_update()
	  #  print update
            if update:
                self.parse_update(update)     
            
#    def snd_tick(self):

    def run(self):
        clock = pygame.time.Clock()

        while True:
            self.screen.fill(BG_COLOR)
            self.network_tick()
            self.graphics_tick()
          #  self.snd_tick()
            clock.tick(40)
Пример #21
0
 def _found_global_optimum(cls, creator: Creator,
                           population: List[Individual], string_size: int):
     best_individual = creator.select_best_individual(population)
     return best_individual.fitness == string_size
Пример #22
0
class Harmony(object):
    screen = None
    creator = None
    updateQ = None
    hConn = None
    ui = None
    update = None
    del_flag = 0
    
    def __init__(self, res=(0,0)):
        pygame.init()
        pygame.mixer.init()
        self.screen = pygame.display.set_mode(res,
                                               RESIZABLE|FULLSCREEN)
        self.creator = Creator(self.screen)
        self.hConn = harmonyConn('sundhome.com', 1234)
        self.updateQ = UpdateQ(self.hConn)
        self.ui = HarmonyUi(self.screen, self.creator.get_mouse_pos())
      
    def parse_update(self, update):
        if update[0] == 'universe':
            self.creator.update_time(self.updateQ.timestamp)
            self.creator.update_universe(update[2], self.del_flag)
            

    def handle_events(self):
	 mousePos = self.creator.get_mouse_pos()
         self.ui.set_current_pos(mousePos)
         key_pressed = pygame.key.get_pressed()
	 for event in pygame.event.get():
            if   event.type == pygame.QUIT: sys.exit(0)
            elif event.type == pygame.MOUSEBUTTONDOWN:
		sel = self.creator.check_selected()
		if sel[0]:
		    self.ui.set_selected_star(sel[0])
		    if sel[1]:
			self.ui.set_selected_planet(sel[1])
            elif event.type == pygame.KEYDOWN:
                if event.key == K_ESCAPE:
                    self.screen = pygame.display.set_mode(RESIZE, 0, 0) 
                elif event.key == K_q:
                    sys.exit()
	        elif event.key == K_e:
		    self.ui.set_editMode()
                elif event.key == K_s:
                    self.hConn.addStar(mousePos[0], mousePos[1], 
               			       self.ui.get_edit_key())
		elif event.key == K_p:
		    pattr = self.creator.create_planet()
		    starid = pattr[0]
		    angle = pattr[1]
		    print "Angle: ", angle
	            radius = pattr[2]
		    print "Radius: ", radius
		    note = pattr[3]
		    print "Note: ", note

		    speed = self.ui.editSpeed
		    self.hConn.addPlanet(starid, angle, speed,
					 radius, note)
	        elif event.key == K_j:
		    self.ui.inc_edit_speed()
		elif event.key == K_k:
		    self.ui.inc_edit_key()
	        elif event.key ==  K_z:
                    if self.ui.selStarId:
		        self.hConn.delStar(self.ui.selStarId)
                elif event.key == K_x:
	            if self.ui.selStarId and self.ui.PlanetId:
		        self.hConn.delPlanet(self.ui.selStarId, self.ui.selPlanetId) 
         if key_pressed[K_RIGHT]:
             if key_pressed[K_LSHIFT]:
		 self.creator.fast_scroll_right()
             elif key_pressed[K_RSHIFT]:
 		 self.creator.warp_speed_right()
             else:
                 self.creator.scroll_right()
         if key_pressed[K_LEFT]:
             if key_pressed[K_LSHIFT]:
		 self.creator.fast_scroll_left()
             elif key_pressed[K_RSHIFT]:
 		 self.creator.warp_speed_left()
             else:
                 self.creator.scroll_left()
         if key_pressed[K_DOWN]:
             if key_pressed[K_LSHIFT]:
		 self.creator.fast_scroll_down()
             elif key_pressed[K_RSHIFT]:
 		 self.creator.warp_speed_down()
             else:
                 self.creator.scroll_down()
         if key_pressed[K_UP]:
             if key_pressed[K_LSHIFT]:
		 self.creator.fast_scroll_up()
             elif key_pressed[K_RSHIFT]:
 		 self.creator.warp_speed_up()
             else:
                 self.creator.scroll_up()

    def graphics_tick(self):
        self.handle_events()
        self.creator.update_collisions()
        self.creator.draw_universe()
        self.ui.create_fields()
        self.ui.draw_ui()
        self.screen.blit(self.ui.image, self.ui.rect)
        pygame.display.flip()

    def network_tick(self):
        if self.updateQ.check_for_update():
	    self.del_flag = self.updateQ.del_flag
	    print self.del_flag
            update = self.updateQ.get_next_update()
	  #  print update
            if update:
                self.parse_update(update)     
            
#    def snd_tick(self):

    def run(self):
        clock = pygame.time.Clock()

        while True:
            self.screen.fill(BG_COLOR)
            self.network_tick()
            self.graphics_tick()
          #  self.snd_tick()
            clock.tick(40)
    def test_create_population(self):
        seed(1)
        population_size = 3
        creator = Creator(population_size=population_size, string_size=5)
        population = creator.create_population()
        expected_population = [
            Individual('00101'),
            Individual('11100'),
            Individual('10110')
        ]

        self.assertEqual(population_size, len(population))
        self.assertEqual(expected_population, population)