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语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
随机推荐
- combine_lat_dirs.sh
#!/bin/bash # Copyright 2018 Jarvan Wang Apache 2.0. # Copyright 2016 Xiaohui Zhang Apache 2.0. ...
- PowerPoint 中插入 Latex 公式
做 PPT 用 Latex Beamer 毕竟还是太麻烦,Beamer 毕竟还是更适合学术性的,各种定义各种公式的那种,遇到要画各种图,插入各种图片,进行错综复杂的排版就比较棘手了. 最终还是 Pow ...
- http 状态码大全
状态码大全 1**(信息类):表示接收到请求并且继续处理 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP协议版本 2**(响应成功):表示动作被成功接收.理 ...
- spring kafka生产、消费消息
参考网址: https://blog.csdn.net/lansetiankong12/article/details/54946641 1.新建Maven项目-KafkaMaven ->点击n ...
- PHP程序运行性能分析
php在使用了xdebug后,可以配置xdebug相关的配置,生成运行的日志. 在php.ini中配置: xdebug.profiler_enable = 1 xdebug.profiler_enab ...
- L2-006 树的遍历 (25 分)
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 题目: 给定一棵二叉树的后序遍历和中序 ...
- Gitlab_ansible_jenkins三剑客①搭建gitlab的详细步骤
环境准备 1.关闭selinux和防火墙 [root@node1 lesson2]# vim /etc/sysconfig/selinux SELINUX=disabled # systemctl s ...
- js 对象,数组,字符串,相互转换
1:对象转换数组 let obj = {'val1':1, 'val2':2, 'val3':3, 'val4':4}; var arr = [] for (let i in obj) { //取键 ...
- 2小程序canvas使用,及一些坑,以及自己的一些小总结
自己做了一个小程序,主要用于给头像加图标的那种,和qq似的,主要用canvas做的, 第一回用,掉了很多坑,所以今天总结一下自己所做的,如果大家有不理解的地方,欢迎提问:如果帮到大家的话,帮忙点个啥的 ...
- MySQL(三)
一.创建库 1.创建一个库: create database 数据库名;create database 库名 character set 编码; mysql> create database m ...