我目前正在进行Udacity对编程开发课程的介绍。作为本课程的一部分,我必须在空白游戏中创建一个填充。游戏结构如下:
要求用户根据难度选择级别。一旦用户决定他/她想要播放的级别,参数:问题,该问题的答案,空白列表和0的索引将传递给函数 问题验证< /强>
问题验证功能。我们根据索引评估用户输入是否与答案中包含的内容相匹配。例如,如果我填写第一个空白,那么我的答案(输入)必须等于答案[0]的答案。如果没有,则用户有4次尝试使其正确。如果用户没有,则退出游戏。一旦用户选择了正确的答案,就会将其传递给遍历函数。
以下是问题验证的代码
https://www.dropbox.com/sh/e5doud7wt2awlfo/AACoMdohawZj54RwjIWvtAKda?dl=0
函数遍历作为参数:问题;该问题的答案清单; 根据此信息,此函数将相应填写问题空白,并将其传回问题验证,然后填写下一个空格。当所有空白都填满后,程序停止。
以下是遍历的代码
https://www.dropbox.com/s/w4cra1hah5xww9q/traversefunct.py?dl=0
我在我的代码中写了一些评论,进一步阐述了我在这里概述的内容。
这是完整的代码
https://www.dropbox.com/s/npendg2ey63e8rr/codeaquiz.py?dl=0
代码似乎工作正常,做了我想要它做的事情,直到填满第4个空白。此时,如果我选择了错误的答案,然后返回并选择正确的答案。它承认我选择了正确的答案,但随后再次提示答案。它是一个无限循环,我无法看到为什么它在这里发生的时候,为了填补以前的空白它不起作用。
以下是有关再次提示的内容的屏幕截图:
https://www.dropbox.com/s/s8sk8r19gz4ued2/Screenshot%202018-04-27%2014.13.22.png?dl=0
我不能为我的生活看到原因:
答案 0 :(得分:0)
正如zipa所指出的那样,除非你用完break
,否则你在第146行的else语句中永远不会tries
你的while循环。一行&#34;修复&#34;就是在exit()
函数中简单地在第98行之后添加traverse()
。