Python基础-背单词游戏
Hangman直译为“吊死鬼”,是一个猜单词的双人游戏。由一个玩家想出一个单词或短语,另一个玩家猜该单词或短语中的每一个字母。第一个人抽走单词或短语,只留下相应数量的空白与下划线。
想字的玩家一般会画一个绞刑架,当猜字的玩家猜出了短语中存在的一个字母时,想字的玩家就将这个字母存在的所有位置都填上。
如果玩家猜的字母不在单词或短语中,那么想字的玩家就给绞刑架上小人添上一笔,直到7笔过后,游戏结束。
文字有点枯燥,让我们看一个玩法示例
今天借用猜单词游戏的Python代码,要讲解Python中的几个重要概念:
1.行和缩进
2.认识变量
3.流程控制
话不多说,我们来看下。
1.行和缩进:
在Python中,可以粗略的把行分为两种。
1.1 首先是“物理行”,顾名思义文件中的每一个肉眼可见的行都算作一个物理行。
1.2 逻辑行:我们的一个业务逻辑-即一个赋值/判断或者其他任何一件事都称为一个逻辑。一般来说,Python中一个物理行就对应一个逻辑行。但是也有例外:①空行 ②用分号隔开的逻辑行
这里我们可以先记住最常用的逻辑,“每一个肉眼可见的“物理行”,就对应一个逻辑”
1.3 缩进
Python中的缩进意味着一个新的“代码块”,我们可以粗略的理解为一个代码段落。
话说回来,因为Python依靠缩进(4个空格或者1个制表符)来识别代码块。所以在每一行的开头要注意检查空格与否,以及有几个空格(空格和制表符的混用也会报错)
2.变量
变量的定义是计算机语言中能储存计算结果或能表示值抽象概念。想象一下,在猜单词的游戏中我们最开始就可以设计几个变量。来存储游戏过程中的几个信息
missedLetters:当我们猜错一个字母的时候,当然不希望在同一个坑上浪费一次机会。所以这里设置变量来记录所有猜错的字母
correctLetters:相对的,猜中的字母需要另一个变量来记录
secretWord:所有输入的字母都要和“谜底”进行比对,所以把它也存成一个变量来供计算机调取
gameIsDone:游戏完成标志这个变量的意义在于,我们希望游戏结束时-程序能够知道这个信息。我们可以在这个节点设计“重玩游戏”或者猜对以后的奖励事件等等
3.流程控制
流程控制,通俗的说流程控制是程序运行的基础,流程控制决定了程序按照什么样的方式去执行
以猜单词的游戏为例,为了存储游戏中几个需要记录的结果,先要进行“变量初始化”。
这时候就运用到了程序世界里的第一种流程-顺序执行。先创建"HANGMAN_PICS"变量,而后是"words"。
实际上,如果我们的业务逻辑可以精确到唯一的途径。那么代码就仅会用到顺序
但是现实问题总是有很多分叉选项,以猜单词为例。需要用到分支控制(if…else)来屏蔽掉输入多个字母/非字母的情况,来保证程序不会因为错误的输入不知所措
另外,屏蔽掉错误输入之后。这里给玩家机会重新进行这次尝试(可以想象成现实游戏中,我们会出代表26个字母的牌。这样的话重复输入一个字母或者输入多个字母的场景并不会出现。故而,在设计游戏程序的时候。这种错误不会扣掉一次机会)。
重新尝试的代码/逻辑和第一次并没有任何区别,所以使用了循环控制的方法复用了这段逻辑。相应的,在分支控制之中使用return关键字设计了这段循环的出口(return会终止循环)
最后,当我们了解了Python的基本规则后。可以尝试读懂整个游戏逻辑。在工作之中也是如此,读懂范例或者前辈的代码。加以适当改造,可以让学习过程更加高效。
练习思路
后台回复“背单词”获得完整游戏代码,尝试对代码进行改造。例如:
1.备选单词读取txt文件
2.编写一个简单的游戏界面(命令行打包/GUI)
3.对规则进行改造,例如balloon。
作 者: Testfan 布尔
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接