具体需要:
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