基于Python的模拟反恐精英小Demo
2018-12-05 20:06
23 查看
基于Python的模拟反恐精英小Demo
演示反恐精英案例
思维步骤:
- 定义人类,描述公共属性 life:100 name:姓名要传参
- 定义出英雄与恐怖分子类
- 定义主函数描述枪战过程 main,创建两个对象
- 定义开枪方法,分成两个方法,警察和土匪都有定义的方法要传入被射击的对象被射击对象的生命值要进行减少
- 主程序中调用开枪操作
- 开枪操作后,要在主程序中显示每个人的状态信息
- 定义Person类的__str__方法,用于显示每个人的状态
- 设置开枪操作为反复操作, 再设置停止条件:一方生命值<=0
停止循环使用break
import random # 定义随机 class Person: def __init__(self, name): self.name = name self.hp = 100 # 共有变量 hp def __str__(self): return "%s当前生命值为%d" % (self.name, self.hp) # 返回对象调用return 显示当前值 class Hero(Person): def fire(self, p): hit = random.randint(1,100) # 定义hit为命中率 产生随机数 if hit > 20: # 命中率为80 if p.hp == 0: print("%s都死了不要打了" % p.name) # 判断对象的血量如果等于0时输出在鞭尸 else: damage = random.randint(40, 60) # 判断打中后 产生的随机伤害值 print("%s向%s开了一枪,掉了%d血" % (self.name, p.name, damage)) if p.hp < damage: # 判断血量小于伤害值时 血量赋值为0 p.hp = 0 else: p.hp -= damage # 伤害值 - 血量值 = 当前血量值 else: print("没打中%s" % self.name) def __str__(self): state = "" # 定义一个字符串state if self.hp == 100: state = "无伤" elif self.hp > 70 and self.hp < 100: state = "轻伤" elif self.hp > 1 and self.hp < 70: state 4000 = "重伤" elif self.hp <= 0: state = "挂了" return "%s的当前状态为%s" % (self.name, state) class Bad(Person): def fire(self, p): damage = random.randint(1,10) hit = random.randint(1,100) if hit > 90: print("%s向%s开了一枪,掉了%d血" % (self.name, p.name, damage)) if p.hp < damage: p.hp = 0 else: p.hp -= damage else: print("%s没打中警察" % self.name) def main(): h = Hero("警察") bad1 = Bad("路人甲") bad2 = Bad("土匪已") bad3 = Bad("炮灰丙") while True: x = random.randint(1, 3) # 定义随机数,等于1 时向bad1开枪..... if x == 1: h.fire(bad1) elif x == 2: h.fire(bad2) elif x == 3: h.fire(bad3) bad1.fire(h) bad2.fire(h) bad3.fire(h) print(h) print(bad1) print(bad2) print(bad3) print() if h.hp <= 0: print("%s死亡,游戏结束" % h.name) break if bad1.hp <= 0 and bad2.hp <= 0 and bad3.hp <= 0: print("恐怖分子全部死亡") break main()
相关文章推荐
- python基于protobu+websocket+tornado实现多种二进制协议消息的接收发送和解析demo
- JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
- python 基于次世代验证码识别系统的小demo
- 基于QQ云输入法,用python实现的输入法(demo 版)
- python入门(二十六):基于反射模拟Web框架路由系统
- python爬虫——基于selenium用火狐模拟登陆爬搜索关键词的微博
- 【Python之旅】第四篇(四):基于面向对象的模拟人生游戏类
- windows下,python基于SocketServer模拟实现SSH(多线程版)
- 【Python_Demo_3】基于Python_OpenCv设置图像的ROI区域
- Python基于列表模拟堆栈和队列功能示例
- Python基于用户协同过滤算法的电影推荐代码demo
- python 操作 postgreSQL 数据库 Demo ( 基于PyGreSQL 包)
- 基于python的-模拟手机通讯录功能
- [源码下载]Demo2.模拟简单登陆-效果图 基于networkcomms2.3.1
- Python 模拟post注册demo
- [源码下载]Demo2.模拟简单登陆-效果图 基于networkcomms2.3.1
- 基于python的新浪微博模拟登陆
- 基于python的模拟鼠标进行百度知道自动签到程序
- [源码下载]Demo2.模拟简单登陆-效果图 基于networkcomms2.3.1
- 基于python的新浪微博模拟登陆 推荐