day 6 老王开枪打人
Posted 不要被骄傲遮蔽了双眼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day 6 老王开枪打人相关的知识,希望对你有一定的参考价值。
1.图示
2 程序
1)版本1:框架的搭建
def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 #2.创建1个枪对象 #3.创建1个弹夹对象 #4.创建子弹对象 #5.创建一个敌人 #6.alex把子弹安装到弹夹中 #7.alex把弹夹安装到枪中 #8.alex拿枪 #9.alex拿枪打jack if __name__ == "__main__": main()
2)版本2:创建类对象
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #7.alex把弹夹安装到枪中 #8.alex拿枪 #5.创建一个敌人 #9.alex拿枪打jack if __name__ == "__main__": main()
3)版本3:安装子弹
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #alex.安装子弹到弹夹中(弹夹,子弹) alex.install(gun_jia,gun_dan) #7.alex把弹夹安装到枪中 #8.alex拿枪 #5.创建一个敌人 #9.alex拿枪打jack if __name__ == "__main__": main()
4)安装弹夹
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) def install2(self,gun_temp,gun_jia_temp): \'\'\'安装弹夹到枪\'\'\' #枪保存弹夹 gun_temp.save2(gun_jia_temp) class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 self.gun_jia = None #用来记录弹夹对象的引用 def save2(self,gun_jia_temp): \'\'\'用一个属性来保存这个弹夹对象的引用\'\'\' self.gun_jia = gun_jia_temp class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #alex.安装子弹到弹夹中(弹夹,子弹) alex.install(gun_jia,gun_dan) #7.alex把弹夹安装到枪中 #alex.安装弹夹到枪(枪,弹夹) alex.install2(ak47,gun_jia) #8.alex拿枪 #5.创建一个敌人 #9.alex拿枪打jack if __name__ == "__main__": main()
5)测试弹夹,枪
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) def install2(self,gun_temp,gun_jia_temp): \'\'\'安装弹夹到枪\'\'\' #枪保存弹夹 gun_temp.save2(gun_jia_temp) class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 self.gun_jia = None #用来记录弹夹对象的引用 def save2(self,gun_jia_temp): \'\'\'用一个属性来保存这个弹夹对象的引用\'\'\' self.gun_jia = gun_jia_temp def __str__(self): if self.gun_jia: return "枪的信息为:%s,弹夹的信息为:%s"%(self.name,self.gun_jia) else: return "枪的信息为:%s,没有弹夹..."%(self.name) class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) def __str__(self): return "弹夹的信息为:%d/%d"%(len(self.list_dan),self.max) class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 for i in range(15): gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #alex.安装子弹到弹夹中(弹夹,子弹) alex.install(gun_jia,gun_dan) #7.alex把弹夹安装到枪中 #alex.安装弹夹到枪(枪,弹夹) alex.install2(ak47,gun_jia) #test1:测试弹夹的信息 print(gun_jia) #test2:测试枪的信息 print(ak47) #8.alex拿枪 #5.创建一个敌人 #9.alex拿枪打jack if __name__ == "__main__": main()
弹夹的信息为:15/20
枪的信息为:AK47,弹夹的信息为:弹夹的信息为:15/20
6)老王拿枪,并且测试
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name self.gun = None #用来保存枪对象的引用 self.hp = 100 def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) def install2(self,gun_temp,gun_jia_temp): \'\'\'安装弹夹到枪\'\'\' #枪保存弹夹 gun_temp.save2(gun_jia_temp) def catch(self,gun_temp): \'\'\'拿枪\'\'\' self.gun = gun_temp def __str__(self): if self.gun: return "%s的血量是:%d,他有枪,%s"%(self.name,self.hp,self.gun) else: return "%s的血量是%d,他没有枪.."%(self.name,self.hp) class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 self.gun_jia = None #用来记录弹夹对象的引用 def save2(self,gun_jia_temp): \'\'\'用一个属性来保存这个弹夹对象的引用\'\'\' self.gun_jia = gun_jia_temp def __str__(self): if self.gun_jia: return "枪的信息为:%s,弹夹的信息为:%s"%(self.name,self.gun_jia) else: return "枪的信息为:%s,没有弹夹..."%(self.name) class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) def __str__(self): return "弹夹的信息为:%d/%d"%(len(self.list_dan),self.max) class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 for i in range(15): gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #alex.安装子弹到弹夹中(弹夹,子弹) alex.install(gun_jia,gun_dan) #7.alex把弹夹安装到枪中 #alex.安装弹夹到枪(枪,弹夹) alex.install2(ak47,gun_jia) #test1:测试弹夹的信息 print(gun_jia) #test2:测试枪的信息 print(ak47) #8.alex拿枪 #alex.拿枪(枪) alex.catch(ak47) #test3.测试老王对象 print(alex) #5.创建一个敌人 #9.alex拿枪打jack if __name__ == "__main__": main()
弹夹的信息为:15/20 枪的信息为:AK47,弹夹的信息为:弹夹的信息为:15/20 alex的血量是:100,他有枪,枪的信息为:AK47,弹夹的信息为:弹夹的信息为:15/20
7)创建敌人
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name self.gun = None #用来保存枪对象的引用 self.hp = 100 def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) def install2(self,gun_temp,gun_jia_temp): \'\'\'安装弹夹到枪\'\'\' #枪保存弹夹 gun_temp.save2(gun_jia_temp) def catch(self,gun_temp): \'\'\'拿枪\'\'\' self.gun = gun_temp def __str__(self): if self.gun: return "%s的血量是:%d,他有枪,%s"%(self.name,self.hp,self.gun) else: return "%s的血量是%d,他没有枪.."%(self.name,self.hp) class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 self.gun_jia = None #用来记录弹夹对象的引用 def save2(self,gun_jia_temp): \'\'\'用一个属性来保存这个弹夹对象的引用\'\'\' self.gun_jia = gun_jia_temp def __str__(self): if self.gun_jia: return "枪的信息为:%s,弹夹的信息为:%s"%(self.name,self.gun_jia) else: return "枪的信息为:%s,没有弹夹..."%(self.name) class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) def __str__(self): return "弹夹的信息为:%d/%d"%(len(self.list_dan),self.max) class Gun_dan(object): \'\'\'子弹类\'\'\' def __init__(self,damage): self.damage = damage #记录子弹的伤害 def main(): \'\'\'用来控制这个程序的流程\'\'\' pass #1.创建alex对象 alex = Person("alex") #2.创建1个枪对象 ak47 = Gun("AK47") #3.创建1个弹夹对象 gun_jia = Gun_jia(20) #20代表弹夹的容量 #4.创建子弹对象 for i in range(15): gun_dan = Gun_dan(10) #一个子弹掉10滴血 #6.alex把子弹安装到弹夹中 #alex.安装子弹到弹夹中(弹夹,子弹) alex.install(gun_jia,gun_dan) #7.alex把弹夹安装到枪中 #alex.安装弹夹到枪(枪,弹夹) alex.install2(ak47,gun_jia) #test1:测试弹夹的信息 print(gun_jia) #test2:测试枪的信息 print(ak47) #8.alex拿枪 #alex.拿枪(枪) alex.catch(ak47) #test3.测试老王对象 print(alex) #5.创建一个敌人 jack = Person("jack") print(jack) #9.alex拿枪打jack if __name__ == "__main__": main()
弹夹的信息为:15/20 枪的信息为:AK47,弹夹的信息为:弹夹的信息为:15/20 alex的血量是:100,他有枪,枪的信息为:AK47,弹夹的信息为:弹夹的信息为:15/20 jack的血量是100,他没有枪..
8)alex开枪??? 难点
#alex拿枪打jack #老王.扣扳机(jack) \'\'\'让枪发射子弹打敌人\'\'\' #枪.开火(敌人) \'\'\'枪从弹夹中获取1发子弹,然后让子弹击中敌人\'\'\' \'\'\'子弹打中人,让敌人掉血\'\'\' \'\'\'根据杀伤力,掉相应的血量\'\'\'
class Person(object): \'\'\'人的类\'\'\' def __init__(self,name): self.name = name self.gun = None #用来保存枪对象的引用 self.hp = 100 def install(self,gun_jia_temp,gun_dan_temp): \'\'\'把子弹安装到弹夹\'\'\' #弹夹.保存子弹(子弹) gun_jia_temp.save(gun_dan_temp) def install2(self,gun_temp,gun_jia_temp): \'\'\'安装弹夹到枪\'\'\' #枪保存弹夹 gun_temp.save2(gun_jia_temp) def catch(self,gun_temp): \'\'\'拿枪\'\'\' self.gun = gun_temp def __str__(self): if self.gun: return "%s的血量是:%d,他有枪,%s"%(self.name,self.hp,self.gun) else: return "%s的血量是%d,他没有枪.."%(self.name,self.hp) def pull(self,enemy): \'\'\'让枪发射子弹打敌人\'\'\' #枪.开火(敌人) self.gun.fire(enemy) def lose_blood(self,damage): \'\'\'根据杀伤力,掉相应的血量\'\'\' self.hp -= damage class Gun(object): \'\'\'一个枪的类\'\'\' def __init__(self,name): self.name = name #用来记录枪的类型 self.gun_jia = None #用来记录弹夹对象的引用 def save2(self,gun_jia_temp): \'\'\'用一个属性来保存这个弹夹对象的引用\'\'\' self.gun_jia = gun_jia_temp def __str__(self): if self.gun_jia: return "枪的信息为:%s,弹夹的信息为:%s"%(self.name,self.gun_jia) else: return "枪的信息为:%s,没有弹夹..."%(self.name) def fire(self,enemy): \'\'\'枪从弹夹中获取1发子弹,然后让子弹击中敌人\'\'\' #先从弹夹去子弹 #弹夹.弹出一发子弹 dan = self.gun_jia.pop() #让这个子弹去伤害敌人 if dan: #子弹.打中(敌人) dan.hit(enemy) else: print("弹夹中没有子弹了") class Gun_jia(object): \'\'\'弹夹的类\'\'\' def __init__(self,max_num): self.max = max_num #用来记录弹夹的最大容量 self.list_dan = [] #用来记录所有子弹的引用 def save(self,gun_dan_temp): \'\'\'把子弹保存到弹夹\'\'\' self.list_dan.append(gun_dan_temp) def __str__以上是关于day 6 老王开枪打人的主要内容,如果未能解决你的问题,请参考以下文章