python基礎之對象之間的交互

面對對象編程之對象之間的交互

這是一個貓狗大戰的例子python

# 貓類
class Cat:
    def __init__(self, name, hp, attack):
        self.name = name  # 名字
        self.hp = hp  # 血量
        self.attack = attack  # 攻擊力

    # 貓的攻擊:撓
    def catch(self, dog_obj):
        if dog_obj.hp == 0:
            print(f"{dog_obj.name}:ヾ(。`Д´。)血槽空了!")
            print(f"{self.name}:愚蠢的生物!")
            return True
        else:

            if dog_obj.hp >= self.attack:
                dog_obj.hp -= self.attack
                print(f"cat:{self.name}發動攻擊,dog的血槽還剩:{dog_obj.hp}!")
                return False
            else:
                print(f"cat:{self.name}發動攻擊,dog的血槽還剩:0!")
                print(f"{dog_obj.name}:ヾ(。`Д´。)血槽空了!")
                print(f"{self.name}:愚蠢的生物!")
                return True

# 狗類
class Dog:
    def __init__(self, name, hp, attack):
        self.name = name  # 名字
        self.hp = hp  # 血量
        self.attack = attack  # 攻擊力

    # 狗的攻擊:咬
    def bite(self, cat_obj):
        if cat_obj.hp == 0:
            print(f"{cat_obj.name}:ヾ(。`Д´。)血槽空了!")
            print(f"{self.name}:眇小的貓科動物!")
            return True
        else:
            if cat_obj.hp >= self.attack:
                cat_obj.hp -= self.attack
                print(f"dog:{self.name}發動攻擊,cat的血槽還剩:{cat_obj.hp}!")
                return False
            else:
                print(f"dog:{self.name}發動攻擊,cat的血槽還剩:0!")
                print(f"{cat_obj.name}:ヾ(。`Д´。)血槽空了!")
                print(f"{self.name}:眇小的貓科動物!")
                return True

# 建立一隻加菲貓
cat_graf = Cat("garfield", 900, 350)
# 建立一隻歐恩狗
dog_oen = Dog("oen", 900, 400)
print("明明是美好的一天,加菲又開始跟歐恩互毆了,讓咱們來看看誰贏了!")
while True:
    cat_res = cat_graf.catch(dog_oen)
    if cat_res:
        break
    dog_res = dog_oen.bite(cat_graf)
    if dog_res:
        break
相關文章
相關標籤/搜索