创作背景

你或许参加过各种知识竞赛节目,不论是在电视上还是学校里,这些比赛中常常会涉及到一些生活小常识。那么你是如何记住这些小常识的呢?除了老师出题,我们也可以尝试自己出题,制作一个百科测验小应用程序。题目和答案都由我们来定,但是否正确需要其他人的认证。现在就让我们一起使用Scratch编程,来制作这个简单有趣的百科测验程序吧。

作品预览效果

说明:

  • 这个程序仅包含4个问题,一旦启动,猫博士就会开始提问,玩家需要在输入框中输入答案,猫博士会判断是否正确,并进入下一题。
  • 当所有题目都答完后,程序会根据答题情况进行评价,比如全部正确,猫博士会说“你太厉害了”。

程序设计

1. 把问题和答案做成列表

既然是百科测验,自然就少不了问题和答案,并且问题和答案是一一对应的。问题的数量可以自己来定,但肯定不止一道题,如何保存问题和答案这些数据呢?

答案是列表,列表就是为保存批量数据而生的。切换到变量模块,建立两个列表,分别命名为“问题”和“答案”,如图:

图1

建立“问题”和“答案”列表

刚建立的列表自然的空的,我们需要对其进行初始化设置,也就向列表中加入具体的问题和答案,增加的方式有两种:

  • 直接在列表中,点击“+”逐个加入
  • 使用Scratch积木块加入

第一种方法比较简单,但是第二种方法更规范。所以,这里我们采用第二种方法,在猫博士角色中添加如下代码:

图2

初始化“问题”和“回答”列表

需要注意的是,为了避免每次点击绿旗时,就加入一遍数据,需要在加入操作之前清空列表,这里使用了“删除列表的全部项目”指令。

2. 开始提问并核对答案

有了问题和答案,我们就让猫博士来提问吧。

在侦测模块,有两个专门用于和用户进行交互的问答指令,即“询问并等待”和“回答”指令,如图:

图3

Scratch问答指令

不过,在百科测验中,不是直接输入问题的,问题是存在在列表中的,我们需要从列表中一项一项的取出问题,这需要使用重复指令,同时还需要一个表示列表“编号”的变量,建立一个变量,命名为“编号”,再添加代码如下:

图4

从列表中取出问题并提问

既然开始提问了,玩家就的回答,那么猫博士怎么获取你输入的内容呢,这就是“回答”指令的作用,获取用户输的内容,所以,我们只需要将回答和答案列表中的内容进行对比,就可以判断回答是否正确,如果回答就说“答对了”,否则就说“答错了”,继续添加代码如下:

图5

提问并核对答案

如此一来,我们就可以开始进行问答测试了,只是在完成所有的测验之后,没有任何的反馈,是不是感觉少点什么呢?对了,如果给回答的情况做一个统计和评价,效果会更棒,你说是吧。

3. 统计回答情况并评价

为了统计答对的题目数量,需要增加一个变量并命名为“correct_answers”,然后将其初始化为0。当用户回答正确时,将该变量加1。下面是相应的代码:

图6

统计答对题目数量

为了统计答对的题目数量,需要增加一个变量并命名为“correct_answers”,然后将其初始化为0。当用户回答正确时,将该变量加1。下面是相应的代码:

图7

统计答题结果并评价

现在,一个完善的Scratch百科测验小应用就创作好了。你可以继续添加更多的问题和答案,让测验更加丰富和有趣。

标签: Scratch, Scratch编程, Scratch中国, 少儿编程, Scratch社区, Scratch编程社区, Scratch编程课程, Scratch编程教程