示例#1
0
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))
示例#2
0
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))
示例#3
0
 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
示例#4
0
    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
示例#5
0
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
示例#6
0
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))
示例#7
0
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")
示例#9
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)
示例#10
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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