喂 羊和老虎

发布时间 2023-07-19 18:43:11作者: 胖豆芽
# 导入随机数包
import random
# 第一个类 动物类
class Animal:
    # 定义属性
    def __init__(self,animal,weight,call,food):
        self._animal=animal
        self._weight=weight
        self._call=call
        self._food=food
    def call(self):
        self._weight -=5
        print(f"{self._animal}叫了一声{self._call},当前体重{self._weight}")
    def eat(self,food):
        if self._food==food:
            self._weight +=10
        else:
            self._weight -=10
        print(f"{self._animal}吃了{food},当前体重{self._weight}")
    def getWeight(self):
        print(f"{self._animal},当前体重{self._weight}")
        return self._weight
# 第二个类 老虎类
class Tiger(Animal):
    # 定义属性
    def __init__(self):
        super().__init__("老虎",200,"wow","")
# 第三个类  羊类
class Sheep(Animal):
    def __init__(self):
        super().__init__("",100,"mie","")
# 第四个类  房间类
class Room:
    # 属性
    def __init__(self):
        # 定义一个变量 动物列表
        self._animals=[]
    def putAnimal(self,animal):
        self._animals.append(animal)
    def getAnimal(self):
        return  self._animals


# 第五个类  饲养员类
class Keep:
    # 定义属性
    def __init__(self):
        # 定义一个变量 存房间列表
        self._rooms=[]
    def putAnimalInRoom(self):
        # 10个房间里都要放动物
        for _ in range(10):
            num = random.randint(1, 2)
            if num==1:
                animal=Tiger()
            else :
                animal=Sheep()
            # 实例化房间 为了调用房间的放动物方法
            room=Room()
            room.putAnimal(animal)
            # 将房间放到房间列表里
            self._rooms.append(room)
    def keep(self):
        count=0
        # 喂动物  10个房间都需要
        for room in self._rooms:
            count+=1
            print(f"第{count}个房间")
            animals=room.getAnimal()# 从房间里获得动物列表
            for animal in animals:
                animal.getWeight()
                animal.call()
                food=animal._food
                animal.eat(food)
                animal.getWeight
# 调用饲养员
k=Keep()
k.putAnimalInRoom()
k.keep()