python-老王开枪
Posted mrstephen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-老王开枪相关的知识,希望对你有一定的参考价值。
1 __author__ = "Stephen Yuan" 2 import time 3 4 class Person(object): 5 """人的类""" 6 def __init__(self, name): 7 super(Person, self).__init__() 8 self.name = name # 记录人的名字 9 self.gun = None # 默认人是没有枪的 10 self.hp = 100 # 默认人的血量100 11 12 def anzhuang_zidan(self, dan_jia_temp, zi_dan_temp): 13 """把子弹安装到弹夹内""" 14 dan_jia_temp.baocun_zidan(zi_dan_temp) 15 16 def anzhuang_danjia(self, ak47, dan_jia): 17 """把弹夹安装到枪内""" 18 ak47.baocun_danjia(dan_jia) 19 20 def na_qiang(self, gun_temp): 21 """拿起一把枪""" 22 self.gun = gun_temp 23 24 def __str__(self): 25 if self.gun: 26 return "%s的血量:%d,%s, 他开枪了,嘣!" %(self.name, self.hp, self.gun) 27 else: 28 if self.hp == 100: 29 return "%s的血量,%d, 他没有枪" % (self.name, self.hp) 30 elif self.hp > 0: 31 return "%s的血量,%d,他没有枪,他正在受到炮火的袭击,小心!他中了一枪..." % (self.name, self.hp) 32 else: 33 return "%s已经死亡..." % self.name 34 35 def kai_qiang(self, diren, zi_dan_temp, dan_jia_temp): 36 """打敌人""" 37 diren.hp -= zi_dan_temp.sha_shang_li # 减血 38 dan_jia_temp.zidan_list.pop() # 减子弹 39 40 class Gun(object): 41 """枪类""" 42 def __init__(self, name): 43 super(Gun, self).__init__() 44 self.name = name # 记录枪的类型 45 self.danjia = None # 默认枪中是没有弹夹的 46 47 def baocun_danjia(self, dan_jia_temp): 48 """枪保存弹夹""" 49 self.danjia = dan_jia_temp 50 51 def __str__(self): 52 if self.danjia: 53 return "枪的信息:%s, %s" % (self.name, self.danjia) 54 else: 55 return "枪的信息:%s,这把枪没有弹夹" % self.name 56 57 class DanJia(object): 58 """弹夹类""" 59 def __init__(self, max_num): 60 super(DanJia, self).__init__() 61 self.max_num =max_num # 弹夹的最大容量 62 self.zidan_list = [] # 用列表保存子弹的数量 63 64 def baocun_zidan(self, zi_dan_temp): 65 """弹夹保存子弹""" 66 self.zidan_list.append(zi_dan_temp) 67 68 def __str__(self): 69 return "弹夹的信息:%d/%d" % (len(self.zidan_list), self.max_num) 70 71 class ZiDan(object): 72 """子弹类""" 73 def __init__(self, sha_shang_li): 74 super(ZiDan, self).__init__() 75 self.sha_shang_li = sha_shang_li # 子弹的杀伤力 76 77 def main(): 78 """用来控制整个程序的流程""" 79 # 创建老王 80 lao_wang = Person(‘老王‘) 81 82 # 创建枪 83 ak47 = Gun("AK47") 84 85 # 创建弹夹 86 dan_jia = DanJia(30) 87 88 # 创建子弹 89 zi_dan = ZiDan(10) 90 91 for i in range(25): 92 # 老王把子弹安装到弹夹内 93 lao_wang.anzhuang_zidan(dan_jia, zi_dan) 94 95 # 老王把弹夹安装到枪中 96 lao_wang.anzhuang_danjia(ak47, dan_jia) 97 98 # 测试弹夹的信息 99 # print(dan_jia) 100 101 # 测试枪的信息 102 # print(ak47) 103 104 # 老王拿枪 105 lao_wang.na_qiang(ak47) 106 107 # 测试老王对象 108 # print(lao_wang) 109 110 # 创建一个敌人 111 gebi_laowang = Person("隔壁老王") 112 113 for i in range(10): 114 # 老王拿枪打隔壁老宋 115 lao_wang.kai_qiang(gebi_laowang, zi_dan, dan_jia) 116 print(lao_wang) 117 print(gebi_laowang) 118 time.sleep(2) 119 print("") 120 121 if __name__ == ‘__main__‘: 122 main()
执行结果:
老王的血量:100,枪的信息:AK47, 弹夹的信息:24/30, 他开枪了,嘣! 隔壁老王的血量,90,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:23/30, 他开枪了,嘣! 隔壁老王的血量,80,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:22/30, 他开枪了,嘣! 隔壁老王的血量,70,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:21/30, 他开枪了,嘣! 隔壁老王的血量,60,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:20/30, 他开枪了,嘣! 隔壁老王的血量,50,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:19/30, 他开枪了,嘣! 隔壁老王的血量,40,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:18/30, 他开枪了,嘣! 隔壁老王的血量,30,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:17/30, 他开枪了,嘣! 隔壁老王的血量,20,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:16/30, 他开枪了,嘣! 隔壁老王的血量,10,他没有枪,他正在受到炮火的袭击,小心!他中了一枪... 老王的血量:100,枪的信息:AK47, 弹夹的信息:15/30, 他开枪了,嘣! 隔壁老王已经死亡...
以上是关于python-老王开枪的主要内容,如果未能解决你的问题,请参考以下文章