英雄对战_练习1 _ 类和对象
发布时间:2020-12-20 10:21:35 所属栏目:Python 来源:网络整理
导读:"""aggressivity 攻击力armor 护甲damage_value 伤害值""" class Riven: camp = 'Noxus' def __init__(self,nickname,aggressivity=200,life_value=600,money=1000,armor=10): self.nickname = nickname self.aggressivity = aggressivity self.life_value =
""" aggressivity 攻击力 armor 护甲 damage_value 伤害值 """ class Riven: camp = 'Noxus' def __init__(self,nickname,aggressivity=200,life_value=600,money=1000,armor=10): self.nickname = nickname self.aggressivity = aggressivity self.life_value = life_value self.money = money self.armor = armor def attack(self,enemy): if enemy.life_value <= 0: return True if self.life_value: damage_value = self.aggressivity - enemy.armor # 一次攻击伤害值 enemy.life_value -= damage_value # 被攻击一次后剩余的生命值 print( f''' [{self.nickname}]攻击:[{enemy.nickname}] [{enemy.nickname}]掉血:[{damage_value}] 还剩血量:[{enemy.life_value}] ''') class Garen: camp = 'Demacia' def __init__(self,aggressivity=250,life_value=500,money=1100,armor=5): self.nickname = nickname self.aggressivity = aggressivity self.life_value = life_value self.money = money self.armor = armor def attack(self,enemy): if enemy.life_value <= 0: return True if self.life_value: damage_value = self.aggressivity - enemy.armor # 一次攻击伤害值 enemy.life_value -= damage_value # 被攻击一次后剩余的生命值 print( f''' [{self.nickname}]攻击:[{enemy.nickname}] [{enemy.nickname}]掉血:[{damage_value}] 还剩血量:[{enemy.life_value}] ''') class BlackCleaver: def __init__(self,price=500,aggrev=10,life_value=100): self.price = price self.aggrev = aggrev self.life_value = life_value def update(self,obj): obj.money -= self.price # 减钱 obj.aggressivity += self.aggrev # 加攻击 obj.life_value += self.life_value # 加生命值 def fire(self,obj): # 主动攻击技能,喷火,烧死对方 obj.life_value -= 1000 # 火烧得攻击力定为1000 r1 = Riven('飞灵') g1 = Garen('盖轮') b1 = BlackCleaver() while True: flag1 = r1.attack(g1) if flag1: print(f'{g1.nickname}已挂') break flag2 = g1.attack(r1) if flag2: print(f'{r1.nickname}已挂') break 扩展: # print(r1.aggressivity,r1.life_value,r1.money) # if r1.money > b1.price: # r1.b1 = b1 # b1.update(r1) # print(r1.aggressivity,r1.money) # print(g1.aggressivity,g1.life_value,g1.money) # r1.attack(g1) # 普通攻击 # print(g1.life_value) # r1.b1.fire(g1) # 用装备攻击 # print(g1.life_value) # g1的生命值小于等于0就死了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |