士兵突击的封装

在这里插入图片描述

class Gun:
    def __init__(self,model,bullet_count):
        #枪的型号
        self.model = model
        self.bullet_count = bullet_count

    def __str__(self):
        return ('枪的型号:%s\n剩余子弹数量:%d'%
                (self.model,
                 self.bullet_count))
    
    def add_bullet(self,count):
        self.bullet_count += count
        print('装填完成,现在有%d子弹' % self.bullet_count)

    def shoot(self):
        if self.bullet_count<=0:
            print('[%s]没有子弹了!!'% self.model)
            return 
        self.bullet_count -= 1
        print("开了一枪,真痛快!!")


class Soldier:
    def __init__(self,name):
        #士兵名字
        self.name = name
        #新兵没有枪
        self.gun =  None
    def __str__(self):
        return ('名字:%s\n枪型号:%s\n剩余子弹:%d'%(
            self.name,
            self.gun.model,
            self.gun.bullet_count))
    # 发枪
    def setGun(self,model,count):
        self.gun = Gun(model,count)

    # 给枪装填子弹
    def gun_add_bullet(self,count):
        if self.gun is None:
            print('还没枪呢!!')        
        else:
            self.gun.add_bullet(count)
            
    def fire(self):
        # 1.判断是否有枪
        if self.gun is None:
            print('还没枪呢,快发一条!!!')
            return

        # 2.高喊口号
        print('冲啊....[%s]' % self.name)

        

        # 4.发射子弹
        self.gun.shoot()




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值