定义锐雯类

python英雄联盟代码(面向对象基础实战之英雄联盟)(1)

python英雄联盟代码(面向对象基础实战之英雄联盟)(2)

class Riven: camp = 'Noxus' # 所有玩家的英雄(锐雯)的阵营都是Noxus; def __init__( self, nickname, aggressivity=54, # 英雄的初始攻击力54; life_value=414, money=1001, armor=3): self.nickname = nickname # 为自己的锐雯起个别名; self.aggressivity = aggressivity # 英雄都有自己的攻击力; self.life_value = life_value # 英雄都有自己的生命值; self.money = money self.armor = armor def attack(self, enemy): # 普通攻击技能,enemy是敌人; damage_value = self.aggressivity - enemy.armor # 根据自己的攻击力,攻击敌人就减掉敌人的生命值。 enemy.life_value -= damage_value

定义盖伦类

python英雄联盟代码(面向对象基础实战之英雄联盟)(3)

python英雄联盟代码(面向对象基础实战之英雄联盟)(4)

class Garen: # 定义英雄盖伦的类,不同的玩家可以用它实例出自己英雄; camp = 'Demacia' # 所有玩家的英雄(盖伦)的阵营都是Demacia; def __init__( self, nickname, aggressivity=58, # 英雄的初始攻击力58...; life_value=455, money=100, armor=10): self.nickname = nickname # 为自己的盖伦起个别名; self.aggressivity = aggressivity # 英雄都有自己的攻击力; self.life_value = life_value # 英雄都有自己的生命值; self.money = money self.armor = armor def attack(self, enemy): # 普通攻击技能,enemy是敌人; damage_value = self.aggressivity - enemy.armor # 根据自己的攻击力,攻击敌人就减掉敌人的生命值。 enemy.life_value -= damage_value

定义装备类

python英雄联盟代码(面向对象基础实战之英雄联盟)(5)

class BlackCleaver: def __init__(self, price=475, aggrev=9, 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() print(r1.aggressivity, r1.life_value, r1.money) #r1的攻击力,生命值,护甲 if r1.money > b1.price: r1.b1 = b1 b1.update(r1) print(r1.aggressivity, r1.life_value, r1.money) #r1的攻击力,生命值,护甲 print(g1.life_value) r1.attack(g1) #普通攻击 print(g1.life_value) r1.b1.fire(g1) #用装备攻击 print(g1.life_value) #g1的生命值小于0就死了 54 414 1001 63 514 526 455 402 -598

,