import random
class Person(object):
def __init__(self, name):
self.life = 100
self.name = name
def __str__(self):
return "{}当前的生命值是:{}".format(self.name, self.life)
class Hero(Person):
def fire(self, p):
# 伤害值, 伤害值加入波动
damage = random.randint(50, 70)
# 加入命中率
hit_rate = random.randint(1, 100)
if hit_rate >= 20: # 命中率80%
# 判断射击对象是否已死
if p.life <= 0:
print("{}已死了,{}你就不要继续打了".format(p.name, self.name))
return
# 当生命值 小于 受伤值时:
if p.life < damage:
# 生命值置为0
p.life = 0
print("{}已被{}打趴下".format(p.name, self.name))
else:
# 生命值减少
p.life -= damage
# 命中
print("{}向{}开枪,造成了{}伤害".format(self.name, p.name, damage))
else:
# 没有命中
print("{}没有打中敌人,枪法不准,回家再练练".format(self.name))
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 "{}当前的状态为:{}, 血值:{}".format(self.name, state, self.life)
class Is(Person):
def fire(self, p):
# 伤害值加入波动
damage = random.randint(5, 10)
# 命中率
hit_rate = random.randint(1, 100)
if hit_rate >= 60: # 命中率40%
# 判断射击对象是否已死
if p.life <= 0:
print("{}已死了,{}你就不要继续打了".format(p.name, self.name))
return
# 命中
# 当生命值 小于 受伤值时:
if p.life < damage:
# 生命值置为0
p.life = 0
print("{}已被{}打趴下".format(p.name, self.name))
else:
# 生命值减少
p.life -= damage
print("{}向{}开枪,造成了{}伤害".format(self.name, p.name, damage))
else:
# 没有命中
print("{}你的枪法真的不行,还是多回家练一练吧".format(self.name))
def __str__(self):
return "{}当前的生命值是:{}".format(self.name, self.life)
def main():
# 创建英雄对象
h = Hero("【英雄】")
# 创建恐怖分子对象
is1 = Is("【不要命1】")
# 创建恐怖分子对象
is2 = Is("【不要命2】")
# 创建恐怖分子对象
is3 = Is("【不要命3】")
while True:
# 产生随机数,判断向几号敌人开枪
enemy_num = random.randint(1, 3)
if enemy_num == 1:
# 英雄向恐怖分子1开枪
h.fire(is1)
elif enemy_num == 2:
# 英雄向恐怖分子2开枪
h.fire(is2)
else:
# 英雄向恐怖分子3开枪
h.fire(is3)
# 恐怖分子向英雄开枪
is1.fire(h)
# 恐怖分子向英雄开枪
is2.fire(h)
# 恐怖分子向英雄开枪
is3.fire(h)
print(h)
print(is1)
print(is2)
print(is3)
print("-" * 50)
if h.life <= 0:
print("{}已挂,枪战结束".format(h.name))
break
if is1.life <= 0 and is2.life <= 0 and is3.life <= 0:
print("全部恐怖份子已死亡,枪战结束")
break
if __name__ == '__main__':
main()
反恐精英基础版
最新推荐文章于 2021-01-29 23:34:47 发布