python枪战项目计划书_用python语言实现反恐精英基础版-案例

"""

写了大概有1个多小时吧,中途多多少少都出现了一些bug,最终还是码出来,Talk is cheap, show me code!(屁话少说,放码过来) PS:Markdown文本改了很多次...真的是手残啊

"""

"""

反恐精英案例(基础版)

复制代码

-----------------------基础版-----------------------

1.定义人类,描述公共属性 life:100 name:姓名要传参

2.定义出英雄与恐怖分子类

3.定义主函数描述枪战过程 main,创建两个对象

4.定义开枪方法,分成两个方法,Hero Is都有 定义的方法要传入被射击的对象 被射击对象的生命值要进行减少

5.主程序中调用开枪操作

6.开枪操作后,要在主程序中显示每个人的状态信息

7.定义Person类的__str__方法,用于显示每个人的状态

8.设置开枪操作为反复操作 再设置停止条件:一方生命值<=0 停止循环使用break

9.修复英雄的信息显示模式 状态描述 0 - 1- 70 - 99- 100 if..elif.. and组合条件

10.修复生命值为负的问题 射击时如果生命值

11.创建三个恐怖份子对象 三个对象都要开枪,三个对象都要打印状态

12.修复结束条件为三个恐怖份子都死亡 三个满足同时死亡 and

13.解决向三个恐怖份子开枪的问题 随机数:random 步骤1:使用random import random 必须写在所有程序的前面 步骤2:使用random.randint(1,3) 可以产生1到3的随机数 产生一个随机数,判断是几就向几号敌人开枪

14.加入开枪射击命中概率 产生一个随机数,如果在范围内,命中,否则不命中 文字效果要变化 两处开枪都要重新制作

15.加入开枪伤害值波动 产生一个随机数,作为伤害值

16.加入鞭尸文字显示效果

"""

import random

class Person:

def __init__(self, name):

self.name = name

self.life = 100

def __str__(self):

return "%s当前生命值为%d" % (self.name, self.life)

复制代码

class Hero(Person):

def fire(self, p):

hit = random.randint(1, 100)

if hit > 20:

if p.life == 0:

print("%s都已经死了, 就不要鞭尸了" % p.name)

else:

damage = random.randint(20, 50)

print("%s向%s射击, 造成了%d点伤害" % (self.name, p.name, damage))

if p.life < damage:

p.life = 0

else:

p.life -= damage

else:

print("枪法真臭,这是个臭籽,没有打到恐怖份子")

def __str__(self):

state = ""

if self.life == 100:

state = "无伤"

elif self.life >= 70 and self.life < 100:

state = "轻伤"

elif self.life >= 1 and self.life < 70:

state = "重伤"

elif self.life <= 0:

state = "挂了"

return "%s当前的状态为%s, HP剩余%d" % (self.name, state, self.life)

复制代码

class Is(Person):

def fire(self, p):

damage = random.randint(5, 15)

hit = random.randint(1, 100)

if hit > 80:

print("%s向%s射击, 造成了%d点伤害" % (self.name, p.name, damage))

if p.life < damage:

p.life = 0

else:

p.life -= damage

else:

print("%s枪法不行啊,回去接着练吧" % self.name)

复制代码

def main():

h = Hero("【英雄】")

i1 = Is("【恐怖分子中的老大】")

i2 = Is("【恐怖分子中的老二】")

i3 = Is("【恐怖分子中的老三】")

print(h)

print(i1)

while 1:

x = random.randint(1, 3)

if x == 1:

h.fire(i1)

elif x == 2:

h.fire(i2)

elif x == 3:

h.fire(i3)

i1.fire(h)

i2.fire(h)

i3.fire(h)

print(h)

print(i1)

print(i2)

print(i3)

if h.life <= 0:

print("%s已经阵亡, 游戏结束" % h.name)

break

if i1.life <= 0 and i2.life <= 0 and i3.life <= 0:

print("恐怖分子已经全部阵亡, 游戏结束")

break

复制代码

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值