这是Scratch蓝桥杯真题解析第114讲。蓝桥杯选拔赛现已更名为STEMA,即STEM 能力测试,是蓝桥杯大赛组委会与美国普林斯顿多文化教育研究中心合作推出的考试项目。STEM能力测试致力于综合评价学生的 STEM 水平,对学生的科技素养、逻辑思维和编程能力等三方面进行客观科学的测试。
判断小球,本题是2022年11月27日举行的第14届蓝桥杯STEMA考试Scratch图形化编程真题第3题。题目要求通过编程实现判断小球作品,黑板上随机出现1-5个小球,然后老师询问出现几个小球,并判断用户回答是否正确。
先来看看题目的要求吧。
一.题目说明
编程实现:
判断小球。
具体要求:
1). 运行程序,角色、背景如图所示;
2). 等待1秒,黑板上随机出现1-5个小球,老师询问:“出现几个小球?”同时出现询问框;
3). 如果输入的数字和小球出现的数量相同,老师说:“正确”1秒;
4).如果输入的数字和小球出现的数量不相同,老师说:“错误”1秒;
5). 重复持续2)、3)、4)步骤。
评判标准:
- 3分:满足”具体要求”中的1);
- 6分:满足”具体要求”中的2);
- 4分:满足”具体要求”中的3);
- 4分:满足”具体要求”中的4);
- 3分:满足”具体要求”中的5)。
二.作品效果
在编程之前,先来看一下作品的完整效果吧:
三.思路分析
本题包含两个角色,分别是老师和小球,如图所示:
题目的功能相对比较简单,对于小球角色而言,就是每次随机克隆1-5个小球,然后由老师角色提问,当玩家输入数字后,老师再进行判断,如果答对则提示正确1秒,否则提示错误1秒。
这里的重点是要控制好程序的执行顺序,确保两个角色按如下顺序执行:
- 克隆小球
- 询问并回答
- 删除克隆小球
我们可以从小球角色开始,先克隆1~5个小球,然后给老师角色发送广播消息,当老师接收到广播消息后提问并判断玩家输入是否正确,回答完成后再发送一个广播消息给小球,将小球克隆体删除掉。
接下来,我们进入具体的编程实现环节。
四.编程实现
根据题目描述和思路分析,我们分四步来编写程序:
- 克隆1~5个小球
- 老师提问并判断玩家回答
- 删除小球克隆体
- 重复上述过程
1. 克隆1~5个小球先将小球本体隐藏起来,然后沿着水平方向克隆1~5个小球,在小球角色中编写代码如下:
由于老师角色要判断玩家输入是否正确,所以需要将小球的数量使用变量保存起来,一旦克隆完毕,就立刻发送一个广播消息。对应的需要将克隆体显示出来,其代码如下:
2. 老师提问并判断玩家回答
对于老师角色而言,点击绿旗时,设置好其位置,当接收到“提问”的广播消息后进行询问,并判断玩家的输入是否正确,代码如下:
注意,判断的代码非常简单,直接比较“回答“和变量”个数“是否相等即可,判断完毕,发送一个”删除小球“的广播消息。
3. 删除小球克隆体
这一步非常简单,小球角色在接收到”删除小球“的广播消息后,删除克隆体即可,切换到小球角色,编写代码如下:
4. 重复上述过程
上面的代码只完成了一次问答,如何重复多次问答呢?
很多同学会想,这还不简单,直接套一个循环指令不就可以了么,你觉得可行吗?
当然不行,如果直接添加一个重复执行指令,就会出现一直询问的情况。我们要确保老师判断完成之后才进行下一次克隆,这里有一个等待的过程。
我们可以将广播指令换成广播并等待指令,这样就可以保证在问答完成以及克隆体删除之后再进行下一次克隆,对应的代码如下:
两个指令看起来差不多,其作用和效果还是有很大区别的,如果要严格控制角色之间代码的执行顺序,不妨多考虑一下”广播并等待“指令,小指令有大作用。
至此,整个作品就创作好了,赶紧来测试一下你的数数能力吧。
五.总结与思考
本题是初/中级组编程部分第3题,分数为20分,积木块数量27个左右,涉及到的知识点主要包括:
- 克隆编程,重点是如何生成一排克隆体;
- Scratch问答指令;
- 随机数指令;
- 变量的简单实用;
- 事件广播机制,尤其是”广播并等待“指令的妙用。
本题难度一般,重点是如何让两个角色来回执行代码,这需要使用事件广播机制。
Scratch提供了两个广播指令,分别是”广播消息“和”广播消息并等待“,二者都可以发送广播消息。
不同的是前者在发送广播消息之后,立刻执行后续代码,可以理解为是并行执行的,这其实就是编程中常说的同步。而后者在发送广播消息之后,需要等待接收方先执行完代码再继续执行后续代码,可以理解为是串行执行的,也就是异步编程。
同步和异步是计算机编程中非常重要的两个编程思想,一旦你理解了这两个概念,并运用它们来分析问题,你会发现问题一下子就变得非常清晰明了,这就是思想的力量。
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香