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

[导读]:超平老师的《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分钟左右,关键点有两个,一是借助变量轻松实现角色的持续转动和停止,二是使用侦测指令优雅的处理按键操作。

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

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

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

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

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

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

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值