def main(): setup_logger() logger.debug('DEBUG') print " *"*30, "\nWe start NOW!" # *** # all_gene_names = extract_all_gene_names(my_example_of_ecosystem_settings) # all_strings = extract_all_strings( # my_example_of_ecosystem_settings, # exceptions = No_effect_directives + All_action_names) # print 'ALL GENES:', all_gene_names # print 'ALL STRINGS:', all_strings # print 'DIFFERENCE:', [ # item # for item in all_strings # if not item in all_gene_names and \ # not item in All_allowed_directives_in_expression] enable_graphics = True make_sleeps = False time_lapse = 4 Total_time = 5000 ecosystem = Ecosystem(my_example_of_ecosystem_settings) ecosystem.minimum_population_allowed = 200 """ *********************** TRIAL ZONE **************************** ecosystem.evolve() org = ecosystem.get_random_organisms(1)[0] print_dictionary( evaluate_functions_of_a_dictionary( org['offers to sell'], org ) ) f_set = {'-': ('nutrient A reserve', 'minimum nutrient A reserve for procreating')} f = ecosystem.function_maker.read_function_settings( '#organism', f_set) print_organism(org, 'nutrient A reserve', 'minimum nutrient A reserve for procreating') print_organism(org, 'nutrient A surplus') print f(org) print org['value in next cycle']['nutrient A surplus'](org) exit() f_set = {'curve from 0 to 1': 'photosynthesis capacity'} f = ecosystem.function_maker.read_function_settings( 'output function #organism #input', f_set) for org in ecosystem.organisms_list: print f(org, 5) exit() f_set = {'extract #biotope sunlight (percentage)': ( 'normalized location x', 'normalized location y', 0.8 )} f_2_set = { '#biotope sunlight': ( 'normalized location x', 'normalized location y' ) } org = choice(ecosystem.organisms_list) print_dictionary(org) f = ecosystem.function_maker.read_function_settings('#organism', f_set) f_2 = ecosystem.function_maker.read_function_settings('#organism', f_2_set) print f(org), f_2(org) for i in range(10): org.act() print_dictionary(org) # f_set = ecosystem.settings['constraints']['can procreate'] # f_set = {'cost': 'procreate'} f_set = 'time' f = ecosystem.function_maker.read_function_settings('#organism', f_set) # print f(ecosystem) for org in ecosystem.organisms_list: print f(org) exit() *********************** (TRIAL ZONE) ************************** """ if enable_graphics: gui = GUI(ecosystem) # Loop print "LOOPING:" while ((len(ecosystem.organisms_list) > 0) and (ecosystem.time < Total_time)): # Print ecosystem status: if ecosystem.time % time_lapse == 0: print_ecosystem_status(ecosystem) # organism1, organism2 = ecosystem.get_random_organisms( # number_of_random_organisms = 2) if Store_data: ecosystem.data_storer.store_data() # Evolve: ecosystem.evolve() if enable_graphics: gui.handle_events() gui.draw_ecosystem() if make_sleeps: sleep(1.0) # To remove if ecosystem.population() < ecosystem.minimum_population_allowed: n = ecosystem.minimum_population_allowed - ecosystem.population() ecosystem.create_new_organisms(n) print n, "organisms created", print "Time:", ecosystem.time, "Number of organisms:", \ len(ecosystem.organisms_list) # *** if enable_graphics: gui.delete()