def create_new_organisms(self, number_of_organisms): # Chose the number of new organisms of each category proportionally # to the initial number of organisms of each category: total = 0 for category_name in self.settings['organisms']: total += self.settings['organisms'][category_name][ 'initial number of organisms'] for category_name in self.settings['organisms']: n = (self.settings['organisms'][category_name] ['initial number of organisms'] * number_of_organisms) / total for _ in range(n): new_organism = Organism(parent_ecosystem=self) new_organism.configure_with_category_settings( self.settings['organisms'][category_name]) # This adds new_organism to self.newborns and to self.biotope # in a random location: self.add_organism(new_organism) self.organisms_list += self.newborns self.newborns = []
def initialize_organisms(self): print 'initialize_organisms' """ PRE-CONDITIONS: This initialization must be called AFTER self.initialize_biotope, because we use here Biotope.seek_free_location """ for category_name in self.settings['organisms']: category_settings = self.settings['organisms'][category_name] number_of_organisms = category_settings[ 'initial number of organisms'] for _ in range(number_of_organisms): new_organism = Organism(parent_ecosystem=self) new_organism.configure_with_category_settings( category_settings) # This adds new_organism to self.newborns and to self.biotope # in a random location: self.add_organism(new_organism) self.organisms_list += self.newborns self.newborns = []