[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第169讲。
第15届蓝桥杯第4次STEMA测评已于2024年1月28日落下帷幕,编程题一共有6题,分别如下:
-
青蛙过河
-
巡逻的直升机
-
栽花
-
风车
-
专注力游戏训练
-
排序
栽花,本题是2024年1月28日举行的第15届蓝桥STEMA测评Scratch编程初/中级组编程第3题。题目要求编程模拟栽花场景,移动鼠标选择好位置,按下鼠标左键栽下一朵花。
先来看看题目的要求吧。
一.题目说明
编程实现:
栽花。
具体要求:
1). 点击绿旗,角色、背景如图所示;
2). 按下空格键后,带根的花朵移动到鼠标所在位買,如图所示;
3). 移动鼠标,带根的花朵会持续随着鼠标移动;(参考视频)
4). 按下鼠标左键,会在鼠标点击处新栽一朵花(新栽的花看不到根);
5). 每次按下鼠标左键,都会在鼠标点击处新栽一朵花,如图所示;
6). 如果花朵角色碰到舞台边缘或其它花朵,此时按下鼠标左键不栽花。
评判标准:
-
2分:满足"具体要求"中的1);
-
5分:满足"具体要求"中的2);
-
10分:满足"具体要求"中的3);
-
10分:满足"具体要求"中的4);
-
10分:满足"具体要求"中的5);
-
13分:满足"具体要求"中的6)。
二.思路分析
本题只有1个花朵角色,如图所示:
花朵有两个造型,造型1是有根的,造型2是无根的,如图:
本题考查的知识点主要包括事件编程和克隆,其中事件编程包括空格键和鼠标点击事件,也是本作品的重难点。
根据题目的描述,在按下空格键之后,花朵才会持续跟随鼠标移动,这说明按下空格键只需要判断一次,最好的方法就是使用“等待条件” + “按下空格键”指令,如图:
按下空格键之后,花朵会跟随鼠标移动,同时还需要检测是否按下鼠标左键,直接使用“如果...那么”+ “按下鼠标”指令即可。
正常情况下,一旦按下鼠标就可以开始克隆花朵了,但是这里多了一层限制,就是在按键的时候如果碰到舞台边缘或其它花朵,则不栽花。
碰到舞台边缘比较好处理,碰到其它花朵该怎么检测呢,这可有点犯难了。
整个作品也就一个角色,碰到角色指令中也没有花朵这一选项,如图:
这该怎么办呢?
此时,我们就需要借助其它角色了,比如小猫,在角色列表中添加一个小猫角色,找到碰到角色指令,选择花,如图:
然后将该指令复制到花朵角色,再删除小猫角色,此时,在花朵角色中就可以检测是否碰到花朵了,如图:
解决了这一关键问题,接下来就简单了,在满足条件时直接克隆花朵就可以了。
思路有了,接下来我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析,我们分两步来编写程序:
-
克隆花朵
-
显示克隆体
1. 克隆花朵
根据前面的思路分析,在绿旗指令下编写代码如下:
代码不多,强调一个细节,在重复判断按下鼠标的时候,需要增加一个“等待按下鼠标不成立”的组合指令,否则在长按鼠标左键时移动鼠标,也会克隆出花朵来。
2. 显示克隆体
有了克隆体,只需要设置其造型即可,代码如下:
至此,整个作品就创作好了,你可以在舞台上随意栽花啦。
四.总结与思考
本题是初/中级组编程部分第3题,分数为50分,积木块数量15个左右,涉及到的知识点主要包括:
-
事件编程,包括按下空格键和鼠标;
-
条件指令的嵌套使用;
-
等待条件指令的使用;
-
克隆编程;
-
角色碰到自己的技巧;
本题难度中等,完成时间10分钟左右,难点在于如何在花朵角色中判断是否碰到花朵克隆体,解决方法就是借用另外一个角色。
这是一个非常有用的编程小技巧,第14届国赛中的矿工挖宝作品中也出现过类似场景。题目要求在克隆金块和钻石的时候不能有重叠情况,具体的细节可以参考《矿工挖宝-第14届蓝桥杯国赛Scratch真题初中级组第4题》这篇教程。
关于按键的处理,也是需要注意的地方,很多同学喜欢直接使用事件模块中的“当按下空格键”指令,但是它的特点就是不受绿旗控制。如果题目有要求或者想实现更好的效果,还是要在绿旗下面使用侦测指令来检测是否按下空格键。
超平老师给你留一个思考题,本题的代码中使用了3层嵌套,你有什么好方法减少嵌套的层数,让代码变得更简洁一点么?
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄。
需要素材和源码的,可以移步至“超平的编程课”gzh。