基於面向對象設計一個對戰游戲
定義銳雯類:


class Riven:
camp='Noxus'
def __init__(self,nickname, aggressivity=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): damage_value=self.aggressivity-enemy.armor enemy.life_value-=damage_value
定義蓋文類:


class Garen:
camp='Demacia'
def __init__(self,nickname, aggressivity=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): 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就死了
按照這種思路一點一點的設計類和對象,最終你完全可以實現一個對戰類游戲。
