day19 作业

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

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

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

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

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

3. 基于面向对象设计一个对战游戏(仿制英雄联盟英雄角色)

'''
基于面向对象设计一个对战游戏(仿制英雄联盟)

英雄角色:
1. 姓名:瑞雯;
    阵营:诺克萨斯;生命值:414;攻击力:54;金币:6300;护甲:12

2. 姓名:盖伦;
    阵营:德玛西亚;生命值:455;攻击力:56;金币:3150;护甲:19

装备:
1. 名称:多兰之刃;
    价格:475;加生命值:100;加攻击:9
'''


class hero:

    def __init__(self, camp, hp, atk, money, armor):
        self.camp = camp
        self.hp = hp
        self.atk = atk
        self.money = money
        self.armor = armor



    def attack(self,enemy):
        damage = self.atk*(1-enemy.armor/100)
        enemy.hp -= damage



class equipment:

    def __init__(self,prize,add_hp,add_atk,add_armor):
        self.prize = prize
        self.add_hp = add_hp
        self.add_atk = add_atk
        self.add_armor = add_armor

    def update(self,hero):
        hero.money -= self.prize
        hero.hp += self.add_hp
        hero.atk += self.add_atk
        hero.armor += self.add_armor

    def skill(self,enemy):
        enemy.hp -= 300




# 1. 姓名:瑞雯;阵营:诺克萨斯;生命值:414;攻击力:54;金币:6300;护甲:12

# 2. 姓名:盖伦;阵营:德玛西亚;生命值:455;攻击力:56;金币:3150;护甲:19

Riven = hero('Noxus',414,54,6300,12)

Garen = hero('Demacia',455,56,3150,19)


# 名称:多兰之刃;价格:475;加生命值:100;加攻击:9

doran_blade = equipment(475,100,9,0)

# 名称:兰顿之盾;价格:2900;加生命值:400;加护甲:60

lantun_shield = equipment(2900,400,0,60)


print(Riven.hp,Riven.atk,Riven.money,Riven.armor)
print(Garen.hp,Garen.atk,Garen.money,Garen.armor)

if Riven.money > doran_blade.prize:
    Riven.doran_blade = doran_blade
    doran_blade.update(Riven)

if Garen.money > lantun_shield.prize:
    Garen.lantun_shield = lantun_shield
    lantun_shield.update(Garen)


print(Riven.hp,Riven.atk,Riven.money,Riven.armor)
print(Garen.hp,Garen.atk,Garen.money,Garen.armor)


Riven.attack(Garen)
print(Garen.hp,Garen.atk,Garen.money,Garen.armor)
Riven.doran_blade.skill(Garen)
print(Garen.hp,Garen.atk,Garen.money,Garen.armor)

结果:

414 54 6300 12
455 56 3150 19
514 63 5825 12
855 56 250 79
841.77 56 250 79
541.77 56 250 79

猜你喜欢

转载自www.cnblogs.com/bowendown/p/11643707.html