#引入time中的sleep函数,丰富内容
from time import sleep#定义枪类
class Gun:def __init__(self,gun_type,bullets):#定义枪的初始属性self.gun_type = gun_typeself.bullets = bulletsdef gun_fire(self):#定义开枪,用sleep函数形成开枪过程,开枪1次,子弹减少1print('firing')for i in range(20):print("-" * i + '>',end='\r')sleep(0.02)self.bullets -= 1print('fire over,rest bullets: %d' % self.bullets)sleep(0.05)def add_bullets(self,count):#装填子弹数量print('adding bullets...')for i in range(20):print("-" * i + '>',end='\r')sleep(0.05)self.bullets += countprint('add completed, rest bullets: %d' % self.bullets)#创建士兵类
class Soldier:def __init__(self,name,gun):#定义士兵属性,姓名和枪self.name = nameself.gun = gundef __str__(self):#输出士兵拥有的枪类型return  'soldier [%s] has a [%s]' % (self.name,self.gun.gun_type)def fire(self):#士兵开枪gun.gun_fire()#创建敌人类
class Enemy:def __init__(self,num):#定义初始敌人数量self.num = numdef enemy_die(self):#每开枪一次,敌人减少1个,如果敌人为0,返回1self.num -= 1print('enemy left [%d]' % self.num)if self.num == 0:print('there is no enemy')return 1return 0gun = Gun('QBZ95-1',5)#95-1自动步枪,5发子弹的初始枪gun
Xusanduo = Soldier('Xusanduo',gun)#士兵许三多
enemy = Enemy(20)#设置初始敌人数量为20
print(Xusanduo)#打印许三多的信息
while True:Xusanduo.fire()#许三多开枪no_enemy = enemy.enemy_die()#接收敌人是否消灭完毕的信息if gun.bullets == 0:    #判断是否还有子弹,如果没有就装弹gun.add_bullets(10)if no_enemy:#如果敌人为0,退出循环break

【python初学】class类士兵开枪案例相关推荐

  1. python面向对象——烤土豆,开枪案例

    烤土豆应用: 示例属性如下: cookedLevel : 这是数字:0~3表示还是生的,超过3表示半生不熟,超过5表示已 经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时时生的 cookedStr ...

  2. python面向对象练习:士兵开枪问题

    需求: 士兵瑞恩有一把AK47 士兵可以开火(士兵开火扣动的是扳机) 枪能够发射子弹--把子弹发射出去 枪能够装填子弹--增加子弹的数量 分析: 1.由于士兵瑞恩有一把AK47,士兵可以开火.故需要先 ...

  3. 47 python - 面向对象(老王开枪案例)

    1. 人类 属性 姓名 血量 持有的枪 方法 安子弹 安弹夹 拿枪(持有抢) 开枪 2. 子弹类 属性 杀伤力 方法 伤害敌人(让敌人掉血) 3. 弹夹类 属性 容量(子弹存储的最大值) 当前保存的子 ...

  4. python 面向对象例子(士兵开枪)

    1个对象调用加载或调用另外1个对象例子. gun.py class Gun:def __init__(self, model):self.model = modelself.bullet_count ...

  5. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  6. 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...

    作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...

  7. python中的类属性和类方法_python面向对象之类属性和类方法的使用和实例

    类属性和类方法 目标 类的结构类属性和实例属性类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 1. 使用面相对象开发,第 1 步 是设计 类 2. 使用 类名() 创建对象,创建对象 的 ...

  8. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

  9. 数据分析与挖掘中常用Python库的介绍与实践案例

    数据分析与挖掘中常用Python库的介绍与实践案例 一.Python介绍 现在python一词对我们来说并不陌生,尤其是在学术圈,它的影响力远超其它任何一种编程语言, 作为一门简单易学且功能强大的编程 ...

最新文章

  1. 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  2. java类加载器_类加载器ClassLoader
  3. 丹佛大学计算机科学专业,丹佛大学
  4. 通过javascript实现的轻量级模态框解决方案(支持Ajax)
  5. Controller的返回值
  6. jquery post php返回html,jquery ajax post 提交数据,返回的是当前网页的html?
  7. 服务器一直运行python_【已采纳】supervisor在服务器端(linux),如何一直运行你的python代码...
  8. 计算机图形图像项目教程素材,案例任务驱动法在图形图像教学中的运用
  9. Facebook开源多款AI工具,支持游戏、翻译
  10. python requests 上传文件
  11. Ext.grid.EditorGridPanel点击单元格改变数据,动态添加列
  12. 渗透测试工程师面试题大全(164道)
  13. python入门神器_Python入门之神器,助你快速上手!
  14. P2P、O2O、B2C、B2B、C2C分别代表什么意思?
  15. Java并发编程synchronized详解
  16. Linux常用命令详解(两万字超长文)
  17. 华为ensp基础实验(一)
  18. [答学员问】对于低学历的我,想找一个培训机构学习Linux网络运维,哪个培训机构教学稍微好一点呢?
  19. Arduino深色主题
  20. mysql一段时间过后 无法连接_MYSQL连接一段时间不操作后出现异常的解决方案

热门文章

  1. 微信小程序的技术原理
  2. [ZJOI2015] 幻想乡战略游戏——树链剖分
  3. 如何在Excel中使用公式将生日自动转换成星座?
  4. 《C++ Concurrency in Action》笔记
  5. Android 仿支付宝搜索结果页,字符串部分文字显示高亮
  6. ssd存储的SLC、MLC、TLC闪存芯片颗粒有什么区别?
  7. 睡不着觉--安卓计数器给我数绵羊
  8. 语音合成第一篇-入门
  9. C语言—字符串函数和内存函数
  10. mac下生成.icns图标