class Person:
def __init__(self,name,hp,atk):
self.name=name
self.hp=hp
self.atk=atk
pass
def __new__(cls, *args, **kwargs):
#确定是否比赛开始 创建函数
if input('比赛是否开始yes / no:') == 'yes':
return object.__new__(cls) #执行2次是应为构造是要input 构造类有input一次
def __str__(self):
return "{}当前血量{}".format(self.name,self.hp)
pass
def attk(self,enemy):
enemy.hp -= self.atk
print("{}攻击了{}一下 伤害{}".format(self.name,enemy.name,self.atk))
self.toux()
def toux(self):
if self.hp <=20:
print('我是{}血量太少,我想投降'.format(self.name))
if random.randint(0,10)==9:
print('处罚投降概率 当场投降!!!')
global flag
flag = False
return
print('触发失败!!!')
pass
pass
def recove(self):
self += self.hp*0.1
pass
one=Person('奥特曼',1000,12)
two=Person('丁伟亮',1000,12)
# 代码演示区域
import random
flag =True
n=0
if bool(one):
while flag:
if one.hp <= 0 or two.hp <= 0:
print('游戏结束 {}获胜'.format(two.name) if one.hp <= 0 else '游戏结束 {}获胜'.format(one.name))
break
if random.randint(1, 2) == 1:
print(one)
one.attk(two)
print(two)
pass
else:
print(two)
two.attk(one)
print(one)
pass
n += 1
print("当前比赛第%d轮" %n)
pass
else:
print('比赛失败!!!')