• 100.自定义枪类


    自定义枪类

    枪类

    1. 使用 Gun 类可以创建 枪对象
    2. 枪有三个属性:
      • 型号 model:字符串
      • 杀伤力 damage:整数
      • 子弹数量 bullet_count:整数,枪初始没有子弹
    3. 调用 add_bullets 方法可以增加 子弹数量
    4. 调用 shoot 方法可以给参数 敌人对象 造成伤害
      • 如果 没有子弹,则 提示玩家 并且返回
      • 如果 有子弹,则:
        • 子弹数量 减少
        • 调用 匪徒对象 的 hurt 方法,给匪徒造成伤害

    注意:

    在调用 shoot 方法时:

    • 如果传入的 bad_man 是由 Player 创建的对象,就让 bad_man 调用 hurt 方法,处理 bad_man 的受伤细节
    # 自定义枪类
    class Gun(object):
    
        def __init__(self, model, damage):
            # 添加属性并赋值
            # 型号
            self.model = model
            # 杀伤力
            self.damage = damage
            # 子弹数量
            self.bullet_count = 0
    
        # 追踪属性变化
        def __str__(self):
            return "型号:%s, 杀伤力:%d, 子弹数:%d" % (self.model,
                                              self.damage,
                                              self.bullet_count)
        # 添加子弹
        def add_bullets(self, count):
            self.bullet_count += count
    
        # 枪打坏人
        def shoot(self, bad_man):
            # 判断枪是否有子弹
            if self.bullet_count <= 0:
                print("请添加子弹...")
                return
            # 发射一颗子弹
            self.bullet_count -= 1
            # 判断子弹是否击中坏人
            # 如果击中
            if bad_man:
                # 叫坏人受伤
                bad_man.hurt(self)
            print("%s发射了一颗子弹, 剩余子弹数量:%d" % (self.model, self.bullet_count))
    
    if __name__ == '__main__':
        # 创建一把ak47
        ak47 = Gun("AK47", 50)
        print(ak47)
        # ak47.add_bullets(10)
        # print(ak47)
        # 发射一颗子弹未击中敌人
        ak47.shoot(None)

    例子:

    # 自定义枪类
    class Gun(object):
    
        def __init__(self, model, damage):
            # 型号
            self.model = model
            # 杀伤力
            self.damage = damage
            # 子弹数量
            self.bullet_count = 0
    
        # 追踪属性值变化
        def __str__(self):
            return "型号:%s, 杀伤力:%d, 子弹数量:%d" % (self.model,
                                               self.damage,
                                               self.bullet_count)
    
        # 填装子弹
        def add_bullet(self, count):
            # 修改bullet_count属性值
            self.bullet_count += count
    
        # 枪打敌人
        def shoot(self, bad_man):
            # 判断是否有子弹
            if self.bullet_count <= 0:
                print("请先填装子弹,再射击...")
                return
            # 如果有子弹
            # 消耗一颗子弹
            self.bullet_count -= 1
            # 判断是否击中敌人
            # 击中
            if bad_man:
                # 让匪徒受伤
                pass
            print("%s发射了一颗子弹,子弹剩余%d颗" % (self.model,
                                         self.bullet_count))
    
    
    # 创建ak47
    ak47 = Gun("AK47", 50)
    print(ak47)
    ak47.shoot(None)
    ak47.add_bullet(10)
    print(ak47)
    ak47.shoot(None)
  • 相关阅读:
    OCP-1Z0-053-200题-77题-654
    OCP-1Z0-053-200题-45题-623
    OCP-1Z0-053-200题-46题-624
    OCP-1Z0-053-200题-48题-626
    OCP-1Z0-053-200题-49题-627
    OCP-1Z0-053-V13.02-619题
    OCP-1Z0-053-200题-43题-678
    OCP-1Z0-053-200题-44题-622
    OCP-1Z0-053-V13.02-512题
    OCP-1Z0-053-200题-38题-617
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12877956.html
Copyright © 2020-2023  润新知