欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习笔记(二):面向对象编程小实例士兵突击封装案例

程序员文章站 2023-12-29 13:10:22
# 枪类class Gun: def __init__(self, name): # 捡到的枪名称 self.name = name # 默认子弹数量15发 self.count = 15 def __str__(self): return "枪的型号%s,子弹总数量%s" % (self.name, self.count) def add(self, count): # 路上拾取....
# 枪类
class Gun:
    def __init__(self, name):
        # 捡到的枪名称
        self.name = name
        # 默认子弹数量15发
        self.count = 15

    def __str__(self):
        return "枪的型号%s,子弹总数量%s" % (self.name, self.count)

    def add(self, count):
        # 路上拾取子弹
        self.count += count
        print("捡到子弹,装了%s发子弹" % count)

    def shoot(self):
        # 判断子弹是否为空
        if self.count <= 0:
            print("%s没有子弹了" % self.name)
            return
        # 消耗子弹,每触发一次,消耗1发
        self.count -= 1
        # 剩余子弹提示
        print("%s剩余子弹%s发" % (self.name, self.count))

# 士兵类
class Soldier():
    def __init__(self, name):
        # 游戏人物名字
        self.name = name
        self.gun = None

    def fire(self):
        if self.gun is None:
            print("%s手上没有枪" % (self.name))
            return
        self.gun.shoot()


# 创建德国兵A
solider = Soldier("德国兵A")
# 士兵刚出场没有散弹枪
solider.fire()

# 模拟假设捡到散弹枪
shotgun = Gun("[S]散弹枪")
print(shotgun)

# 路上捡到子弹包10发
shotgun.add(10)
print(shotgun)

# 散弹枪对象shotgun赋值给gun,获得子弹信息
solider.gun = shotgun
# 模拟用户连发20发
for i in range(20):
    solider.fire()
    if shotgun.count <= 0:
        print("%s用完,切换普通手枪" % shotgun.name)
        break
# 剩余子弹数
print("%s使用%s,子弹剩余%s发" % (solider.name, shotgun.name, shotgun.count))



 

本文地址:https://blog.csdn.net/wjh52/article/details/107275228

上一篇:

下一篇: