第八章 面向对象练习

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

定义锐雯类:

img

img

class Riven:
    camp='Noxus'
    def __init__(self,nickname,
                 aggressivity=54,
                 life_value=414,
                 money=1001,
                 armor=3):
        self.nickname=nickname
        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

定义盖文类:

img

img

class Garen:
    camp='Demacia'
    def __init__(self,nickname,
                 aggressivity=58,
                 life_value=455,
                 money=100,
                 armor=10):
        self.nickname=nickname
        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

定义装备:

img

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 #假设火烧的攻击力是1000

测试交互

r1=Riven('草丛伦')
g1=Garen('盖文')
b1=BlackCleaver()

print(r1.aggressivity,r1.life_value,r1.money) #r1的攻击力,生命值,护甲

if r1.money > b1.price:
    r1.b1=b1
    b1.update(r1)


print(r1.aggressivity,r1.life_value,r1.money) #r1的攻击力,生命值,护甲

print(g1.life_value)
r1.attack(g1) #普通攻击
print(g1.life_value)
r1.b1.fire(g1) #用装备攻击
print(g1.life_value) #g1的生命值小于0就死了

按照这种思路一点一点的设计类和对象,最终你完全可以实现一个对战类游戏。

2 继承分组练习题

类 : 校区、学员、课程、讲师 要求:

  1. 创建闵行校区、青浦校区 2 个校区
  2. 创建人工智能 , 区块链 , 数据分析 3个课程 , 人工智能和数据分析 在青浦校区开, 区块链 在闵行校区开
  3. 课程包含,周期,价格,通过校区创建课程
  4. 通过校区创建班级, 班级关联课程、讲师
  5. 创建学员时,选择校区,关联班级
  6. 创建讲师角色时要关联校区,
  7. 提供两个角色接口 7.1 学员视图, 可以注册, 交学费, 选择班级, 7.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩 7.3 管理视图,创建讲师, 创建班级,创建课程

  8. 上面的操作产生的数据都通过pickle序列化保存到文件里

results matching ""

    No results matching ""