今日作业
1.什么是对象?什么是类?
对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体
2.绑定方法的有什么特点
由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中,对象的绑定方法,是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法中。
3.基于面向对象设计一个对战游戏
# 仿制英雄联盟英雄角色
'''
瑞雯:
生命值:414 攻击力:54 护甲:12 金币:1000
盖伦
生命值:455 攻击力:56 护甲:19 金币:150
'''
class Riven:
camp = 'Noxus'
def __init__(self,nickname,aggr=54,life_value=414,money=1000,armor=12):
self.nickname = nickname
self.aggr = aggr
self.life_value = life_value
self.money = money
self.armor = armor
def attack(self,enemy):
damage_value = self.aggr-enemy.armor
enemy.life_value -= damage_value
class Garen:
camp = 'Demacia'
def __init__(self,nickname,aggr=56,life_value=455,money=150,armor=19):
self.nickname = nickname
self.aggr = aggr
self.life_value = life_value
self.money = money
self.armor = armor
def attack(self,enemy):
damage_value = self.aggr-enemy.armor
enemy.life_value -= damage_value
class DoranBlade:
def __init__(self,price=450,aggr=8,life_value=80):
self.price = price
self.aggr = aggr
self.life_value = life_value
def update(self,obj):
obj.money -= self.price # 扣钱
obj.aggr += self.aggr # 加攻击力
obj.life_value +=self.life_value # 加生命值
def blood(self,obj): # 装备主动技能流血
obj.life_value -= 500
r1 = Riven('瑞雯')
g1 = Garen('草丛伦')
b1 = DoranBlade()
print(r1.aggr,r1.life_value,r1.money) # r1的攻击力,生命值,金钱
if r1.money > b1.price:
r1.b1 = b1
b1.update(r1)
print(r1.aggr,r1.life_value,r1.money) # 此时r1的攻击力,生命值、金钱
print(g1.life_value)
r1.attack(g1) # 普通攻击
print(g1.life_value)
r1.b1.blood(g1) # 流血攻击
print(g1.life_value)