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语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
随机推荐
- QMQTT简单介绍(1)
1 准备工具: wireshark安装包:网络抓包工具qmqtt源码:mqtt客户端源码(Qt版本)官网:http://mqtt.org/英文版协议说明文档:http://docs.oasis-ope ...
- centos6.5 配置静态IP
1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR=08:00:2 ...
- Spring.Net 入门学习笔记-----one
一. 基本概念 Spring.Net是一个轻量级的控制反转(Ioc)和面向切面的(Aop)的容器框架: Ioc:控制反转:简单的说就是将创建对象的控制权转交给外部容器(IApplicationC ...
- postgresql设置主键
replace(((uuid_generate_v4())::character varying)::text, '-'::text, ''::text)
- [经验交流] kubeadm 安装 kubernetes 一年过期的解决办法
kubeadm 是 kubernetes 提供的一个初始化集群的工具,使用起来非常方便.但是它创建的apiserver.controller-manager等证书默认只有一年的有效期,同时kubele ...
- P5284 [十二省联考2019]字符串问题
这是一道涵盖了字符串.图论.数据结构三个方面的综合大题. 把这道题放在D1T2的人应该拖出去打 前置芝士 首先,您至少要会topsort. 其次,如果您只想拿个暴力分,字符串Hash就足够了:如果您想 ...
- 使用scrapy爬虫,爬取17k小说网的案例-方法二
楼主准备爬取此页面的小说,此页面一共有125章 我们点击进去第一章和第一百二十五章发现了一个规律 我们看到此链接的 http://www.17k.com/chapter/271047/6336386 ...
- Discuz x 转码要记
Discuz 开源项目仅保留了 UTF8 编码版本,要从GBK版本升级,须进行编码转换. 转换主要执行以下步骤: 关闭网站,做好源文件备份: 导出数据库,在MySQL中生成Self-Contained ...
- jmeter测试报告分析
转载:http://www.cnblogs.com/miaomiaokaixin/p/6118081.html 在cmd中用命令行执行jmeter脚本: jmeter地址 -n -t 脚本地址 ...
- symfony composer安装
参考 http://www.symfonychina.com/doc/current/setup.html 用Composer创建Symfony程序 ¶ 若你已安装过Composer,执行create ...