day 19作业

1.什么是对象?什么是类?

对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体

2.绑定方法的有什么特点

1.由类来调用类内部的函数,该函数只是一个普通的函数,普通函数需要接受几个参数就得传入几个参数

​ 2.由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会讲不同的对象传入该绑定方法种

​ 对象的绑定方法是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法种

3.基于面向对象设计一个对战游戏

class HanBing:
    def __init__(self,name,attack=200,life=500,money=100):
        self.name=name
        self.attack=attack
        self.life=life
        self.money=money

    def attacker(self,enemy):
        enemy.life-=self.attack
        print(f'''
        {self.name}使用普通攻击,攻击了{enemy.name},造成{self.attack}点伤害''')
        if enemy.life<=0:
            return True,f'{enemy.name}死亡'
        return False,f'{enemy.name}剩余血量{enemy.life}'

class GaiLun:
    def __init__(self,name,attack=50,life=700,money=50):
        self.name=name
        self.attack=attack
        self.life=life
        self.money=money

    def attacker(self,enemy):
        enemy.life-=self.attack
        print(f'''
        {self.name}使用普通攻击,攻击了{enemy.name},造成{self.attack}点伤害''')
        if enemy.life<=0:
            return True,f'{enemy.name}死亡'
        return False,f'{enemy.name}剩余血量{enemy.life}'

class WuQi:
    def __init__(self,name,price,attack):
        self.name=name
        self.price=price
        self.attack=attack
    def goumai(self,enemy):
        enemy.attack+=self.attack
        enemy.money-=self.price
        print(f'{enemy.name}购买了{self.name},攻击力飙升了{self.attack}')

h1=HanBing('寒冰')
g1=GaiLun('盖伦')
wuqi1=WuQi('金箍棒',20,20)
wuqi2=WuQi('九尺钉耙',19,18)

if h1.money>wuqi1.price:
    wuqi1.goumai(h1)
if g1.money>wuqi2.price:
    wuqi1.goumai(g1)

while True:
    flag,msg=h1.attacker(g1)
    if flag:
        print(msg)
        break
    else:
        print(msg)
    flag,msg =g1.attacker(h1)
    if flag:
        print(msg)
        break
    else:
        print(msg)
原文地址:https://www.cnblogs.com/zqfzqf/p/11643579.html