[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第14讲。
第10届蓝桥杯青少年组国赛于2019年5月25日举行,形式为线下考试,考生自带电脑。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
捉迷藏,本题是第10届蓝桥杯Scratch国赛真题编程第6题,也是最后一题,题目比较复杂,共分为4个程序,我们将分4次来解读和学习,这是第一篇,对应于程序1,题目要求考生通过Scratch编程实现小猫随机躲在6个按固定位置排列的前景角色任一个的后面,只露出一点点痕迹,本题分值为50分。
先来看看题目的要求吧。
题目说明
编程实现:
小猫随机躲在6个按固定位置排列的前景角色任一个的后面,只露出一点点痕迹。
具体要求:
1). 添加任意1个背景,保留小猫角色,从角色库中挑选6个角色作为前景角色(小猫将躲在它们的后面)。
2). 6个前景角色按照两行三列的方式以固定位置排列在舞台上(见图1)。
![图片[1]-scratch捉迷藏之1-第10届蓝桥杯scratch国赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-125.png)
3). 点击绿旗游戏开始,6个前景角色都消失,小猫在舞台左下角;等待1秒后,6个前景角色同时出现,此时小猫说“我要开始藏了!”2秒钟;然后随机藏在某一个前景角色后面。
4). 小猫不论藏在哪个前景角色后面,都只露出一点点痕迹。
评判标准:
- 10分:符合具体要求1,要求2;
- 40分:在10分的基础上,符合具体要求3;
- 50分;在40分基础上,符合集体要求4。
效果预览
在编程之前,先来看看作品的完整效果吧:
思路分析
本题的舞台背景和6个角色都是从Scratch自带的背景库和角色库中任意选择的,其中6个前景角色按固定位置排列,分为上下两排,每排3个角色。
本题的难点是小猫如何随机移到某一个前景角色的后面,我们可以创建一个变量,在1~6之间随机取值,然后根据取值来决定小猫移到哪个角色后面。同时还需要注意,要确保小猫不论藏在哪个前景角色后面,都只露出一点点痕迹,不要露太多,也不能完全被挡住了。
编程实现
根据题目描述,我们分3步来进行编程创作:
- 添加背景和角色
- 实现6个前景角色效果
- 实现小猫效果
- 调整角色造型中心
1.添加背景和角色
保留小猫角色,从Scratch背景库中任意选择一张背景图片,再从角色库中挑选6个角色,其效果如图所示:
![图片[2]-scratch捉迷藏之1-第10届蓝桥杯scratch国赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-129-801x1024.png)
2. 实现6个前景前景角色效果
当绿旗被点击时,前景角色消失,1秒之后同时出现,6个角色的代码基本上都是一样的,除了位置不同,这里以苹果为例,其代码如下:
![图片[3]-scratch捉迷藏之1-第10届蓝桥杯scratch国赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-130.png)
很多同学在编写这段代码的时候,都会省略“移到x,y”指令,从效果上来讲,写不写没什么影响,但是一旦不小心把角色给拖动了(实际上经常会出现这种情况)。如果加了这行代码,只需要点击绿旗,就可以让角色回到正确位置了,所以在Scratch进行创作时,尽量加上位置初始化代码,养成良好的编程习惯。
3. 实现小猫效果
对于小猫角色而言,当绿旗被点击时,它处在舞台左下角,1秒后,在说完“我要开始藏了”后,随机藏到某个角色的后面。
这里,我们先创建一个变量“位置”,并设置为1-6之间的随机数,然后根据变量的值,移到6个角色所在的位置,其代码如下:
![图片[4]-scratch捉迷藏之1-第10届蓝桥杯scratch国赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-128-412x1024.png)
为了确保小猫躲到前景角色后面,这里使用了指令“移到最后面”。需要说明的是,这里的6个条件指令是并列关系,写起来比较简单,但是不管“位置”变量的值是多少,都会执行这6个判断。
如果要优化的话,可以在每个如果指令中增加一个“停止这个脚本”指令,或者使用“如果…那么…否则”进行嵌套。
4. 调整角色造型中心
运行上述代码,小猫确实藏到了前景角色的后面,但是效果并不理想,有时候露出的痕迹过多,有时候又被完全挡住了,怎么办呢?
解决方案有两个,其一是改变小猫移动的位置,不使用“移到角色”指令,而改用“移到x,y”指令,然后再调整x和y坐标的值。其二是不修改代码,而是调整6个前景角色的造型中心,确保小猫刚好只露出一点痕迹,以Rocks角色为例,如图所示:
![图片[5]-scratch捉迷藏之1-第10届蓝桥杯scratch国赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-131.png)
这里将Rocks角色的造型中心往左上挪了挪,原来被完全挡住的小猫就可以在Rocks上方露出一点点痕迹了。需要说明的是当小猫移到Rocks角色时,小猫角色的造型中心和Rocks中心重合的。
总结与思考
本题是捉迷藏的程序1,相对比较简单,一共使用了60个积木块左右,涉及到的知识点包括:
- 外观相关编程,包括显示、隐藏、说话和角色的层次关系设置;
- 条件编程,主要是“如果…那么”条件指令;
- 变量的使用;
- 运算指令,包括随机数指令和相等指令;
- 角色的瞬移,包括移到x,y和移到角色两种技巧。
本题虽然简单,但它是后面3个程序的基础,所以要认真对待,严格按照题目要求进行编程创作,否则就会影响后续的3个程序,下一篇,我们将继续来解读捉迷藏的程序2。
需要素材和源代码的,可以转到这里,捉迷藏-2019.5.25蓝桥杯国赛第6题。
暂无评论内容