import random # Definition of the pet class class pet: #shared values go here maxcrowding = 10 mutRange = 0.1 # range of values for mutation # __init__ function initializes/creates new pets def __init__(self,n): # each pet has its own value: self.name = n # the name is passed in as an argument self.hungry = 50 self.happy = 50 # different pets metabolize food with different effciencies self.metabolismMeat = random.uniform(0,1) self.metabolismVegitables = random.uniform(0,1) def printPet(self): print(self.name," is ") print("Hunger: ",self.hungry) print("Happy: ",self.happy) print("Carnivore: ",self.metabolismMeat) def feedMeat(self): self.hungry -= (5 * self.metabolismMeat) print(self.name, " says 'Yum' ") def feedVegitables(self): self.hungry -= (5 * self.metabolismVegitables) print(self.name, " says 'Yummy' ") # Play makes a pet happier and hungrier def play(self): self.happy += 5 self.hungry += 3 def reproduce(self): temp = pet("New Pet") temp.metabolismMeat = self.metabolismMeat temp.metabolismVegitables = self.metabolismVegitables temp.mutate() return temp def mutate(self): self.metabolismMeat += random.uniform(-1*self.mutRange, self.mutRange) if(self.metabolismMeat < 0): # limits on allowed values self.metabolismMeat = 0 self.metabolismVegitables += random.uniform(-1*self.mutRange, self.mutRange) # Create a list pets = [] # Add a first pet pets.append(pet("First Pet")) # Add more pets for i in range(1,100): pets.append(pets[i-1].reproduce()) pets[i].printPet()