zoukankan      html  css  js  c++  java
  • 习题

    习题

    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}')
    
  • 相关阅读:
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) D
    HDU 2036 求任意多边形面积板子题
    HDU 6703 array(主席树)
    2019牛客暑期多校训练营(第九场)H Cutting BamboosO(二分、主席树)
    lintcode-425-电话号码的字母组合
    lintcode-81-数据流中位数
    lintcode-424-逆波兰表达式求值
    lintcode-423-有效的括号序列
    lintcode-422-最后一个单词的长度
    lintcode-421-简化路径
  • 原文地址:https://www.cnblogs.com/-406454833/p/11669303.html
Copyright © 2011-2022 走看看