关于python的类调用的小程序

具体需要:

1、人类

属性:姓名,血量,持有的枪

方法:装子弹,装弹夹,拿起枪,开枪,掉血

2、子弹类

属性:杀伤力

方法:伤害敌人

3、弹夹类

属性:弹夹容量,当前保存子弹

方法:上弹,弹出子弹

4、枪类

属性:弹夹

方法:连接弹夹,射出子弹

class Person(object):
    def __init__(self,name):
        self.name=name
        self.hp=100
        self.gun=None
    def loding(self,charger,bullet):
        for i in range(charger.max_num):
            charger.bullets.insert(0,bullet)
    def cartridge_clip(self,gun,charger):
        gun.charger=charger
    def take_gun(self,gun):
        self.gun=gun
    def fire(self,enemy):
        bullet=self.gun.charger.rebound()
        if bullet:
            bullet.hurt(enemy)
        else:
            print('没有子弹')
    def injured(self,power):
        if self.hp>0:
            if self.hp>power:
                self.hp-=power
            else:
                self.hp=0
        if self.hp == 0:
            print(self.name+'已死亡')

class Gun(object):
    def __init__(self,name):
        self.name=name
        self.charger=None

class Charger(object):
    def __init__(self,num):
        self.max_num=num
        self.bullets=[]
    def rebound(self):
        if self.bullets:
            bullet=self.bullets.pop(0)
            return bullet
        else:
            return None

class Bullet(object):
    def __init__(self,power):
        self.power=power
    def hurt(self,enemy):
        enemy.injured(self.power)
if __name__ == '__main__':
    mr_wang=Person('老王')
    mr_song=Person('老宋')
    AK=Gun('AK47')
    charger=Charger(7)
    bullet=Bullet(20)
    mr_wang.loding(charger,bullet)
    mr_wang.cartridge_clip(AK,charger)
    mr_wang.take_gun(AK)
    while True:
        t=input('是否开枪,y|n')
        if t=='y':
            mr_wang.fire(mr_song)
            print(mr_song.hp,len(mr_wang.gun.charger.bullets))
        else:
            break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值