王子回家-第12届蓝桥杯Scratch省赛2真题第3题

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第48讲。

第12届蓝桥杯青少年组省赛分两次进行,这是2020年10月19日举行的第一次省赛考试中级组,形式为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

王子回家,本题是第12届蓝桥杯Scratch第一次省赛真题中级组编程第3题。题目要求考生编程实现王子回家效果,王子被女巫的魔法送到了超时空,他需要找到两把钥匙才能回到自己的世界。

先来看看题目的要求吧。

一.题目说明

编程实现:

王子被女巫的魔法送到了超时空,他需要找到两把钥匙才能回到自己的世界。

具体要求:

1). 点击绿旗,出现对应的角色与背景;

图片[1]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

2). 王子跟随鼠标指针移动;

3). 两把钥匙可以在舞台内随机移动(要求看到移动过程);

4). 当王子碰到钥匙后,点击鼠标可以获取钥匙,钥匙从舞台中消失;

5). 当王子拿到两把钥匙后,王子回到他的世界。

图片[2]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

评判标准:

  • 7 分 :满足要求 1);
  • 15 分 :满足要求 2);
  • 15 分 :满足要求 3);
  • 15 分 :满足要求 4);
  • 8 分 :满足要求 5)。

二.效果预览

在编程之前,先来看看作品的完整效果吧:

三.思路分析

本作品一共有3个角色,分别是王子和两把钥匙,如图所示:

图片[3]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

其中,王子角色一直跟随鼠标移动,实现也比较简单,让角色重复移到鼠标指针位置即可,当王子拿到两把钥匙后,切换背景,停止脚本。

两把钥匙的功能和效果基本一样,都是在舞台范围内随机移动,在移动过程中,如果碰到王子,则停止移动,此时按下鼠标,钥匙就消失了。

为了记录王子拿到钥匙的数量,我们需要创建一个变量,绿旗点击时,将变量设置为2,每拿到一把钥匙,将钥匙数量减1,如果数量减到0了,则表示两把钥匙都拿到了。

四.编程实现

根据题目描述及思路分析,我们可以按角色逐个编写程序:

  • 钥匙角色
  • 王子角色

1). 钥匙角色

当绿旗点击时,先设置好钥匙的初始位置,然后就在舞台上随机移动,由于要看到移动的过程,所以不能简单的使用“移到随机位置”指令,我们可以考虑使用“在1秒内移到随机位置”。

如果想让每次移动的速度有快有慢,可以将这里的时间设置为随机数,代码如图所示:

图片[4]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

接下来,就需要检测是否碰到王子角色了,通常的实现方式是使用”重复执行“ + ”如果…那么“指令的组合。考虑到在本作品中,不需要反复判断是否碰到王子角色,可以使用”等待条件“指令,让代码变得更为简洁。

当钥匙碰到王子角色,立刻停止移动,然后再判断是否按下鼠标,如果玩家按下鼠标,就将钥匙隐藏起来,同时将变量”钥匙“减1,以红色钥匙为例,编写代码如下:

图片[5]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

这里强调两点:

由于”在1秒内滑行到随机位置“指令是独占模式,换句话说,角色一旦执行这个指令,必须要等待该指令执行完毕,才能继续执行后续指令,所以,我们需要单独的再编写一个绿旗代码块来判断是否碰到王子角色,在一个角色中,可以有多个绿旗指令代码块,它们是并行执行的。

②. 当碰到王子角色时,要停止角色的移动,可以使用”停止该角色的其它脚本“指令。

除了初始位置不同,黄色钥匙角色和红色钥匙的代码完全一样,这里就不再列出了。

2). 王子角色

当绿旗点击时,默认背景是背景1,王子位于舞台中间位置,然后跟随鼠标移动,这部分的代码如图所示:

图片[6]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

注意,同时,我们还需要将变量”钥匙“的初始值设置为2,并判断变量是否为0,如果为0,则背景切换到城堡背景,并将角色移到舞台中间,然后停止程序,相应的代码如下所示:

图片[7]-scratch王子回家_第12届蓝桥杯scratch省赛教程-超平的编程课

这里再次使用了”等待条件“指令,是因为钥匙变量是否等于0的条件只需要判断一次,凡是只需要判断一次的条件,都可以使用“等待条件”指令,简洁而高效。

五.总结与思考

本题难度一般,积木块数量在40左右,分值为60,涉及到的知识点主要包括:

  • 角色的移动,重点要注意滑行指令的独占模式特性;
  • 并行执行的编程思想及具体实现;
  • 变量的使用;
  • 在角色中切换舞台背景;
  • 条件判断,重点是“等待条件”指令的妙用;
  • 如何停止指定脚本。 

题目不难,重点是对独占模式的理解,在Scratch中,有不少指令都是独占模式,比如“等待1秒”,“播放声音等待播完”,“说你好2秒”,“在1秒内滑行到x,y”等。它们的最大特点就是在一旦执行该指令,就必须等指令执行完毕,才能执行后续指令。

有时,我们需要同时执行其它指令,此时就需要用到并行模式,常见的解决方案是再使用一个全新的代码块,可以通过事件指令,比如“当绿旗被点击”,也可以使用事件广播机制,对于克隆体则可以使用多个“当作为克隆体启动时”,这些常见的编程技巧,你都学会了吗?


需要素材和源代码的,可以转到这里,王子回家-2020.12.20蓝桥杯省赛中级组第3题

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容