#实现人狗大战
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类的对象