day30作业

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

对象试特征与技能的结合体

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

2. 绑定方法有什么特点

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

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

class Yi:
    camp = 'Ionia'

    def __init__(
            self,
            heroname,
            aggressivity=60,
            life_value=430,
            money=600,
            armor=30):
        self.heroname = heroname
        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 Fiona:
    camp = 'Demacia'

    def __init__(
            self,
            heroname,
            aggressivity=56,
            life_value=450,
            money=200,
            armor=15):
        self.heroname = heroname
        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 DoranSword:
    def __init__(self, price=475, aggrev=10, 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



y1 = Yi('易大师')
f1 = Fiona('菲奥娜')
d1 = DoranSword()

print(f'易的属性:{y1.aggressivity}攻击力,{y1.life_value}生命值,{y1.money}金币')

if y1.money > d1.price:
    y1.d1 = d1
    d1.update(y1)

print(f'易的属性:{y1.aggressivity}攻击力,{y1.life_value}生命值,{y1.money}金币')

while True:
    if f1.life_value <= 0:
        print('菲奥娜阵亡了!')
        break
    print(f'菲奥娜的血量:{f1.life_value}')
    y1.attack(f1)

posted @ 2019-10-09 21:32  Isayama  阅读(95)  评论(0编辑  收藏  举报