python小项目--》老王开枪

本文介绍了一个简单的枪战模拟程序的设计与实现。该程序通过定义人类、子弹、弹夹及枪类来模拟战斗过程,包括装子弹、射击等操作,并记录了参与者的剩余血量。
"""
人类:
    属性:
        姓名
        血量
        手里的枪
    方法:
        装子弹
        装单夹
        取枪

子弹类
    属性
        杀伤力
    方法
        伤害敌人

弹夹类
    属性
        容量
        剩余子弹
    方法
        添加子弹
        消耗子弹

枪类
    属性
        弹夹(默认没有,需要安装)
    方法
        连接弹夹
        射击子弹
"""


class Ren:
    def __init__(self, name):
        self.name = name
        self.xue = 100
        self.qiang = None

    def naqiang(self, qiang):
        if self.qiang == None:
            self.qiang = qiang
        else:
            print("you qiang le")

    def anzidan(self, zidan, danjia):
        danjia.baocunzidan(zidan)

    def andanjia(self, qiang, danjia):
        qiang.lianjiedanjia(danjia)

    def kaiqiang(self, diren):
        self.qiang.she(diren)

    def diaoxue(self, shanghaili):
        self.xue -= shanghaili

    def __str__(self):
        return "%s的剩余血量为:%d" % (self.name, self.xue)


class ZiDan:
    def __init__(self, shanghaili):
        self.shanghaili = shanghaili

    def shanghai(self, diren):
        diren.diaoxue(self.shanghaili)


class Qiang:
    def __init__(self):
        self.danjia = None

    def lianjiedanjia(self, danjia):
        if self.danjia == None:
            self.danjia = danjia

    def she(self, diren):
        zidan = self.danjia.chuzidan()
        if zidan:
            zidan.shanghai(diren)
        else:
            print("No ZiDan")


class Danjia:
    def __init__(self, rongliang):
        self.rongliang = rongliang
        self.ronglianglist = []

    def baocunzidan(self, zidan):
        if len(self.ronglianglist) < self.rongliang:
            self.ronglianglist.append(zidan)

    def chuzidan(self):
        if len(self.ronglianglist) > 0:
            zidan = self.ronglianglist.pop()
            return zidan
        else:
            return None

    def __str__(self):
        return "剩余子弹数量:%d/%d" % (len(self.ronglianglist), self.rongliang)


# create Mr.Wang
laoWang = Ren("Mr.Wang")

# create danjia
danjia = Danjia(20)

# While to tianjia zidan
i = 0
while i < 15:
    zidan = ZiDan(5)
    laoWang.anzidan(zidan, danjia)
    i += 1
print(danjia)

# create qiang
qiang = Qiang()
laoWang.andanjia(qiang, danjia)

# create diren
diren = Ren("敌人")
# 老王拿起枪
laoWang.naqiang(qiang)
# Mr.Wang she diren
laoWang.kaiqiang(diren)
print(diren)
print(danjia)
Python实现一些小道具小功能(Python implements some small props) Image-Edit 几个基本的图片编辑工具,包括一下功能: 文件:打开,保存,退出 编辑:放大,缩小,灰度,亮度,旋转,截图 变换:傅里叶变换,离散余弦变换,Radon变换 噪声:高斯,椒盐,斑点,泊松 滤波:高通,低通,平滑,锐化 直方图统计:R直方图,G直方图,B直方图 图像增强:伪彩色,真彩色,直方图均衡,NTSC颜色模型,YCbCr颜色模型,HSV颜色模型 阈值分割 生态学处理 特征提取 图像分类与识别 Beautify-Camera 主要功能 文件:打开,保存,打开摄像头 操作:还原,人脸识别 滤镜:怀旧,木刻,灰色,彩色,风格化,增强细节 调节:亮度,饱和度,伽马变换,边缘保持 磨皮美白:美白度,磨皮程度,磨皮精度 灰度直方图 Calculator 主要功能 基本的加减乘除和开根号等运算 Painting绘画 主要功能 File:新建画板,打开图片,保存图片 Edit:复制,清空画板 Image:翻转 工具:基本画笔,橡皮擦,图形创建工具等 编辑区,色彩调节区,字体调节区等 NotePad 主要功能 基本文本编辑,类似于记事本 RandomPassWord 主要功能 随机生成一串密码,包括大小写字母,数字,符号,可指定长度 Browser 主要功能 基本浏览器功能 MusicPlayer 主要功能 音乐播放器 PyTunes 主要功能 轻量级音乐播放器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值