python英雄联盟代码(面向对象基础实战之英雄联盟)
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
定义盖伦类
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
定义装备类
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
- 按照这种思路一点一点的设计类和对象,最终你完全可以实现一个对战类游戏。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com