依赖关系

# class Person:
#     def play(self,tools): # 通过参数的传递把另外一个类的对象传递进来
#         tools.run()
#         print("很开心,我能玩儿游戏了")
#
#
# class Computer:
#     def run(self):
#         print("电脑开机. 可以运行")
#
# class Phone:
#     def run(self):
#         print("手机开机,可以运行")
#
#
# c = Computer()
# phone = Phone()
#
# p = Person()
# p.play(phone)



# 写一个植物大战僵尸
# 1. 植物
#       打僵尸. 僵尸掉血
# 2. 僵尸
#       吃植物. 植物掉血

class Plant:
    def __init__(self,name,hp,ad): # 200
        self.name = name
        self.hp = hp
        self.ad = ad

    def attack(self,js):
        print("植物攻击僵尸")
        js.hp -= self.ad
        print(f"僵尸掉血{self.ad},还剩下{js.hp}")

class JiangShi:
    def __init__(self,ad): # 1000  800
        self.name = name
        self.hp = hp
        self.ad = ad

    def attack(self,zw):
        print("僵尸咬植物")
        zw.hp -= self.ad
        print(f"植物掉血{self.ad},还剩{zw.hp}")


# 植物
wd = Plant("歪脖子豌豆",10,20)
# 僵尸
js = JiangShi("铁桶僵尸",200,1)
wd.attack(js)
wd.attack(js)
wd.attack(js)
wd.attack(js)
wd.attack(js)

js.attack(wd)
js.attack(wd)
js.attack(wd)
js.attack(wd)

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...