游乐场-第15届蓝桥省赛Scratch初级组真题第2题

文摘   教育   2024-08-28 20:45   湖北  
[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第181讲
如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题并订阅合集,查阅教程更方便。

第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下:

游乐场,本题是2024年8月24日举行的第15届蓝桥省赛Scratch初级组编程第2题,题目要求编程控制游乐场里摩天轮的转动和停止效果。在按下空格键时,如果摩天轮是静止的,就顺时针持续转动,否则就停止转动。

先来看看题目的要求吧。

题目说明


编程实现:

游乐场。

具体要求:

1). 点击绿旗,角色、背景如图所示;

2). 如果当前摩天轮是静止的,按下一次键盘空格键后,摩天轮开始顺时针持续转动;
3). 如果当前摩轮是转动的,按下一次键盘空格键后,摩天轮停止转动;

4). 重复执行具体要求2)、3)。

评判标准:

  • 2 分:满足"具体要求"中的1);

  • 13分:满足"具体要求"中的2)

  • 15分:满足"具体要求"中的3)

  • 10分:满足"具体要求"中的4)


效果预览


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


思路分析


本题只有1个摩天轮角色,如图所示:

本题考查的知识点包括运动、按键处理和变量。
实际上,这是一道原题,出现在2023年12月17日举办的第3次STEME测评,可以参考《转动的风车-第15届蓝桥第三次STEMA测评Scratch真题精选》这篇教程。
解决本题的关键有两点:
  • 如何控制角色的转动和停止;
  • 如何更优雅的处理按键;
1. 如何控制角色的转动和停止
要让角色持续转动非常简单,只需要重复执行转动即可,如下:

怎么让角色停下来呢,很多同学立刻会想到停止脚本,这个当然是可以的,但有点麻烦。
实际上,还有更简单的做法,就是将右转的度数设置为0,如下:

简不简单,意不意外😄。
这其实就是状态的概念,我们的摩天轮角色就只有这两个状态,要么右转5度(也可以是其它度数),要么右转0度(停止不动)。
如何表示这个状态呢,你肯定想到了,一个小小的变量就可以轻松搞定,定义“速度”变量,如下:

接下来就是如何改变”速度“变量的事儿了。
2. 如何更优雅的处理按键
当按下空格键的时候,如果摩天轮是静止的,就开始顺时针持续转动,如果摩天轮是转动的,则停止转动。
换句话说,当变量“速度”为0的时候,将其设置为一个大于0的数字(比如5),否则就将其设置为0。
如何处理按键呢,在Scratch中一般有如下两种方式:
  • 直接使用"当按下空格键"指令;
  • 使用侦测模块中的“按下空格键”,再结合循环来判断;
你知道它们之间的区别吗?
前者使用的是事件指令,如图:

使用起来比较方便,但是它不受绿旗控制,也不受停止脚本指令控制,任何时候按下空格键,都会执行该代码块。
相对来说,使用后者的效果更好,只是在代码层面稍显麻烦一点。
当然了,如果你能够熟练掌控”等待条件“指令,还可以使用一个更加简洁的代码来编写程序,连变量都不需要了,简直不要太香了。
思路有了,接下来,我们就进入程序实现环节

程序实现


根据上面的思路分析,我们分别使用两种方式来实现:
  • 使用变量控制
  • 巧妙使用等待条件指令
1. 使用变量控制
根据前面的思路分析,我们可以分如下两步:
  • 摩天轮持续转动
  • 处理按键
1.1 摩天轮持续转动
先创建一个变量“速度”,如下:

在绿旗代码块中,编写代码如下:

代码比较简单,说明两点:
1). 尽量要设置好角色的位置和方向;
2). 速度变量的初始值设置为0,表示刚开始处于静止状态;
1.2 处理按键
根据前面的思路分析,我们使用侦测模块中的按下空格键“指令来处理按键,使用一个新的代码块,编写代码如下:

代码不多,但是细节很重要,强调3点:
1). 这里使用了等待指令,因此必须要单独的使用一个绿旗代码块,否则循环就会处于等待状态;
2). 为了避免长按情况,增加了一个松开按键的判断,在Scratch中没有松开按键指令,通常需要结合”不成立“指令来实现
3). 如果不喜欢使用等待指令,你也可以使用”如果...那么“指令,但是不管哪一种方式,都要加上”等待按下空格键不成立“。
2. 巧妙使用等待条件指令
摩天轮只有两个状态,要么持续转动,要么静止不动,我们可以使用两个等待指令,编写代码如下:

是不是看起来非常简单,怎么理解呢?
刚开始时,摩天轮处于静止状态,当按下空格键后,它会持续右转,直到再次按下空格键结束循环,接下来就是重复这个过程。
这段代码的精髓是两个”等待0.2秒“指令,由于条件都是”按下空格键“,如果没有中间的”等待0.2秒“,两个条件就同时满足了,这样一来,摩天轮就再也转不起来了。

至此,整个作品就创作好了,是时候来控制自己的摩天轮了


总结与思考


本题是初级组编程部分第2题,分数为40分,积木块数量10~20个左右,涉及到的知识点主要包括:

  • 运动编程,重点是右转;

  • 变量的使用;

  • 按键处理;

  • 等待条件指令的使用;

作为本次初级组省赛的第二题,难度一般,完成时间5分钟左右,关键点有两个,一是借助变量轻松实现角色的持续转动和停止,二是使用侦测指令优雅的处理按键操作。

题目并不难,但是不少同学在这道题上花了太多的时间,或者是没有达到理想的效果。大部分同学都是卡在第一个问题上,即如何在持续转动和停止之间进行切换。

如果你重视真题,把之前的真题都研究过了,这不就是给你送分的嘛。

相信你也注意到了,在上面给出的两种方案中,我们都用到了”等待条件“指令,这个指令看起来不起眼,但是非常的好用,一定要多用,和它成为好朋友,它可以让代码变得更加简洁。

你还有什么好的方法吗,非常欢迎您和超平老师交流分享。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要素材和源码的,可以添加本人微信

另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。

超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好备考第15届蓝桥杯赛事,力争取得优异的成绩。

扫码或长按加入微信群

超平的编程课
青少儿编程教育专家,中国人民大学硕士,大学讲师,曾任知名上市机构金牌讲师,16年编程教研经验。大耳猴少儿编程联合创始人,致力于通过编程教育提升孩子的逻辑思维、数学思维和计算思维,迎接AI时代。
 最新文章