class Person(object): def __init__(self,name): super(Person, self).__init__() self.name = name self.gun = None # 用来保存枪对象的引用 self.hp = 100 self.gun = None def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp): dan_jia_temp.bao_cun_zidan(zi_dan_temp) def anzhuang_danjia(self,gun_temp,dan_jia_temp): gun_temp.baocun_danjia(dan_jia_temp) def na_qiang(self,gun_temp): self.gun = gun_temp def __str__(self): if self.gun: return "%s拿的枪为%s,当前血量为%d"%(self.name,self.gun,self.hp) else: if self.hp == 100: return "%s没有枪,当前血量为%d"%(self.name,self.hp) elif 0<self.hp<100: return "%s中弹了,当前血量为%d"%(self.name,self.hp) else: return "%s已经死亡"%(self.name) def kou_banji(self,diren): self.gun.kaihuo(diren) def diaoxue(self,sha_shang_li): self.hp -= sha_shang_li class Gun(object): def __init__(self,name): super(Gun,self).__init__() self.name =name self.danjia = None def baocun_danjia(self,dan_jia_temp): self.danjia = dan_jia_temp def __str__(self): if self.danjia: return "%s,%s"%(self.name,self.danjia) else: return "%s,枪里面没有弹夹"%(self.name) def kaihuo(self,diren): zidan_temp = self.danjia.tanchu_zidan() if zidan_temp: return zidan_temp.dazhong(diren) else: return "枪里没有子弹。。。。" class Danjia(object): def __init__(self,max_num): super(Danjia, self).__init__() self.max_num = max_num self.zidan_list = [] def bao_cun_zidan(self,zidan_temp): self.zidan_list.append(zidan_temp) def __str__(self): return "弹夹信息:%d/%d"%(len(self.zidan_list),self.max_num) def tanchu_zidan(self): if self.zidan_list: return self.zidan_list.pop() else: return None class Zidan(object): def __init__(self,sha_shang_li): super(Zidan, self).__init__() self.sha_shang_li = sha_shang_li def dazhong(self,diren): diren.diaoxue(self.sha_shang_li) def main(): laowang = Person("老王") diren_laosong = Person("老宋") ak47 = Gun("Ak47") dan_jia = Danjia(20) for i in range(30): zi_dan = Zidan(10) laowang.anzhuang_zidan(dan_jia,zi_dan) laowang.anzhuang_danjia(ak47,dan_jia) print(dan_jia) print(ak47) laowang.na_qiang(ak47) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) laowang.kou_banji(diren_laosong) print(laowang) print(diren_laosong) if __name__ == '__main__': main()
隔壁老王和老宋的战争
最新推荐文章于 2021-07-02 23:51:41 发布