占领矩阵-第15届蓝桥省赛Scratch中级组真题第5题

文摘   教育   2024-09-11 20:45   湖北  

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第190讲

如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题并订阅合集,查阅教程更方便。

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

占领矩阵,本题是2024年8月24日举行的第15届蓝桥省赛Scratch中级组编程第5题,题目要求创作一个占领矩阵作品。点击绿旗,瞬间出现一个5行5列的白色实心圆矩阵,在展示321倒计时效果后,造型1瞬间占领矩阵,1秒后,造型2从左下到右上逐渐占领矩阵,最后造型1从右上到左下逐渐占领矩阵

先来看看题目的要求吧。

题目说明


编程实现:
占领矩阵。

具体要求:

1). 点击绿旗,瞬间出现一个5行5列的白色实心圆组成的矩阵,如图所示;

2). 然后,在矩阵中依次显示数字3、2、1,每个数字显示时长为 0.5 秒,数字的显示效果如图所示;

3). 接下来, 瞬间占领整个矩阵,如图所示;

4). 1秒后,在2秒内从左下角开始向右上角按如下规律逐渐占领整个矩阵;(参考视频)

5). 最后,在2秒内从右上角开始向左下角按如下规律逐渐占领整个矩阵,而后游戏结束。(参考视频)

评判标准:

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

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

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

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

  • 22分:满足"具体要求"中的5)

效果预览


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


思路分析


本题只有一个角色,就是圆圈,如图所示:

角色一共有4个造型,如图:

这是典型的克隆题目,考查的知识点主要包括克隆技巧、私有变量、自制积木、事件广播和列表等。
如果只考虑题目的要求1)、2)、3),那就比较简单了,直接使用”克隆4兄弟“和”自私的ID“模型。
题目的难点就在于要求4)和要求5),如何按照对角线(包括从左下到右上和从右上到左下)遍历矩阵,如图所示:

对于这个问题,一般有如下两种思路:
  • 根据克隆体所处行和列,寻找规律,进行斜线遍历;
  • 直接按照对角线克隆圆圈;
相对来说,在Scratch编程中,使用第二种方式更为简单。
我们先来看两张图片吧,第一张图如下:

第二张图如下:
熟不熟悉,这不就是金字塔排列么?
所以,我们可以借鉴金字塔的克隆技巧,对”克隆4兄弟“模型稍作一点修改,就可以完成对角线克隆了。
为了方便描述,可以对每一条对角线进行编号,先看左下方的5条对角线,如图:

首先,从左下到右上,克隆体的数量依次为1、2、3、4、5,这个可以使用变量来控制克隆体的个数。
其次,每条对角线的起始x坐标都是一样的,大概是-95,y坐标相隔一个圆圈的距离,大概是50。
第三,对于每条对角线而言,下一个克隆体(如果有的话)的位置都是在上一个克隆体的位置上右移50、下移50
这样一来,我们就可以使用使用”克隆4兄弟“模型结合变量来克隆这5条对角线了。
同理,对于右上角的对角线,可以画图如下:

分析方法基本相同,克隆体的数量依次为5、4、3、2、1,使用变量来控制其数量即可。
这一次,每条对角线的起始y坐标都是一样的,大概是95,而x坐标相隔一个圆圈的距离50。
对于每条对角线而言,下一个克隆体(如果有的话)的位置也是在上一个克隆体的位置上右移50、下移50。
因此,我们可以按照这种方式,从左下到右上依次克隆9条对角线,然后将每条对角线上的克隆体作为一组进行编号。
同时,在克隆圆圈的时候,对每个克隆体进行编号,并将处在数字3、2、1位置上的编号分别存入三个列表中,这样就可以轻松显示倒计时效果。
关键问题解决了,接下来,我们就进入程序实现环节

程序实现


根据上面的思路分析,我们分5步来完成作品:
  • 克隆矩阵
  • 列表初始化
  • 倒计时
  • 从下到上占领矩阵
  • 从上到下占领矩阵
1. 克隆矩阵
根据前面的思路分析,我们分两步来克隆矩阵,先克隆左下角的三角形排列,定义自制积木如下:

代码不少,说明两点:
1). 变量”_ID“和”_层“要定义为私有变量,注意它们的初始值和更新位置;
2). 这里使用”起点y“变量来指定对角线的起始y坐标,可以更轻松地控制y坐标的变化;
同理,再定义一个自制积木由于克隆右上方的三角形排列,代码如下:

代码基本差不多,强调3点:
1). 一共有9条对角线,前面已经克隆了5条,因此这里只需要克隆4条对角线;
2). 对于右上对角线排列,起点x坐标是变化的,因此使用了变量”起点x“,并设置好其初始值;
3). 注意私有变量”_层“和”_ID“更新的位置;
2. 列表初始化
这一步非常简单,将处在数字3、2、1位置上的克隆体的ID分别保存到3个列表中,先创建好”数字3“、”数字2“和”数字1“3个列表。
分别定义自制积木,如下:

这里有一个细节,我们怎么快速确定这些ID呢?
超平老师悄悄的告诉你一个小技巧,可以先将克隆体显示出来,并说出自己的ID,代码如下:

执行代码,效果如下:

有了这些编号,就可以轻松找到每个数字需要的ID了。
3. 倒计时
有了前面两步的准备,显示倒计时就比较简单了,先在绿旗指令下编写代码如下:

对应的,对克隆体编写代码如下:

代码比较简单,这里就不再解释了。
4. 从下到上占领矩阵
私有变量“_层”表示的是每个克隆体所在的对角线,如图:

因此,我们可以定义一个变量“当前层”,表示每次控制的层,依次改变每条对角线上的克隆体。
在绿旗代码块中继续编写代码如下:

对应的,编写接收广播的代码如下:

代码比较简单,强调3点:
1). 显示倒计时花了1.5秒,还需要等待1秒,因此一共需要等待2.5秒;
2). 发送广播消息的代码一定要写在绿旗指令下,绿旗指令控制的是本体,只需要本体发送一个广播消息即可;
3). 两次广播之间稍微等待一下,确保在2秒之内能占领矩阵,至于这里的广播方式,使用哪一种都可以;
5. 从上到下占领矩阵
在上面的代码块中继续编写代码如下:

同理,编写接收广播的代码如下:

至此,整个作品就创作好了,是时候来测试自己的作品啦


总结与思考


本题是中级组编程部分第5题,分数为80分,积木块数量120个左右,涉及到的知识点主要包括:

  • 克隆技巧;

  • 自制积木;

  • 私有变量;

  • 事件广播机制;

  • 列表;

作为本次中级组省赛的第5题,难度较大,完成时间20分钟左右,本题的难点是如何整体控制每条对角线上的克隆体。

实际上,关于类似的场景在之前的真题中也出现过,比如第13届国赛的点亮LED屏幕,如图所示:

具体详情可以参考《LED屏幕-第13届蓝桥杯Scratch国赛真题第7题》这篇教程。

在Scratch中,类似的问题,通用的解决方案就是熟练掌握各种不同排列的克隆技巧,比如标准的矩形、三角形、金字塔、圆形、螺旋形等。具体来说,就是灵活运用“克隆4兄弟”模型,稍微复杂一点的需要结合变量和列表等数据结构。

退一步讲,在比赛的时候,如果实在无法实现对角线克隆,你也可以按照常规的方式完成5行5列的矩阵克隆,确保满足题目的前3个要求,这样可以快速拿到36分,将近一半的分数,也还是蛮划算的吧。

超平老师给你留一道思考题,如果不使用上面介绍对角线克隆技巧,能否找到同一条对角线上的克隆体呢?

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

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

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

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

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

扫码或长按加入微信群

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