黑马程序员技术交流社区

标题: 反恐精英案例 [打印本页]

作者: lanlan590461    时间: 2018-10-7 20:51
标题: 反恐精英案例
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 = 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" %(self.name,state)
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 = p.life - damage
        else :
            print("%s枪法不行" % self.name)

def main():
    h = Hero("【英雄】")
    is1 = Is("【恐怖分子1】")
    is2 = Is("【恐怖分子2】")
    is3 = Is("【恐怖分子3】")
    while True:
        x = random.randint(1,3)
        if x == 1:
            h.fire(is1)
        elif x == 2:
            h.fire(is2)
        else:
            h.fire(is3)
        is1.fire(h)
        is2.fire(h)
        is3.fire(h)
        print(h)
        print(is1)
        print(is2)
        print(is3)
        print()
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break
        if is1.life <= 0 and is2.life <= 0 and is3.life <= 0:
            print("所有恐怖份子全部死亡,枪战结束")
            break
main()







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2