def main(): try: mouse1 = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.MALE, description="asd", chromosome1=EnumsMouse.Chromosome.X, chromosome2=EnumsMouse.Chromosome.Y) mouse2 = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.MALE, description="asd", chromosome1=EnumsMouse.Chromosome.X, chromosome2=EnumsMouse.Chromosome.X) normalFamily = NormalFamily(mouse1, mouse2) print(normalFamily) except Exception as ef: print(str(ef))
def main(): try: mouse1 = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.MALE, description="asd", chromosome1=EnumsMouse.Chromosome.X, chromosome2=EnumsMouse.Chromosome.Y) mouse2 = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.FEMALE, description="asd", chromosome1=EnumsMouse.Chromosome.X, chromosome2=EnumsMouse.Chromosome.X) mouse3 = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.FEMALE, description="asd", chromosome1=EnumsMouse.Chromosome.X, chromosome2=EnumsMouse.Chromosome.X) poligamicFamily = PoligamicFamily(mouse1, [mouse2,mouse3]) print(poligamicFamily) poligamicFamily.reproduce() except Exception as ef: print(str(ef))
def reproduce(self, ref_last_mouse): ''' reproduces the normal family between the parent and the mother and saves the list of the new children in the family :return the list of new born children :rtype list ''' if((not isinstance(ref_last_mouse,int)) or ref_last_mouse < 1): ref_last_mouse = 1 children = [] # Mother steril if(self.__mother.is_steril()): return children # Father esteril elif(self.get_parent().is_steril()): probability_list = Family._dict_probabilities_father_steril.items() #Both normal else: probability_list = Family._dict_probabilities_normal.items() # Reproduce according to the probabilities choice = random.randint(Family._min_choice_num_children, Family._max_choice_num_children) for prob,num_children in probability_list: if choice < prob: for i in range(0,num_children): mouse = Mouse.Mouse(ref_last_mouse) children.append(mouse) self.add_children(mouse) break return children
def reproduce(self, ref_last_mouse): ''' reproduces the poligamic family between the parent and the mothers and saves the list of the new children in the family :return the list of new born children :rtype list ''' if ((not isinstance(ref_last_mouse, int)) or ref_last_mouse < 1): ref_last_mouse = 1 children = [] mothers = self.__mothers #Father steril if self.get_parent().is_steril(): dict_probabilities = Family._dict_probabilities_father_steril.items( ) # Mother steril elif len(mothers) == 1: dict_probabilities = Family._dict_probabilities_normal.items() else: dict_probabilities = Family._dict_probabilities_poligamic.items() for mother in mothers: if (mother.is_steril()): continue # Reproduce according to the probabilities choice = random.randint(Family._min_choice_num_children, Family._max_choice_num_children) for prob, num_children in dict_probabilities: if choice < prob: for i in range(0, num_children): mouse = Mouse.Mouse(ref_last_mouse) children.append(mouse) self.add_children(mouse) break return children
def read_mouse_from_keyboard(numReference): #??????????????????????????????? """ read a mouse from keyboard :return: the read mouse :rtype: Mouse """ print("Introduce the data of the mouse\n") name = input("Name: \n") birthdate = read_date() weight = read_positive_float("Weight") gender = read_gender_from_keyboard() temperature = read_positive_float("Temperature") description = input("Description of the mouse: \n") chromosomes = read_chromosomes_from_keyboard(gender) chromosome1 = chromosomes[0] chromosome2 = chromosomes[1] mouse = Mouse.Mouse(reference=numReference, name=name, birthdate=birthdate, weight=weight, gender=gender, temperature=temperature, description=description, chromosome1=chromosome1, chromosome2=chromosome2) return mouse
def main(): try: mouse = Mouse.Mouse(name=None, gender=EnumsMouse.Gender.MALE, description="asd", chromosome1=EnumsMouse.Chromosome.X_MUTATED, chromosome2=EnumsMouse.Chromosome.Y_MUTATED) family = Family(mouse) except Exception as ef: print(str(ef))
from animals import Ant, BettaFish, CopperheadSnake, Earthworm, Finch, Gerbil, Mouse, Parakeet, Terrapin, TimberRattlesnake from behaviors import IDigging, IFlying, IMoving, ISwimming from containers import DiggerContainer, FlierContainer, MoverContainer, SwimmerContainer digger_container = DiggerContainer() flier_container = FlierContainer() mover_container = MoverContainer() swimmer_container = SwimmerContainer() ant = Ant() betta_fish = BettaFish() copperhead_snake = CopperheadSnake() earthworm = Earthworm() finch = Finch() gerbil = Gerbil() mouse = Mouse() parakeet = Parakeet() terrapin = Terrapin() timber_rattlesnake = TimberRattlesnake() digger_container.add_animal(ant) digger_container.add_animal(earthworm) print(digger_container) flier_container.add_animal(finch) flier_container.add_animal(parakeet) print(flier_container) mover_container.add_animal(copperhead_snake) mover_container.add_animal(gerbil) mover_container.add_animal(mouse)
def __generate_random_mouses(population_size, male_percentage, mutated_percentage, ref_mouse): ''' It returns a list of mouses with the percetange of males especified, the percentage of females = 1 - male_percentages If any of the parameters are not specified, it returns an empty list :param population_size: size of the population :param male_percentage: percentage of males in the population :param mutated_percentage: percentage of mutated mouses in the population :type population_size: int > 0 :type male_percentage: float [0-1] :type mutated_percentage: float [0-1] :return: the list of mouses :rtype: list :raises an errorPopulation if the population size is < 0 or if the percentages are not in the range [0-1] ''' if ((not isinstance(ref_mouse, int)) or ref_mouse < 1): ref_mouse = 1 if (population_size == None or male_percentage == None or mutated_percentage == None): return [] if (isinstance(male_percentage, (int, float)) and isinstance(mutated_percentage, (int, float)) and (male_percentage < 0 and male_percentage > 1) or (mutated_percentage < 0 and mutated_percentage > 1)): raise ErrorPopulation( "The percentages of males and mutated should be a number between [0-1]" ) if (isinstance(population_size, int) and population_size > 0): num_males = math.floor(population_size * male_percentage) num_females = population_size - num_males num_males_mutated = math.floor(mutated_percentage * num_males) num_males_non_mutated = num_males - num_males_mutated num_females_mutated = math.floor(mutated_percentage * num_females) num_females_non_mutated = num_females - num_females_mutated listMouses = [] if num_males_non_mutated > 0: num_males_non_mutated = num_males_non_mutated - 1 #para que el for no cree un raton de mas :) listMouses.append( Mouse.Mouse(reference=ref_mouse, gender=Gender.MALE, probabilityMutation=0)) elif num_males_mutated > 0: num_males_mutated = num_males_mutated - 1 listMouses.append( Mouse.Mouse(reference=ref_mouse, gender=Gender.MALE, probabilityMutation=1)) elif num_females_non_mutated > 0: num_females_non_mutated = num_females_non_mutated - 1 listMouses.append( Mouse.Mouse(reference=ref_mouse, gender=Gender.FEMALE, probabilityMutation=0)) elif num_females_mutated > 0: num_females_mutated = num_females_mutated - 1 listMouses.append( Mouse.Mouse(reference=ref_mouse, gender=Gender.FEMALE, probabilityMutation=1)) for i in range(0, num_males_non_mutated): listMouses.append( Mouse.Mouse(gender=Gender.MALE, probabilityMutation=0)) for i in range(0, num_males_mutated): listMouses.append( Mouse.Mouse(gender=Gender.MALE, probabilityMutation=1)) for i in range(0, num_females_non_mutated): listMouses.append( Mouse.Mouse(gender=Gender.FEMALE, probabilityMutation=0)) for i in range(0, num_females_mutated): listMouses.append( Mouse.Mouse(gender=Gender.FEMALE, probabilityMutation=1)) return listMouses else: raise ErrorPopulation("The population size should be an int > 0")
from animals import (Ant, BettaFish, Copperhead, EarthWorm, Finch, Gerbil, Mouse, Parakeet, Rattlesnake, Terrapin) from movements import (IWalk, ISlither, ISwim, IFly, IDig) from habitats import (Aquarium, FlyCage, Atrium, LandCage, Terrarium, WaterCage) andy = Ant("Andy", "Fire Red") barry = BettaFish("Barry", "Blue") calvin = Copperhead("Calvin", 'Camo') earl = EarthWorm("Earl", "Mud Brown") frita = Finch("Frita", "Yellow") grandpa = Gerbil("Granpa", "Brown") milton = Mouse("milton", "Orange") paulina = Parakeet("Paulina", "Purple") rayray = Rattlesnake("Ray-Ray", "Camo") tim = Terrapin("Tim", "green") aqua = Aquarium() atri = Atrium() terra = Terrarium() flyCage = FlyCage() landCage = LandCage() waterCage = WaterCage() #Uncomment by section #SECTION 1_____________________________________ # #Aquarium adds # aqua.add_animal(barry) # aqua.add_animal(tim)
from animals import Ant, Betta_Fish, Copperhead, Earthworm, Finch, Gerbil, Mouse, Parakeet, Timber_Rattlesnake, Terrapin from environments import Subterranean, Sky, Water, Surface andy = Ant("Andy") bryan = Betta_Fish("Bryan") catherine = Copperhead("Catherine") edy = Earthworm("Edy") phineas = Finch("Phineas") gilbert = Gerbil("Gilbert") mickey = Mouse("Mickey") paul = Parakeet("Paul") timmy = Timber_Rattlesnake("Timmy") terror = Terrapin("Terror") terrarium = Subterranean("terrarium") cage = Surface("cage") fish_bowl = Water("fish_bowl") aviary = Sky("aviary") terrarium.Animal.addAnimal(timmy) terrarium.addAnimal(mickey) terrarium.addAnimal(edy) terrarium.addAnimal(catherine) cage.addAnimal(andy) cage.addAnimal(gilbert) fish_bowl.addAnimal(bryan) fish_bowl.addAnimal(terror) aviary.addAnimal(paul)
from animals import Ant, BettaFish, Copperhead, Earthworm, Finch, Gerbil, Mouse, Parakeet, Rattlesnake, Terrapin from environments import diggingEnvironment, flyingEnvironment, swimmingEnvironment, walkingEnvironment bob = Ant("Bob") bubbles = BettaFish("Bubbles") killer = Copperhead("Killer") jim = Earthworm("Jim") finch = Finch("Finch") snickers = Gerbil("Snickers") jerry = Mouse("Jerry") flaps = Parakeet("Flaps") death = Rattlesnake("Death") terry = Terrapin("Terry") hills = diggingEnvironment("Hills") plains = walkingEnvironment("Plains") lake = swimmingEnvironment("Lake") aviary = flyingEnvironment("Aviary") hills.addAnimal(death) hills.addAnimal(jerry) hills.addAnimal(jim) hills.addAnimal(killer) plains.addAnimal(bob) plains.addAnimal(snickers) lake.addAnimal(bubbles) lake.addAnimal(terry) aviary.addAnimal(flaps)
from animals import Earthworm, Terrapin, TimperRattlesnake, Mouse, Ant, Finch, BettaFish, CopperheadSnake, Gerbil, Parakeet from temp_containers import IAir, ILand, IUnderground, IWater """ Animals Ants - Dig, walk Earthworms - Dig, slither Terrapins - Dig, swim, walk Betta Fish - swim """ earthworm = Earthworm("earthy") worm = Earthworm("yeah") terrapin = Terrapin("terror") timper = TimperRattlesnake("temper") mouse = Mouse("mousey") ant = Ant("antsy") finch = Finch("atticus") betta = BettaFish("alpha") copper = CopperheadSnake("tooper") gerbil = Gerbil("germy") keet = Parakeet("keet") cage = IAir("Circus") land_terrarium = ILand("Sahera") under_terrarium = IUnderground("Earth") aquarium = IWater("Sea World") aquarium.add_animal(terrapin, betta) under_terrarium.add_animal(ant, earthworm, worm) land_terrarium.add_animal(gerbil, copper, mouse, timper)
seaworld = Aquarium("Sea World") seaworld.add_swimmer_pythonic(bob) seaworld.add_swimmer_pythonic(ralph) seaworld.add_swimmer_type_check(ralph) for animal in seaworld.animals: print(f'{animal} lives in Sea World') print() # animals needing temporary containers andy = Ant("Andy") kristen = Betta("Kristen") bryan = Copperhead("Bryan") chase = Earthworm("Chase") jisie = Finch("Jisie") ashley = Gerbil("Ashley") kristin = Mouse("Kristin") john = Parakeet("John") jeremiah = Terrapin("Jeremiah") brenda = TimberRattlesnake("Brenda") # temporary containers diggers = Sandbox("Temporary Digger Home") fliers = Aviary("Temporary Flier Home") swimmers = Tank("Temporary Swimmer Home") slitherers = Snakepit("Temporary Snake Home") diggers.add_digger_type_check(andy) diggers.add_digger_pythonic(kristen) diggers.add_digger_type_check(brenda) diggers.add_digger_type_check(chase) diggers.add_digger_type_check(ashley) diggers.add_digger_type_check(kristin)
from animals import Parakeet, Earth_Worm, Terrapin, Snake, Mouse, Ant, Finch, Fish, Copperhead, Gerbil from habitats import Aquarium, Bird_House, Dirt_Pile, Yard parakeet = Parakeet('parry') worm = Earth_Worm('wormy') turtle = Terrapin('terry') snake = Snake('snake') mouse = Mouse('mickey') ant = Ant('Anty') finch = Finch('finchy') betta = Fish('fishy') Copperhead = Copperhead('coppy') gerbil = Gerbil("gerry") aquarium = Aquarium("aquarium") bird_house = Bird_House("birdville") dirty = Dirt_Pile('dirty') yard = Yard('yard') aquarium.add_animal(betta) print(aquarium)
def selectOneMouse(reference_mouse): """ Esta función selecciona de memoria un raton y lo crea, a partir de una referencia Parametros: -reference_mouse: referencia de un raton Devuelve: -un raton """ cursor = cnx.cursor() mouse = "SELECT * FROM mouse WHERE reference = %s" value_value = (reference_mouse, ) cursor.execute(mouse, value_value) for information in cursor.fetchall(): reference = int(information[0]) if (reference <= 0): raise ValueError("The references of the mouses should be > 0") name = str(information[1]) birthdate = datetime.strptime(str(information[2]), '%Y-%m-%d').date() weight = float(information[3]) if (weight <= 0): raise ValueError("The weight of the mouses should be > 0") try: gender = EnumsMouse.Gender.from_str(str(information[4])) except NotImplementedError as nie: print(str(nie)) raise ValueError("The gender should be Male or female") temperature = float(information[5]) if (temperature <= 0): raise ValueError("The temperature of the mouses should be > 0") description = str(information[6]) try: chromosome1 = EnumsMouse.Chromosome.from_str(information[7]) except NotImplementedError: raise ValueError( "The chromosome should be X, Y, X_MUTATED or Y_MUTATED") try: chromosome2 = EnumsMouse.Chromosome.from_str(information[8]) except NotImplementedError: raise ValueError( "The chromosome should be X, Y, X_MUTATED or Y_MUTATED") mouse = Mouse.Mouse(reference=reference, name=name, birthdate=birthdate, weight=weight, gender=gender, temperature=temperature, description=description, chromosome1=chromosome1, chromosome2=chromosome2) cursor.close() return mouse