python 人物对打 类

2021/11/27 17:12:56

本文主要是介绍python 人物对打 类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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('比赛失败!!!')
人物对打

 



这篇关于python 人物对打 类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程