当前位置: 移动技术网 > IT编程>脚本编程>Python > Python学习笔记(二):面向对象编程小实例士兵突击封装案例

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

2020年07月12日  | 移动技术网IT编程  | 我要评论
# 枪类
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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网