• 习题


    习题

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

    • 对象是具有特征和技能的结合体,类是一系列具有相同特征和技能的对象的整体

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

    • 对象调用绑定方法会默认将对象本身当做第一个参数传入该绑定方法
    • 对象的绑定方法与类中对应的方法功能一样但是内存地址不一样

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

    # 基于面向对象仿制英雄联盟角色设计一个对战游戏
    
    # 定义瑞文类
    class RuiWen:
        camp = 'Nokesasi'
    
        def __init__(self, name, aggr=54, life=414, money=1001, armor=3):
            self.name = name
            self.aggr = aggr
            self.life = life
            self.money = money
            self.armor = armor
    
        def attack(self, enemy):
            damage_life = self.aggr - enemy.armor
            enemy.life -= damage_life
    
    
    # 定义盖伦类
    class GaiLun:
        camp = 'Demaxiya'  # 阵营是德玛西亚
    
        def __init__(self, name, aggr=58, life=455, money=100, armor=10):
            self.name = name
            self.aggr = aggr
            self.life = life
            self.money = money
            self.armor = armor
    
        def attack(self, enemy):
            damage_life = self.aggr - enemy.armor
            enemy.life -= damage_life
    
    
    # 定义装备类,
    class DuoLanRen:
        def __init__(self, price=475, aggr=9, life=100):
            self.price = price
            self.aggr = aggr
            self.life = life
    
        def add_attr(self, obj):
            obj.money -= self.price
            obj.aggr += self.aggr
            obj.life += self.life
    
        def fire_skill(self, obj):  # 装备的主动技能,喷火燃烧敌方100点生命值
            obj.life -= 100
    
    
    # 交互代码
    r1 = RuiWen('才气龙')
    g1 = GaiLun('tank')
    d1 = DuoLanRen()
    
    if r1.money > d1.price:
        r1.duolanren = d1
        r1.duolanren.add_attr(r1)
    
    print(f'''{r1.name}购买了多兰之刃
    装备后:
    攻击力:{r1.aggr}
    生命值:{r1.life}
    金钱:{r1.money}''')
    print('*'*30)
    
    print(f'盖伦初始生命值为:{g1.life}')
    print('*'*30)
    
    r1.attack(g1)  # 瑞文攻击盖伦一次
    print(f'盖伦被瑞文攻击一次后生命值为:{g1.life}')
    print('*'*30)
    
    r1.duolanren.fire_skill(g1)  # 用多兰刃攻击
    print(f'盖伦被多兰剑烧一次后生命值为:{g1.life}')
    
  • 相关阅读:
    bzoj3721
    [BZOJ3555] [Ctsc2014]企鹅QQ(Hash)
    [POJ3233] Matrix Power Series(矩阵快速幂)
    矩阵运算所满足的定律
    [luoguP1962] 斐波那契数列(矩阵快速幂)
    [luoguP3390]【模板】矩阵快速幂
    【转】关于LIS和一类可以用树状数组优化的DP 预备知识
    [BZOJ1264][AHOI2006]基因匹配Match(DP + 树状数组)
    [luoguP1439] 排列LCS问题(DP + 树状数组)
    蛤蛤蛤(树状数组 | 二分)
  • 原文地址:https://www.cnblogs.com/-406454833/p/11669303.html
Copyright © 2020-2023  润新知