day19

什么是对象?什么是类?

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

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

绑定方法的有什么特点

由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中.对象的绑定方法,是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法中.

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

class Hero:
    def __init__(self,name,aggressivity,life_value,money,armor):
        self.name=name
        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 BlackCleaver:
    def __init__(self,price=475,aggrev=9,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
    def fire(self,obj):
        obj.life_value-=1000

Riven=Hero('Riven',54,414,1001,3)
Garen=Hero('Garen',28,455,100,10)
BC=BlackCleaver()

# print(Riven.life_value,Riven.aggressivity,Riven.money)

if Riven.money>=BC.price:
    BC.update(Riven)
    Riven.BC=BC

# print(Riven.life_value,Riven.aggressivity,Riven.money)
while True:
    if Garen.life_value <= 0:
        print(f'{Garen.name} over')
        break
    # print(Garen.life_value)
    Riven.attack(Garen)
    # print(Garen.life_value)
    Riven.BC.fire(Garen)
    # print(Garen.life_value)
posted @ 2019-10-09 16:47  lucky_陈  阅读(84)  评论(0编辑  收藏  举报