定一个人狗大战 并且用面向对象的组合知识
class Person(object): def __init__(self, name, sex, hp, ad): self.name = name self.sex = sex self.hp = hp self.ad =ad self.money = 0 #定义一个默认的属性 #定义一个人攻击物的方法 def attack(self, d): d.hp -= self.ad print('{}攻击了{},{}掉了{}血'.format(self.name,d.name, d.name,self.ad)) # 但是你想想 你要装备动东西的话 那么你需要先充值啊 毕竟腾讯系啊 def pay(self): money = int(input('请输入你要充值的钱数')) self.money += money print('充值成功 总资金%s' % self.money) #定义一个人可以购买的武器的方法 def zhuangbei(self, weapon): # self.weapon = weapon #把你传递进来的属性 赋值给这个类本身 if self.money >= weapon.price : self.weapon = weapon #把你的传递进来的参数给类本身 以方便类本身来调用 print('购买成功, 您已经成功装备了武器') self.money -= weapon.price else : print('余额不足请充值') def attack_with(self,dog): #这个是用武器攻击的方法 if 'weapon' in self.__dict__: #判读你把组合的信息赋予了类本身没有 self.weapon.attack3(dog) else : print('您还没有购买装备 请购买') class Dog(object): #定义一个动物类 def __init__(self, name, sex, hp,ad): self.name = name self.sex = sex self.hp = hp self.ad = ad #定义一个动物攻击其他的方法 def attack1(self, p): p.hp -= self.ad print('{}攻击了{},{}掉了{}血'.format(self.name, p.name, p.name, self.ad)) #模拟你的游戏 你可以装备武器来进攻 #定义一个武器类 class weapon(object): def __init__(self, name, price, ad,leval): #初始化你的对象 self.name =name self.price =price self.ad = ad self.leval = leval def attack3(self, m): m.hp -= self.ad print('{}攻击了{},{}掉了{}血'.format(self.name, m.name, m.name, self.ad)) #实例化对象 alex = Person('老王', '女', 100,30) tendy = Dog('泰迪', '公', 100,50) weapon = weapon('菜刀', 1000, 100,1) li = ['攻击', '充值', '购买', '使用武器攻击'] while True : for i in li : num = int(input('请输入您要选择的序列信息')) if num == 1 : alex.attack(tendy) elif num == 2 : alex.pay() elif num == 3 : alex.zhuangbei(weapon) elif num == 4 : alex.attack3(tendy) else :