Scratch编程教程—百科测验:学科融合

创作背景
你或许参加过各种知识竞赛节目,不论是在电视上还是学校里,这些比赛中常常会涉及到一些生活小常识。那么你是如何记住这些小常识的呢?除了老师出题,我们也可以尝试自己出题,制作一个百科测验小应用程序。题目和答案都由我们来定,但是否正确需要其他人的认证。现在就让我们一起使用Scratch编程,来制作这个简单有趣的百科测验程序吧。
作品预览效果
说明:
- 这个程序仅包含4个问题,一旦启动,猫博士就会开始提问,玩家需要在输入框中输入答案,猫博士会判断是否正确,并进入下一题。
- 当所有题目都答完后,程序会根据答题情况进行评价,比如全部正确,猫博士会说“你太厉害了”。
程序设计
1. 把问题和答案做成列表
既然是百科测验,自然就少不了问题和答案,并且问题和答案是一一对应的。问题的数量可以自己来定,但肯定不止一道题,如何保存问题和答案这些数据呢?
答案是列表,列表就是为保存批量数据而生的。切换到变量模块,建立两个列表,分别命名为“问题”和“答案”,如图:
建立“问题”和“答案”列表
刚建立的列表自然的空的,我们需要对其进行初始化设置,也就向列表中加入具体的问题和答案,增加的方式有两种:
- 直接在列表中,点击“+”逐个加入
- 使用Scratch积木块加入
第一种方法比较简单,但是第二种方法更规范。所以,这里我们采用第二种方法,在猫博士角色中添加如下代码:
初始化“问题”和“回答”列表
需要注意的是,为了避免每次点击绿旗时,就加入一遍数据,需要在加入操作之前清空列表,这里使用了“删除列表的全部项目”指令。
2. 开始提问并核对答案
有了问题和答案,我们就让猫博士来提问吧。
在侦测模块,有两个专门用于和用户进行交互的问答指令,即“询问并等待”和“回答”指令,如图:
Scratch问答指令
不过,在百科测验中,不是直接输入问题的,问题是存在在列表中的,我们需要从列表中一项一项的取出问题,这需要使用重复指令,同时还需要一个表示列表“编号”的变量,建立一个变量,命名为“编号”,再添加代码如下:
从列表中取出问题并提问
既然开始提问了,玩家就的回答,那么猫博士怎么获取你输入的内容呢,这就是“回答”指令的作用,获取用户输的内容,所以,我们只需要将回答和答案列表中的内容进行对比,就可以判断回答是否正确,如果回答就说“答对了”,否则就说“答错了”,继续添加代码如下:
提问并核对答案
如此一来,我们就可以开始进行问答测试了,只是在完成所有的测验之后,没有任何的反馈,是不是感觉少点什么呢?对了,如果给回答的情况做一个统计和评价,效果会更棒,你说是吧。
3. 统计回答情况并评价
为了统计答对的题目数量,需要增加一个变量并命名为“correct_answers”,然后将其初始化为0。当用户回答正确时,将该变量加1。下面是相应的代码:
统计答对题目数量
为了统计答对的题目数量,需要增加一个变量并命名为“correct_answers”,然后将其初始化为0。当用户回答正确时,将该变量加1。下面是相应的代码:
统计答题结果并评价
现在,一个完善的Scratch百科测验小应用就创作好了。你可以继续添加更多的问题和答案,让测验更加丰富和有趣。