Python 简单的枪击游戏
1 class Person(object): 2 """人的类""" 3 def __init__(self,name): 4 super(Person,self).__init__() 5 self.name = name 6 self.gun = None # 用来保存枪对象的引用 7 self.hp = 100 # 血量 8 9 def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp): 10 """把子弹装到弹夹中""" 11 dan_jia_temp.bao_cun_zidan(zi_dan_temp) 12 13 def anzhuang_danjia(self,gun_temp,dan_jia_temp): 14 """把弹夹安装到枪中""" 15 gun_temp.bao_cun_danjia(dan_jia_temp) 16 17 def naqiang(self,gun_temp): 18 """拿起一把枪""" 19 self.gun = gun_temp 20 21 def __str__(self): 22 if self.gun: 23 return "%s的血量为:%d,他有枪:%s"%(self.name,self.hp,self.gun) 24 else: 25 if self.hp>0: 26 return "%s的血量为:%d,他没有枪"%(self.name,self.hp) 27 else: 28 return "%s 已挂!"%self.name 29 30 def kou_ban_ji(self,diren): 31 """让枪发射子弹去打敌人""" 32 self.gun.fire(diren) 33 34 def diao_xue(self,sha_shang_li): 35 """根据杀伤力,掉相应血量""" 36 self.hp -= sha_shang_li 37 38 39 40 41 42 43 class Gun(object): 44 """枪的类""" 45 def __init__(self,name): 46 super(Gun,self).__init__() 47 self.name = name # 用来记录枪的类型 48 self.danjia = None # 用来记录弹夹对象的引用 49 50 51 def bao_cun_danjia(self,dan_jia_temp): 52 """用一个属性保存弹夹的引用""" 53 self.danjia = dan_jia_temp 54 55 def __str__(self): 56 if self.danjia: 57 return "枪的信息为:%s, 弹夹信息:%s"%(self.name, self.danjia) 58 else: 59 return "枪的信息为:%s,这把枪中没有弹夹"%(self.name) 60 61 def fire(self,diren): 62 """枪中弹夹中获取一发子弹,然后让这发子弹去击中敌人""" 63 #先取弹夹中取子弹 64 zidan_temp = self.danjia.tanchu_zidan() 65 #让这个子弹去伤害敌人 66 if zidan_temp: 67 #子弹.打中敌人(敌人) 68 zidan_temp.dazhong(diren) 69 else: 70 print("弹夹中没有子弹啦!") 71 72 73 class Danjia(object): 74 """枪的类""" 75 def __init__(self,max_num): 76 super(Danjia,self).__init__() 77 self.max_num = max_num # 用来记录枪夹得容量 78 self.zidan_list = [] # 用来记录所有子弹的引用 79 80 def bao_cun_zidan(self,zi_dan_temp): 81 """将这个子弹保存在弹夹""" 82 self.zidan_list.append(zi_dan_temp) 83 84 def __str__(self): 85 return "弹夹的信息为:%d/%d"%(len(self.zidan_list),self.max_num) 86 87 def tanchu_zidan(self): 88 """弹出最上面的那颗子弹""" 89 if self.zidan_list: 90 return self.zidan_list.pop() 91 else: 92 return None 93 94 95 class Zi_dan(object): 96 """枪的类""" 97 def __init__(self,sha_shang_li): 98 super(Zi_dan,self).__init__() 99 self.sha_shang_li = sha_shang_li # sha_shang_li子弹威力 100 101 def dazhong(self,diren): 102 """让敌人掉血""" 103 #敌人.掉血(一个子弹的威力) 104 diren.diao_xue(self.sha_shang_li) 105 106 107 108 def main(): 109 """用来控制这个程序流程""" 110 111 # 1创建一个老赵对象 112 laozhao = Person("老赵") 113 114 115 # 2创建一个枪对象 116 ak47 = Gun("AK47") 117 118 # 3创建一个弹夹对象 119 dan_jia = Danjia(20) 120 121 # 4创建一些子弹 122 for i in range(15): 123 zi_dan = Zi_dan(10) 124 125 # 5老赵把子弹安装在弹夹中 126 # laozhao安装子弹到弹夹中(弹夹,子弹) 127 laozhao.anzhuang_zidan(dan_jia,zi_dan) 128 129 130 # 6老赵把弹夹安装到抢中 131 # 老赵.安装弹夹到枪中 132 laozhao.anzhuang_danjia(ak47, dan_jia) 133 134 """ 135 # test:测试弹夹信息 136 print(dan_jia) 137 # test:枪测试 138 print(ak47) 139 """ 140 141 # 7老赵拿枪 142 laozhao.naqiang(ak47) 143 144 # 测试老王拿枪 145 print(laozhao) 146 147 148 # 8创建一个敌人 149 gebi_laosong = Person("隔壁老宋") 150 print(gebi_laosong) 151 152 # 9老赵开枪打敌人 153 # 老王.扣扳机(隔壁老宋) 154 laozhao.kou_ban_ji(gebi_laosong) 155 print(gebi_laosong) 156 print(laozhao) 157 158 #老赵向老宋连续开15枪 159 for i in range(15): 160 laozhao.kou_ban_ji(gebi_laosong) 161 print(gebi_laosong) 162 print(laozhao) 163 164 165 166 if __name__ == '__main__': 167 main()
转载于:https://www.cnblogs.com/Hunter-541695/p/9363846.html
Python 简单的枪击游戏相关推荐
- Python简单龟兔赛跑小游戏
Python实现简单的龟兔赛跑小游戏 基于CSS 和 js的基础之上实现: 具体代码如下>>: HTML代码文件 <!DOCTYPE html> <html>< ...
- python简单超级马里奥游戏下载_python 实现超级玛丽游戏
开发需求 python 3.7+ pygame 1.9+ 演示 项目地址 https://github.com/Mr-han11/PythonSuperMario-master 主要功能的代码实现 玩 ...
- python简单超级马里奥游戏下载大全_Python实现超级玛丽游戏系列教程01玛丽登场...
配套视频教程 www.bilibili.com/video/BV1ua411c7m3 项目代码 gitee.com/kamiba/python_super_mario_game_code 最终效果 搭 ...
- python简单超级马里奥游戏下载大全_Python实现超级玛丽游戏系列教程02玛丽走跑...
配套视频教程 项目代码 最终效果 行走 constants.py STAND = 'standing' WALK = 'walk' SMALL_ACCEL = .2 SMALL_TURNAROUND ...
- python外星人入侵游戏图片_[Python]简单的外星人入侵游戏
1 importsys2 3 importpygame4 from bullet importBullet5 from alien importAlien6 from time importsleep ...
- python猜数游戏流程_python简单猜数游戏实例
本文实例讲述了python简单猜数游戏.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import random number = random.randint ...
- python编写猜数游戏代码、如果不是整数、显示输入错误_数字炸弹游戏程序 用python来实现...
相信许多小伙伴都玩过数字炸弹游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作炸弹,其余玩家在这个范围含数字,每次只要没猜中炸弹数字,则根据玩家猜的数字缩小范围,直至其中 ...
- python编写猜数游戏代码、如果不是整数、显示输入错误_python编写猜数游戏代码、如果不是整数、显示输入错误_数字炸弹游戏程序 用python来实现......
相信许多小伙伴都玩过数字炸弹游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作炸弹,其余玩家在这个范围含数字,每次只要没猜中炸弹数字,则根据玩家猜的数字缩小范围,直至其中 ...
- python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名
上一篇,我们梳理了Python中关于字典排序的一些常用方法(杂乱无章的数据结构如何进行排序,简明讲述Python字典排序那些事).其中,我们讲到了Python的collections模块中的Order ...
最新文章
- Python(四)IP代理
- Linux多线程总结
- 寒假每日一题(提高组)【Week 1 完结】
- php 上传 tmp_name 空,PHP文件上载错误tmp_name为空
- STM32技术文档里面的I / O Level FT具体含义
- inputstream读取html乱码,java InputStream 读取汉语言内容的解决乱码
- 小程序 | 基于WAMP的新闻网小程序开发(体验全栈式开发微信小程序)
- Python+pandas你可能不知道的排序技巧
- (一)如何实现一个单进程阻塞的网络服务器
- 31.URL 管理(2)
- redis作用_Java高级架构笔记——实现故障恢复自动化:详解Redis哨兵技术
- ARM体系结构与编程笔记
- 利用Fiddler下载旧版本 iOS App
- Excel怎么快速为非数字单元格填充颜色
- 电脑可以使用QQ,但是无法上网的解决方案
- 苹果开发者后台,修改付费app中银行账户信息时注意
- NCRE考试感想 四级嵌入式(上)
- 「视频」重磅 | Magic Leap再发Demo,凯文·凯利万字长文揭秘
- win10关闭自动更新(针对已经关闭windows update项,但系统仍自动更新的问题)
- Vmware安装迷你版的 Centos6 并配置 Nat 模式可访问外网