1. 程式人生 > >面向物件的程式設計 面向物件小練習

面向物件的程式設計 面向物件小練習

面向物件小練習

 

閱讀目錄

基於面向物件設計一個對戰遊戲

定義銳雯類:

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就死了 

按照這種思路一點一點的設計類和物件,最終你完全可以實現一個對戰類遊戲。

閱讀目錄

基於面向物件設計一個對戰遊戲

定義銳雯類:

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就死了 

按照這種思路一點一點的設計類和物件,最終你完全可以實現一個對戰類遊戲。