案例:士兵突击
案例:士兵突击
枪类
初始化属性:枪型号,子弹数量
加子弹的方法
发射的方法 ---> 提示信息:突突突···(音效)
判断子弹的数量
士兵类
初始化属性:名字,是否是新兵(新兵没有枪)
射击的方法
判断有没有枪 定义 None
有枪,喊口号(冲呀~!!!)
装填子弹
发射子弹
创建一个士兵,让士兵去射击
代码示例:
class Gun: # 没有写参数,默认object
"""
创建枪类
"""
def __init__(self,model):
"""
初始化枪的属性
"""
# 枪的型号
self.model = model
# 枪的子弹数量
self.bullet_count = 0
def add_bullet(self,count):
"""
添加子弹的方法
count :添加子弹的枚数
"""
print("[{}]子弹上膛中···本次添加[{}]枚子弹".format(self.model,count))
self.bullet_count += count
print("枪的型号:[{}],当前剩余子弹数量:[{}]".format(self.model,self.bullet_count))
def shoot(self):
"""
射击的方法
"""
# 判断是否有子弹
if self.bullet_count <= 0:
print("[{}]已无子弹,请加子弹~!!!".format(self.model))
return
# 发射子弹
self.bullet_count -= 1
# 枪的音效
print("[{}]哒哒哒哒哒哒~~~~~!!!!!剩余子弹数量:[{}]".format(self.model,self.bullet_count))
class Soldier:
"""
创建士兵类
"""
def __init__(self,name):
"""
初始化士兵信息
name : 士兵名称
"""
self.name = name
# 默认没有枪
self.gun = None
def fire(self):
"""
士兵射击的方法
"""
# 判断是否有枪
if self.gun is None:
print("[{}]还没有枪···".format(self.name))
return
# 如果有枪,则喊口号
print("{}怒吼:拿起你们的{},大家冲呀~!!!!".format(self.name,self.gun.model))
# 射击
self.gun.shoot()
if __name__ == '__main__':
"""
主程序
"""
pass
# 第一步创建创建枪
# 实例化枪类
ak = Gun("AK47")
# 调用枪类加子弹的方法
ak.add_bullet(10)
# 调用枪射击的方法
ak.shoot()
# 第二步创建士兵类
xusanduo = Soldier("许三多")
# 配枪
xusanduo.gun = ak
zhangsan = Soldier("张三")
# 新兵没有枪
zhangsan.gun = None
# 第三步士兵射击
xusanduo.fire()
xusanduo.fire()
xusanduo.fire()
zhangsan.fire()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)