python枪_python应用:老王开枪

人类

属性

姓名 血量 持有的枪

方法

安子弹 安弹夹 拿枪(持有抢) 开枪

子弹类

属性

杀伤力

方法

伤害敌人(让敌人掉血)

弹夹类

属性

容量(子弹存储的最大值) 当前保存的子弹

方法

保存子弹(安装子弹的时候) 弹出子弹(开枪的时候)

枪类

属性

弹夹(默认没有弹夹,需要安装)

方法

连接弹夹(保存弹夹) 射子弹

参考代码如下: V1.0 首次编写

class Ren:

def __init__(self,name):

self.name = name

self.xue = 100

self.qiang = None

def __str__(self):

return self.name + "剩余血量" + str(self.xue)

def anzidan(self,danjia,zidan):

danjia.baocunzidan(zidan)

def andanjia(self,qiang,danjia):

qiang.lianjiedanjia(danjia)

def naqiang(self,qiang):

self.qiang = qiang

def kaiqiang(self,diren):

self.qiang.she(diren)

def diaoxue(self,shashangli):

self.xue -= shashangli

class Danjia:

def __init__(self,rongliang):

self.rongliang = rongliang

self.rongnaList = []

def __str__(self):

return "弹夹当前的子弹数量为:"+str(len(self.rongnaList))+"/"+str(self.rongliang)

def baocunzidan(self,zidan):

if len(self.rongnaList)0:

zidan = self.rongnaList[-1]

self.rongnaList.pop()

return zidan

else:

return None

class Zidan:

def __init__(self,shashangli):

self.shashangli = shashangli

def shanghai(self,diren):

diren.diaoxue(self.shashangli)

class Qiang:

def __init__(self):

self.danjia = None

def __str__(self):

if self.danjia:

return "枪当前有弹夹"

else:

return "枪当前没有弹夹"

def lianjiedanjia(self,danjia):

if not self.danjia:

self.danjia = danjia

def she(self,diren):

zidan = self.danjia.chuzidan()

if zidan:

zidan.shanghai(diren)

else:

print("没与子弹了,放了空气那个....")

#创建一个人,老王

laowang = Ren("老王")

#创建一个弹夹,有20发容量

danjia = Danjia(20)

#打印当前弹夹容量

print(danjia)

#把子弹装入弹夹

i=0

while i<5:

zidan = Zidan(5)

laowang.anzidan(danjia,zidan)

i+=1

#打印当前弹夹容量

print(danjia)

#创建一把枪

qiang = Qiang()

#打印枪的情况

print(qiang)

#老王装弹夹

laowang.andanjia(qiang,danjia)

#打印枪的情况

print(qiang)

#创建一个敌人

diren = Ren("敌人")

print(diren)

#老王拿枪

laowang.naqiang(qiang)

#老王开枪

laowang.kaiqiang(diren)

laowang.kaiqiang(diren)

print(diren)

运行结果如下图:

2edf1af5cca300a0ed20c056636f49ca.png

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值