Python---老王开枪
- class Person(object):
"""人类"""
def __init__(self,name):
super(Person,self).__init__()
self.name = name
self.gun = None #用来保存枪的引用
self.hp = 100- def __str__(self):
if self.gun:
return "%s的血量:%d,他有枪%s"%(self.name,self.hp,self.gun)
else:
if self.hp>0:
return "%s的血量:%d,他没有枪" % (self.name, self.hp)
else:
return "%s 已挂!!!"%(self.name)- def kou_ban_ji(self,diren):
"""让枪发射子弹去打敌人"""
self.gun.fire(diren)- def diao_xue(self, sha_shang_li):
"""根据相应的杀伤力掉血"""
self.hp -=sha_shang_li- def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp):
"""把子弹装到弹夹中"""
dan_jia_temp.baocun_zidan(zi_dan_temp)- def anzhuang_danjia(self,gun_temp,dan_jia_temp):
"""把弹夹安装到枪中"""
gun_temp.baocun_danjia(dan_jia_temp)- def naqiang(self,gun_temp):
"""拿起枪的动作 """
self.gun =gun_temp- class Gun(object):
"""枪类"""
def __init__(self,name):
super(Gun,self).__init__()
self.name = name #用来记录枪的类型
self.danjia = None
def baocun_danjia(self,dan_jia_temp):
self.danjia =dan_jia_temp- def __str__(self):
return "枪的信息:%s"%(self.name)- def fire(self,diren):
"""枪从弹夹中获取子弹"""
zidan_temp = self.danjia.tanchu_zidan()
if zidan_temp:
zidan_temp.dazhong(diren)
else:
print("弹夹中没子弹了")- class Danjia(object):
"""弹夹"""
def __init__(self,max_num):
super(Danjia,self).__init__()
self.max_num = max_num #用来记录弹夹的最大容量
self.zidan_list = []#用来记录所有的子弹的引用- def baocun_zidan(self,zi_dan_temp):
"""将子弹保存"""
self.zidan_list.append(zi_dan_temp)- def __str__(self,):
return "弹夹的信息为:%d/%d"%(len(self.zidan_list),self.max_num)- def tanchu_zidan(self):
if self.zidan_list:
return self.zidan_list.pop()
else:
return None- class Zidan(object):
"""子弹"""
def __init__(self,sha_shang_li):
super(Zidan,self).__init__()
self.sha_shang_li = sha_shang_li #用来记录子弹的威力- def dazhong(self,diren):
""""""
diren.diao_xue(self.sha_shang_li)- def main():
"""用来控制整个程序的流程"""
# 1.创建老王对象
laowang = Person("老王")
# 2.创建枪对象
ak47 = Gun("Ak47")
# 3.创建弹夹对象
dan_jan = Danjia(20)
# 4.创建一些子弹
for i in range(15):
zi_dan = Zidan(10)
# 5.老王把子弹安装到弹夹中
laowang.anzhuang_zidan(dan_jan, zi_dan)- # 6.老王把弹夹安装到枪中
laowang.anzhuang_danjia(ak47,dan_jan)- #测试
print(dan_jan)
print(ak47)- # 7.老王拿枪
laowang.naqiang(ak47)
print(laowang)
# 8.创建一个敌人
geibi_laosong = Person("李刚")
print(geibi_laosong)
# 9.老王开枪打敌人
laowang.kou_ban_ji(geibi_laosong)
print(geibi_laosong)
print(laowang)- laowang.kou_ban_ji(geibi_laosong)
print(geibi_laosong)
print(laowang)- if __name__=='__main__':
main()- 运行结果:
Python---老王开枪的更多相关文章
- day_5.12 py 老王开枪demo
ps:2018-7-24 21:00:04 其实这部分主要是面向对象的复习!而不是面向过程 #!/usr/bin/env/python #-*-coding:utf-8-*- ''' 2018-5-1 ...
- day 6 老王开枪打人
1.图示 2 程序 1)版本1:框架的搭建 def main(): '''用来控制这个程序的流程''' pass #1.创建alex对象 #2.创建1个枪对象 #3.创建1个弹夹对象 #4.创建子弹对 ...
- python 案例之老王开枪
- Python老王视频习题答案
基础篇2:一切变量都是数据对象的引用sys.getrefcount('test') 查看引用计数变量命名不能以数字开头编码:ascii.unicode.utf-81.阅读str对象的help文档,并解 ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
- python开发之路:python数据类型(老王版)
python开发之路:python数据类型 你辞职当了某类似微博的社交网站的底层python开发主管,官还算高. 一次老板让你编写一个登陆的程序.咔嚓,编出来了.执行一看,我的妈,报错? 这次你又让媳 ...
- python之路:变量与变量基本操作(老王版)
python开发之路:变量与变量基本操作 你是一个师范大学的优秀毕业生,现在在某某小学工作. 你想:判作业真的很累,隔壁老王现在天天玩<蓝月传奇>,银行里存满了钱.唉,每节课1个小时,每个 ...
- 跟着老王学Python
亲爱的朋友: 欢迎你!很高兴能在这里见到你,你能来到这里说明你真的很喜欢python,很想把python给学好!我觉的你很幸运,开始我学python的时候比较少资料,学起来也比较头疼,现在随着 ...
- 在昨天夜黑风高的晚上,我偷了隔壁老王的Python入门课件,由浅入深堪称完美!
隔壁老王是一个资深码农,就业教育事业的秃顶之才昨天我下楼打酱油,看他迎面走来,满目春光我好奇的问道:老王,有什么好事,隔壁小花叫你上门了吗?老王:秘密!!我心想:哎呦~不错啊半晚之时,连猫狗都睡着了, ...
随机推荐
- servlet本质
首先我们先要知道servlet是什么,这有两种解释.一是目前大多数人所说的,一个实现了servlet接口的类就可以叫作servlet.二,servlet只是一个接口.那么看起来这两点都和servlet ...
- C语言作业--数组
一.PTA实验作业 题目1:7-5 数组循环左移 1. 本题PTA提交列表 2. 设计思路 定义俩个整数 n,m 定义循环变量i,j,x 定义变量k用来存放下标 定义变量number用于交换数值 定义 ...
- 那些在django开发中遇到的坑
1. 关于csrf错误 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或 ...
- 将数组写入Plist文件中
-(void)writeToPlist:(NSArray *)uploadingfiles Name:(NSString *)name { NSMutableArr ...
- Django 测试驱动开发
第一章 1.编写functional_tests.py from selenium import webdriver browser = webdriver.Firefox() browser.get ...
- NOIP2012 提高组 Day 2
http://www.cogs.pro/cogs/page/page.php?aid=16 期望得分:100+100+0=0 实际得分:100+20+0=120 T2线段树标记下传出错 T1 同余方程 ...
- highcharts 具体参数详解
<script type="text/javascript" src="js/jquery.min.js"></script> < ...
- 坑爹了多少年的html元素垂直居中问题
原文章:https://www.w3cplus.com/css3/a-guide-to-flexbox.html 如果你的元素有固定高度的话 父元素用display: flex;height:100p ...
- python之路--day11---迭代器和生成器
迭代: 迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 为什么要有迭代器: 数据类型的取值,字符串,列表,元组依靠索引可以取值,但是字典,集合,文件这些数据类型无法 ...
- django处理cookie的机制
title: django处理cookie的机制 tags: djaogo, cookie, session grammar_cjkRuby: true --- cookie的意义 在多数日常使用的网 ...