python_test1(条件判断、循环、格式化字符串)
时间:2021-10-09
本文章向大家介绍python_test1(条件判断、循环、格式化字符串),主要包括python_test1(条件判断、循环、格式化字符串)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
玩家对战游戏
三个阶段:
第一阶段:规定双方的角色属性,战斗时人为计算扣血量,并打印战斗结果;
第二阶段:随机生成双方角色属性,自动计算扣血量,并优化显示战斗过程的代码;
第三阶段:双方进行3局PL,每局判定胜负,三局两胜,判断最终结果。
第一阶段
分析:就是简单的运用到了time这个函数print输出语句,一直输出就好了。
import time print("【玩家】\n血量:100\n攻击力:66") print("--------------------------------------") time.sleep(1.5) print("【敌人】\n血量:100\n攻击力:3") print("--------------------------------------") time.sleep(1.5) print("【玩家】攻击了【敌人】,【敌人】血量为34") print("【敌人】攻击了【玩家】,【玩家】的血量为97") print("--------------------------------------") time.sleep(1.5) print("【玩家】攻击了【敌人】,【敌人】血量为0") print("【敌人】攻击了【玩家】,【玩家】的血量为94") print("--------------------------------------") time.sleep(1.5) print("【玩家】获胜")
效果动图:
第二阶段
分析:为了实现更为随机的血量,让游戏充满随机性,我们可以引入random随机数函数,让血量以及攻击力都随机,并且结合循环语句,显然比第一阶段更为有意思。
import time import random player_life = random.randint(100,150) player_attack = random.randint(30,49) enemy_life = random.randint(50,99) enemy_attack = random.randint(20,30) print("【玩家】\n"+"血量:"+str(player_life)+"\n攻击力:"+str(player_attack)) print("________________________________________________________________") time.sleep(1) print("【敌人】\n"+"血量:"+str(enemy_life)+"\n攻击力:"+str(enemy_attack)) print("________________________________________________________________") time.sleep(1) while (player_life > 0) and (enemy_life > 0): player_life = player_life - enemy_attack enemy_life = enemy_life - player_attack print("【玩家】的血量:"+str(player_life)) print("【敌人】的血量:"+str(enemy_life)) print("________________________________________________________________") time.sleep(1) if player_life > 0: print("【玩家】获胜!") else: print("【敌人】获胜!")
效果动图:
第三阶段
分析:大循环要有,毕竟是三局两胜,然后要在中间做出统计,获胜的小局数量,最后做出比较,输出最后的获胜方。
import time import random m = 0 #统计玩家获胜的局数 n = 0 #统计敌人获胜的局数 player_life = random.randint(100,150) player_attack = random.randint(35,69) enemy_life = random.randint(100,130) enemy_attack = random.randint(30,49) print("【玩家】\n"+"血量:"+str(player_life)+"\n攻击力:"+str(player_attack)) print("--------------------------------------------------------") time.sleep(1) print("【敌人】\n"+"血量:"+str(enemy_life)+"\n攻击力:"+str(enemy_attack)) print("--------------------------------------------------------") time.sleep(1) for i in range(1,4): print("这是第"+str(i)+"场比赛") print("--------------------------------------------------------") while (player_life > 0) and (enemy_life > 0): player_life = player_life - enemy_attack enemy_life = enemy_life - player_attack print("【玩家】的血量:"+str(player_life)) print("【敌人】的血量:"+str(enemy_life)) print("--------------------------------------------------------") time.sleep(1) if player_life > 0: print("【玩家】小胜一局!奈斯!") m += 1 elif (player_life < 0) and (enemy_life < 0): print("这局怎么平了!淦!") else: print("【敌人】取得一分!可惜!") n += 1 print("--------------------------------------------------------") if m > n: print("【玩家】取得了最终的胜利,干得漂亮!!!") elif m < n: print("【敌人】取得了最终的胜利,运气实在是太背了,淦!!!") else: print("不是吧,阿sir,这都能平局!")
效果动图:
最终的分析
稍微复杂点的项目是一步一步,先想整体,然后逐渐清晰脉络,慢慢的干掉!
结束了!已经结束了!换碟。
原文地址:https://www.cnblogs.com/sff-0-0/p/15382740.html
- 2020: [Usaco2010 Jan]Buying Feed, II
- 2102: [Usaco2010 Dec]The Trough Game
- 洛谷P3707 [SDOI2017]相关分析(线段树)
- Java计数器之CountDownLatch、CyclicBarrier、Semaphore
- 再看最短路算法 1 —— 单源最短路
- 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
- 1084: [SCOI2005]最大子矩阵
- 关于一般的并查集求根操作的一组对照研究
- vue计算属性详解——小白速会
- 【技巧】Java工程中的Debug信息分级输出接口及部署模式
- 1934: [Shoi2007]Vote 善意的投票
- 算法模板——线段树8 (字符串回文变换)
- 算法模板——哈希单模板字符串匹配
- javascript 原型及原型链详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 实现为点击事件添加震动效果
- 解决Android studio Error:(30, 31) 错误: 程序包 不存在的问题
- AndroidQ 沙箱适配多媒体文件(小结)
- Bitcron 主题 Berry(简约wordpress主题)
- Android 实现图片转二进制流及二进制转字符串
- Android 如何实现exclude aar包中的某个jar包
- android 实现控件左右或上下抖动教程
- Android Studio引入FFmpeg的方法
- Android Studio 中获取屏幕宽度实例
- Android studio 生成带Kotlin文档的实现方式
- 基于Android FileProvider 属性配置详解及FileProvider多节点问题
- Android 通过API获取数据库中的图片文件方式
- android尺子的自定义view——RulerView详解
- 浅谈Android Studio3.6 更新功能
- Android 自定义View手写签名并保存图片功能