#實現人狗大戰
class Dog:
def __init__(self,*args):
self.name=args[0]
self.age=args[1]
self.blood=args[2]#血量
self.king=args[3]#攻擊力
def yaoni(self,person): #狗的方法:咬人
#狗咬人 人掉血
# Person.blood-=dog.gking
person.blood -= self.king
class Person:
def __init__(self,*args):
self.name=args[0]
self.age=args[1]
self.blood=args[2]#血量
self.king=args[3]#攻擊力
self.money = args[4]
def dagao(self,dog):#人的方法:打狗
dog.blood-=self.king#人打狗 狗掉血
def get_weapon(self,weapon):# 人的方法: 給人裝備‘打狗棒’
if self.money>=weapon.price:
self.money-=weapon.price
self.weapon=weapon
#裝備上武器中后血量增加
self.blood+=weapon.blood #自己的血量加上武器的血量
else:
print('余額不足請充值')
class Weapon: #裝備類
def __init__(self,name,blood,njd,price):
self.name=name
self.blood=blood
self.njd=njd #裝備的耐久度 和血量差不多
self.price=price#裝備的價格
#給裝備設計一個大招 加一個方法
def hand(self,person): #這個裝備可以攻擊一個人
if self.njd >0:
person.blood-=self.blood*2 #可以掉雙倍的血量
self.njd-=1 #狗的耐久度減一
alex=Person('alex',11,2000,200,300) #實例化一個人
jin=Dog('金老板',543,1000,100) #實例化一個狗
w=Weapon('打狗棒',100,3,998)
#怎樣給Alex裝備打狗棒
alex.money+=5415
alex.get_weapon(w)
print(alex.weapon)
print(alex.blood)
alex.dagao(jin)#alx開始打狗了 調用了person中的dagou方法
print(jin.blood)#查看一下狗的血量
alex.weapon.hand(jin)#alex有一個weap屬性 是另外一個類的對象 alex使用裝備中的大招開始打狗
print(jin.blood)
#******該游戲中涉及到了一個面向對象的知識點 組合:一個對象的屬性是另一個類的對象 alex.weapon是weapon類的對象