class Ruiwen: '''瑞文英雄的初始属性及普攻方法''' def __init__(self, nickname, gongjili = 54, shengmingzhi = 414, qian = 1000, hujia = 3): self.nickname = nickname self.gongjili = gongjili self.shengmingzhi = shengmingzhi self.qian = qian self.hujia = hujia def pugong(self, other): last_gongjili = self.gongjili - other.hujia # 自身攻击力减去对方英雄的护甲 other.shengmingzi -= last_gongjili # 对方生命值减去自身已经减去护甲的攻击力,即是一下普攻造成的伤害 class Gailun: '''盖伦英雄的初始属性及普工方法''' def __init__(self, nickname, gongjili = 44, shengmingzhi = 614, qian = 500, hujia = 6): self.nickname = nickname self.gongjili = gongjili self.shengmingzhi = shengmingzhi self.qian = qian self.hujia = hujia def pugong(self, other1): last_gongjili = self.gongjili - other1.hujia # 同上 other1.shengmingzhi -= last_gongjili # 同上 class Zhuangbei: '''一件装备的初始属性及主动技能和改变英雄数据属性方法''' def __init__(self, jiage=475, gongjili=9, shengmingzhi=100): self.jiage = jiage self.gongjili = gongjili self.shengmingzhi = shengmingzhi def update(self, obj): '''英雄对应的数据属性都要有增加,且金额需要扣减''' obj.qian -= self.jiage obj.gongjili += self.gongjili obj.shengmingzhi += self.shengmingzhi def fire(self, obj): '''主动技能,直接扣减生命值(无视护甲,可视为真实伤害)''' obj.shengmingzhi -= 1000 r1 = ruiwen('瑞文') g1 = gailun('盖伦') z1 = zhuangbei() print(g1.qian, g1.gongjili, g1.shengmingzhi) if g1.qian >= z1.jiage: g1.z1 = z1 # 此步骤只是一个赋值,后续调用主动技能方法 z1.update(g1) print(g1.qian, g1.gongjili, g1.shengmingzhi) print(r1.shengmingzhi) g1.pugong(r1) # 普通攻击 print(r1.shengmingzhi) g1.z1.fire(r1) # 装备主动技能 if r1.shengmingzhi <= 0: print('%s已将%s击杀' % (g1.nickname, r1.nickname))
基于面向对象设计一个对战小游戏
while True:
print('studying...')