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)
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!'
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, )
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
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()
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 __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 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
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
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))
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>'
def update_quiz(self, type, size=10): creator = Creator(type, size) self.quiz = creator.get_quiz() """
from creator import Creator c = Creator("dewiki") dataset = c.create(10000, batch_size=100, fname="dewiki_10000.json.bz2")
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")
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)
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)
def client_code(creator: Creator) -> None: print(creator.some_operation())
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()
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)
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
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)