Python3-大魔王小项目-田忌赛马
本人今天第一次接触项目,花了4小时,不包括学习时间,特此留个纪念
记录一下那些年走过的坑,以资鼓励
英语不怎么好,随缘看看
内容:
类似田忌赛马,三盘两胜,属性人物在一定范围内随机,就这样了
code:
import random,time # 需要的数据和变量
player_list = ['【狂血战士】','【森林箭手】','【光明骑士】','【独行剑客】','【格斗大师】','【枪弹专家】']
enemy_list = ['【暗黑战士】','【黑暗弩手】','【暗夜骑士】','【嗜血刀客】','【首席刺客】','【陷阱之王】'] list1=random.sample(player_list,3)#随机选取3个随机数
list2=random.sample(enemy_list,3) list1_info={}
list2_info={}
dict1={} # 随机生成角色的属性
def born_role():
player_life =random.randint(100,130)#模块.功能
playeer_attack =random.randint(30,50)
return player_life,playeer_attack # 生成和展示角色信息
def show_role():
print('--------田忌赛马--------')
print('------角色信息-----')
print('你的人物')
for i in range(3):
list1_info[list1[i]]=born_role()
list2_info[list2[i]]=born_role() for i in range(3):
print('%s生命:%d,攻击:%d'%(list1[i],list1_info[list1[i]][0],list1_info[list1[i]][1]))#键中取值
print('------------------------') print('敌人的角色') for i in range(3):
print('%s生命:%d,攻击:%d'%(list2[i],list2_info[list2[i]][0],list2_info[list2[i]][1]))
print('------------------------')
input('请按任意键继续')
print('') # 角色排序,选择出场顺序。
def order_role():
global list1#用于改变全局变量
for i in range(3):
chose=input('你打算将 '+list1[i]+' 放在哪次出场?(选择1,2,3)')
while chose not in ['','','']:
chose=input('你打算将 '+list1[i]+' 放在哪次出场?(选择1,2,3)')
chose=int(chose)
dict1[chose]=list1[i] list1=[]
for i in range(1,4):
list1.append(dict1[i])#将字典中的值加入列表 print('')
print('我方出场的角色: %s %s %s '%(list1[0],list1[1],list1[2]))#注意添加括号
print('敌人出场的角色: %s %s %s '%(list2[0],list2[1],list2[2]))
print('') # 角色PK
def pk_role():
score=0
rand=1
for i in range(3):
print('-----这是第%d局比赛----'%rand)
print('%s vs %s'%(list1[i],list2[i]))
print('%s生命:%d,攻击:%d'%(list1[i],list1_info[list1[i]][0],list1_info[list1[i]][1]))
print('%s生命:%d,攻击:%d'%(list2[i],list2_info[list2[i]][0],list2_info[list2[i]][1]))
print('')
input('请按任意键继续')
print('')
rand+=1
player_life =list1_info[list1[i]][0]
player_attack =list1_info[list1[i]][1]
enemy_life =list2_info[list2[i]][0]
enemy_attack =list2_info[list2[i]][1] while (player_life>0) and (enemy_life>0):#and小写
player_life -= enemy_attack
enemy_life -= player_attack
print('%s发起了攻击,%s剩余血量为%d'%(list1[i],list2[i],enemy_life))
print('%s发起了攻击,%s剩余血量为%d'%(list2[i],list1[i],player_life))
print('-----------------------')
time.sleep(0.5) result=show_result(player_life,enemy_life)
score+=result[0] print(result[1])
time.sleep(1.5)
if score>0:
print('')
print('[结局为你赢了]\n')
print('')
elif score==0:
print('')
print('[结局为平局了]')
print('')
else:
print('')
print('[结局为你输了]')
print('') # 返回单局战果和计分法所加分数。
def show_result(player_life,enemy_life):
if player_life>enemy_life:
score=1
print('')
result='你赢了'
print('')
elif player_life<enemy_life:
score=-1
print('')
result='敌人赢了'
print('')
else :
score=0
print('')
result='平局'
print('')
return score,result # (主函数)展开战斗流程
def main():
show_role()
order_role()
pk_role() # 启动程序(即调用主函数)
main()
3月6号接触Python3到现在做个小程序,真心感觉学的不怎么扎实,各种磕磕绊绊。
更新日志-------------------------------
19.3.16
加了容错,加了时间间隔
-----------------------------------------
愿风雨的路上,一路前行
Python3-大魔王小项目-田忌赛马的更多相关文章
- python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
''' 自己独立写一个学员管理系统 表结构: 班级表: -id -grade_name 学生表: -id -student_name -grade 关联外键班级表 老师表: -id -teacher_ ...
- 【实战小项目】python开发自动化运维工具--批量操作主机
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练.本篇就演示用Python写一个批量操作主机的工 ...
- web实践小项目<一>:简单日程管理系统(涉及html/css,javascript,python,sql,日期处理)
暑假自学了些html/css,javascript和python,苦于学完无处练手几乎过目即忘...最后在同学的建议下做了个简单日程管理系统.借第一版完成之际,希望能将实践期间犯过的错误和获得的新知进 ...
- MySQL 只能做小项目?松哥要说几句公道话!
松哥上学那会,很多人对 MySQL 有一些偏见,偏见主要集中在以下几方面: MySQL 不支持事务(事实上 MyISAM 有表锁,但是效率比较低) MySQL 存储的数据量比较小,适合小项目,大项目还 ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- IOS-小项目(饿了么 网络部分 简单实现)
在介绍小项目之前,在此说明一下此代码并非本人所写,我只是随笔的整理者. 在介绍之前先展现一下效果图. 看过效果图大家应该很熟悉了,就是饿了么的一个界面而已,值得注意的是,实现时并没有采用本地连接,而是 ...
- Andriod小项目——在线音乐播放器
转载自: http://blog.csdn.net/sunkes/article/details/51189189 Andriod小项目——在线音乐播放器 Android在线音乐播放器 从大一开始就已 ...
- 模拟XShell的小项目
不知道大家有没有用过XShell这款工具,这款工具通过windows可以远程操作处于开机状态的linux操作系统,也就是说把你的电脑和一台服务器连入网络,你通过输入服务器所在的IP地址建立一个会话就可 ...
- 小项目特供 贪吃蛇游戏(基于C语言)
C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
随机推荐
- 【opencv实践】边缘检测
边缘检测: 一.canny算子 Canny边缘检测根据对信噪比与定位乘积进行测度,得到最优化逼近算子,也就是Canny算子.类似与 LoG 边缘检测方法,也属于先平滑后求导数的方法. 二.canny算 ...
- 基本DFS与BFS算法(C++实现)
样图: DFS:深度优先搜索,是一个不断探查和回溯的过程,每探查一步就将该步访问位置为true,接着在该点所有邻接节点中,找出尚未访问过的一个,将其作为下个探查的目标,接着对这个目标进行相同的操作,直 ...
- http 状态码大全
状态码大全 1**(信息类):表示接收到请求并且继续处理 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP协议版本 2**(响应成功):表示动作被成功接收.理 ...
- SVM小白教程(1):目标函数
关于 SVM(支持向量机),网上教程实在太多了,但真正能把内容讲清楚的少之又少.这段时间在网上看到一个老外的 svm 教程,几乎是我看过的所有教程中最好的.这里打算通过几篇文章,把我对教程的理解记录成 ...
- 20175315 实验二《Java面向对象程序设计》实验报告
20175315 实验二<Java面向对象程序设计>实验报告 一.实验内容及步骤 1.初步掌握单元测试和TDD 单元测试 任务一:三种代码 用程序解决问题时,要学会写以下三种代码: 伪代码 ...
- 使用chrome开发者工具中的performance面板解决性能瓶颈
前面的话 使用Chrome DevTools的performance面板可以记录和分析页面在运行时的所有活动.本文将详细介绍如何使用performance面板解决性能瓶颈 准备 [匿名模式] 匿名模式 ...
- 7个提升Python程序性能的好习惯
原文作者:爱coding,会编程的核电工程师. 个人博客地址:zhihu.com/people/zhong-yun-75-63 掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费 ...
- 在OS X 10.9配置WebDAV服务器联合NSURLSessionUploadTask实现文件上传
iOS7推出的NSURLSession简化了NSURLConnection的文件上传和下载的工作,本文记录如何配置WebDAV服务以支持PUT方式的文件上传. 一. 配置WebDAV服务器 1. 修改 ...
- adi i2s 提供的axi_lite接口说明
总共定义了4个寄存器,位宽32位,也就是 偏移地址*4以下是PS写数据when 0 => I2S_RESET_REG <= wr_data; when 1 => I2S_CONTRO ...
- 设计通用的Adapter
2019年3月18日 10:53:27 参照博文:Android 快速开发系列 打造万能的ListView GridView 适配器 一 BaseViewHolder public class Bas ...