嫦娥奔月-第13届蓝桥杯Scratch选拔赛真题精选

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

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第13届蓝桥杯青少年组第2次选拔赛于2021年10月23日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

嫦娥奔月,本题是2021年10月23日举行的第13届蓝桥杯Scratch选拔赛真题编程第3题,初级组和中级组都有此题,题目要求编程模拟嫦娥奔月的效果。

先来看看题目的要求吧。

一.题目说明

背景信息:

中秋是中国民间的传统节日,中秋以月之圆寓意人之团圆,为寄托思念故乡,思念亲人之情,祈盼丰收、幸福,成为丰富多彩、弥足珍贵的文化遗产。

编程实现:

嫦娥奔月。

具体要求:

1). 运行程序,等待1秒出现嫦娥角色;

2). 点击嫦娥,嫦娥询问“请输入我飞行的时间5-10”;

3). 输入数字后嫦娥开始向月亮移动,飞行过程中嫦娥越来越小;

4). 左上角显示输入的数值后开始倒计时(5代表5秒,6代表6秒以此类推);

5). 倒计时为0停止计数,嫦娥在月亮上停止移动;

6). 等待1秒,出现节日祝福。

评分标准:

  • 3分:满足要求1);

  • 4分:满足要求2);

  • 8分:满足要求3);

  • 4分:满足要求4);

  • 3分:满足要求5);

  • 3分:满足要求6);

二.思路分析

本题包含两个角色,分别是嫦娥和祝福,如图所示:

需要说明一下,这里的嫦娥在出现的时候,有渐显效果,在Scratch编程中,我们可以通过逐渐改变虚像特效来实现。

当玩家输入时间后,嫦娥就开始奔向月亮,在这个过程中,要完成如下三个任务:

  • 嫦娥角色的运动

  • 倒计时

  • 嫦娥角色逐渐变小

三者是并行关系,即同时进行,由于运动时间已经确定下来了,所以这里肯定要使用“在1秒内移动x,y”指令,但是这个指令是独占模式(单线程)的,也就是在执行这个指令时,无法继续执行后续指令。因此,我们需要使用广播机制,给自己发送一个广播消息,将程序执行流程一分为二,从而实现多线程。

还有一点,嫦娥的移动时间是变化的,可能是5秒,也可能是10秒,如何确保嫦娥停下来时的大小是一致的,这就需要让嫦娥缩小的速度跟随移动时间进行变化,时间越短,缩小速度越小,时间越长,缩小速度也越大。

三.编程实现

根据题目描述和思路分析,我们可以分4步来编写程序:

  • 嫦娥逐渐出现

  • 嫦娥飞到月亮上

  • 嫦娥逐渐变小

  • 倒计时

1. 嫦娥逐渐出现

绿旗点击时,嫦娥位于舞台左下角,并且是隐藏的,1秒之后慢慢显示出来,在Scratch中,可以通过虚像来设置角色的透明度,默认虚像值为0,表示不透明,当虚像值为100时,角色完全透明,就看不见了。

所以,我们可以将虚像值设为100,然后逐渐减小到0,在嫦娥角色中编写代码如下:

注意,题目给出的演示视频中,绿旗点击时倒计时显示的是空,所以这里将倒计时的初始值设置为空,而不是0。

2. 嫦娥飞到月亮上

当玩家使用鼠标点击嫦娥时,会弹出一个对话框,询问飞行的时间,对于角色的点击,通常直接使用“当角色被点击指令”,但这里的点击是在嫦娥完全显示后才进行的,更好的办法是使用侦测指令,同时判断角色是否碰到鼠标指令和按下鼠标,在嫦娥角色的的代码块中,增加代码如下:

当玩家输入飞行时间后,将变量“倒计时”设为回答,然后发送了一个广播消息,接着让嫦娥角色在指定时间内滑行到月亮上。

3. 嫦娥逐渐变小

嫦娥角色接收到自己发送的“开始飞行”广播后,逐渐开始变小,根据前面的思路分析,我们添加一个变量“缩小速度”,它和“倒计时”变量成反比关系,然后重复减小角色直到倒计时为0,对应的代码如下:

这里的缩小速度设为了“ -7 / 倒计时”,是经过多次测试得到的,包括“等待0.04秒”指令,你可以设置为其它的值。之所以是负数,是因为角色要逐渐变小,同时要注意在初始化中需要将角色大小设为100。

4. 倒计时

嫦娥角色在接收到“开始飞行”广播后,还需要显示倒计时效果,每隔1秒就减去1,当倒计时减到0,在嫦娥角色中继续编写代码如下:

倒计时减到0,再等1秒,出现节日祝福,因此在这里发送了一个“广播祝福”的广播消息,对应的,祝福角色在接收到广播后,将自己显示出来,切换到祝福角色,编写代码如下:

至此,整个作品就创作完成了。

四.总结与思考

本题难度系数为4,积木块数量在43个左右,涉及到的知识点主要包括:

  • 外观编程,包括大小、显示隐藏和虚像特效,重点是渐显效果;

  • Scratch问答,包括询问并等待和回答;

  • 事件广播机制,重点是通过广播实现多线程编程;

  • 使用侦测指令实现角色点击;

  • “等待条件”指令的灵活运用。

题目难度中等,重点有两个,一是多线程编程,要确保角色在滑行过程中逐渐减小角色,解决方案就是使用事件广播机制,给自己发送广播消息,将程序执行流程一分为二,同时执行。

二是如何确定角色缩小的速度,确保不管时间长短,都可以将角色缩小到相同大小,这就需要寻找两个变量之间的关系和规律(定性),并通过数学计算来确定其缩小速度(定量),这其实就是科学中经常提到的定性和定量的分析方法。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
蓝桥杯scratch省赛真题是指蓝桥杯编程大赛中使用Scratch编程语言进行的省级比赛的问题。具体的题目会根据每年的比赛而有所不同,以下是一个例子: 题目要求创建一个游戏,模拟猴子爬楼梯的场景。猴子每次可以爬1到3级的楼梯,目标是爬到楼梯的最顶层。玩家可以通过按键来让猴子爬楼梯,同时需要显示猴子当前所在的楼梯层数以及已经爬过的楼梯数量。 首先,我们需要使用Scratch中的精灵功能来创建一个猴子的角色,可以自定义猴子的造型和动作。接下来,我们需要创建一个楼梯场景,可以使用Scratch中的背景功能来绘制楼梯。可以使用简单的图形表示楼梯,比如长方形。 之后,我们需要添加按键事件,让玩家输入按键来控制猴子的爬楼梯动作。可以使用Scratch中的事件功能来实现按键事件的触发。当玩家按下某个按键时,猴子开始向上爬楼梯。可以使用Scratch中的运动功能来控制猴子的位置,让其向上移动相应的楼梯层数。 同时,我们需要计算猴子当前所在的楼梯层数和已经爬过的楼梯数量。可以使用Scratch中的变量功能来记录这些信息。当猴子爬上一级楼梯时,楼梯层数加一,已经爬过的楼梯数量也加一。可以使用Scratch中的运算功能来实现变量的加法操作。 最后,我们需要添加判断条件,当猴子爬到楼梯的最顶层时游戏结束。可以使用Scratch中的控制功能来实现判断条件。当猴子的位置达到最顶层时,显示游戏结束的提示信息,并停止猴子的爬楼梯动作。 通过以上步骤,我们可以完成蓝桥杯scratch省赛真题中的猴子爬楼梯游戏。这个例子中只是其中的一个题目,实际比赛中的问题会更加复杂和多样化。但无论题目怎样,我们都可以通过使用Scratch的各种功能和编程思维,去解决这些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值