思考:一个项目一般是怎么完成的?程序员是如何思考和解决问题的?
*问题拆解——很重要的能力
【人机PK小游戏】
当项目被清晰地拆解后,剩下的就是去逐步执行,也就是重复“执行→遇到问题→解决问题→继续执行”这个循环的过程。
【版本1.0:自定属性,人工PK】
1.规定并显示出玩家和敌人的属性 2.双方同时互相攻击,血量根据对方的攻击力扣除 3.若有一方血量小于等于0,游戏结束。
*“计时器”:
【版本2.0:随机属性,自动PK】
1.随机生成玩家和敌人的属性 2.显示玩家和敌人的属性 3.PK过程展示;自动攻击扣血。
*随机生成数字
在某度上搜索“Python 随机生成数字”(有条件的优先使用Google,搜索结果会更干净)。
随机生成整数:
其他生成随机数的方式:python生成常用随机数字_pengge0433的博客-CSDN博客_python 随机生成数字
【版本3.0:打印战果,三局两胜】
1.打印战果:每局战斗后,根据胜负平的结果打印出不同的提示;2.三局两胜:双方战斗三局,胜率高的为最终赢家。
(1)来个三局
提示:1.想清楚哪些代码要嵌套到for循环里,即一局战斗里包括什么信息。确定了for写在哪里之后,一局战斗包含的所有信息都要缩进;2.细节也需要留意,如局与局之间要怎么区分开来(时间间隔&打印局数信息)
(2)判断结果
*player_victory = player_victory + 1 等同于 player_victory += 1
【格式化字符串】
我们可以把%想象成:图书馆里用来占位的一本书。先占一个位置,之后再填上实际的变量。举个例子:下面这两种写法是相同的。
格式符%后面有一个字母s,这是一个类型码,用来控制数据显示的类型。%s就表示先占一个字符串类型的位置。
其他常见的类型码:
一个小小的提示:%后面的类型码用什么,取决于你希望这个%占住的这个位置的数据以什么类型展示出来,如果你希望它以字符串形式展示,那就写%s,如果你希望它以整数形式展示,那就写%d。
选用了不同的类型码,打印出的结果却是一样,原因也已经在代码注释中写清楚了:因为整数8与字符串'8'的打印结果是一样的,所以选两种类型码都OK。但这种“都OK”的情况仅限于整数,对文字是行不通的:
这里的%s是不是都能换成%d?答案是“YES!”,因为这里的变量i,player_life,player_attack统统都是整数。
【课后练习】
练习目标:
我们会在项目1代码的基础上,添加一个新功能,同时练习循环和判断的知识。
练习要求:
新功能是:每盘(3局)游戏结束后,游戏会问我们是否要继续游戏,再加一盘。
我们可以选择再来一盘,也可以选择退出游戏。
要达成目标,有两种方案:
1.while True+break:
开启一个无限循环,设定跳出条件。
当得到肯定回复时,继续运行;当得到否定回复时,运行break,停止循环,退出游戏。
2.while 变量名+变量名的布尔值判断:
在开头设某变量的布尔值为True,input后开启判断变量的布尔值是否改变。
当得到肯定回复时,while True,继续运行;当得到否定回复时,while False,停止循环,退出游戏。
完整代码(注意缩进):