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

[导读]:超平老师的《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分,将近一半的分数,也还是蛮划算的吧。

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

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

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

需要素材和源码的,可以移步至“超平的编程课”gzh。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146120.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Python酷库之旅-第三方库Pandas(122)

目录 一、用法精讲 541、pandas.DataFrame.take方法 541-1、语法 541-2、参数 541-3、功能 541-4、返回值 541-5、说明 541-6、用法 541-6-1、数据准备 541-6-2、代码示例 541-6-3、结果输出 542、pandas.DataFrame.truncate方法 542-1、语法 542-2、参数 542-3…

植保无人机是朝阳产业还是夕阳产业?

植保无人机产业是朝阳产业还是夕阳产业,可以从多个维度进行分析: 一、市场需求与增长趋势 市场需求:随着农业现代化的推进和劳动力成本的上升,植保无人机因其高效、安全、节省农药等优势,在农业生产中的应用越来越广…

自闭症能上寄宿学校吗?了解解答与选择

在探讨自闭症儿童教育的话题时,寄宿学校作为一种特殊的教育模式,常常引发家长们的关注与讨论。对于自闭症儿童而言,寄宿学校既是一个充满挑战的新环境,也是一个能够促进他们独立成长与社交融合的重要平台。今天,我们将…

自制数据库空洞率清理工具-C版-03-EasyClean-V1.3(支持南大通用数据库Gbase8a)

目录 一、环境信息 二、简述 三、升级点 四、支持功能 五、空洞率 六、工具流程图 1、流程描述 2、注意点 (1)方法一 (2)方法二 七、清理空洞率流程图 八、安装包下载地址 九、参数介绍 1、命令模板 2、命令样例 3…

【C语言-数据结构】单链表的定义

单链表的定义(实现) 比较顺序表和单链表的物理存储结构就能够清楚地发现二者的区别 用代码定义一个单链表 typedef struct LNode{ElemType data; //每个结点存放一个数据元素struct LNode* next; //指针指向下一个结点 }LNode, *LinkList;//要表示一个…

[JavaEE] TCP协议

目录 一、TCP协议段格式 二、TCP确保传输可靠的机制 2.1 确认应答 2.2 超时重传 2.3 连接管理 2.3.1 三次握手 2.3.2 四次挥手 2.4 滑动窗口 2.4.1 基础知识 2.4.2 两种丢包情况 2.4.2.1 数据报已经抵达,ACK丢包 2.4.2.2 数据包丢包 2.5 流量控制…

【时时三省】(C语言基础)指针笔试题2

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 笔试题2 这里的0x1是16进制的1 跟十进制的1一样 这道题考察的是:指针类型决定了指针的运算 p是上面结构体的指针 它指向的大小结果是20个字节 指针…

项目第五弹:队列消息管理模块

项目第五弹:队列消息管理模块 一、消息如何组织并管理1.消息结构体2.消息持久化管理模块设计1.数据消息文件名2.临时消息文件名3.对外接口与包含成员 二、自定义应用层协议解决文件读写的粘包问题1.Length-Value协议 三、队列消息管理模块设计1.待确认消息哈希表2.待…

[数据结构]动态顺序表的实现与应用

文章目录 一、引言二、动态顺序表的基本概念三、动态顺序表的实现1、结构体定义2、初始化3、销毁4、扩容5、缩容5、打印6、增删查改 四、分析动态顺序表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 想象一下,你有一个箱子(静态顺序…

【医学半监督】对比互补掩蔽的自监督预训练半监督心脏图像分割

SELF-SUPERVISED PRE-TRAINING BASED ON CONTRASTIVE COMPLEMENTARY MASKING FOR SEMI-SUPERVISED CARDIAC IMAGE SEGMENTATION 2024 IEEE International Symposium on Biomedical Imaging (ISBI) 摘要: 心脏结构分割对心脏病诊断非常重要,而使用大量注释的深度学习在这项任…

Buck变换器闭环控制,simulink仿真模型(适合初学者学习)

Buck变换器,又称为降压斩波器,是一种常见的DC-DC转换器,广泛应用于电源管理领域。它通过开关元件(通常是MOSFET或BJT)的导通与截止,改变输入电压到负载的平均电压,从而实现电压的降低。在实际应…

harbor私有镜像仓库,搭建及管理

私有镜像仓库 docker-distribution docker的镜像仓库,默认端口号5000 做个仓库,把镜像放里头,用什么服务,起什么容器 vmware公司在docker私有仓库的基础上做了一个web页面,是harbor docker可以把仓库的镜像下载到本地&…

tauri嵌入自定义目录/文件,并在代码中读取文件内容的操作流程

可以看官方文档:Embedding Additional Files | Tauri Apps 在绑定了文件之后,可以在js中访问嵌入的文件或者在rust中读取嵌入的文件内容,详细的配置操作如下。 在src-tauri中创建自定义文件夹或文件,并在在tauri.conf.json中配置…

Java多线程Thread及其原理深度解析

文章目录 1. 实现多线程的方式2. Thread 部分源码2.1. native 方法注册2.2. Thread 中的成员变量2.3. Thread 构造方法与初始化2.4. Thread 线程状态与操作系统状态2.4. start() 与 run() 方法2.5. sleep() 方法2.6. join() 方法2.7. interrupt() 方法 本文参考: 线…

Spring自定义参数解析器

在这篇文章中,我们认识了参数解析器和消息转换器,今天我们来自定义一个参数解析器。 自定义参数解析器 实现HandlerMethodArgumentResolver的类,并注册到Spring容器。 Component//注册到Spring public class UserAr…

Java集合必知必会:热门面试题汇编与核心源码(ArrayList、HashMap)剖析

写在前面 🔥我把后端Java面试题做了一个汇总,有兴趣大家可以看看!这里👉 ⭐️在无数次的复习巩固中,我逐渐意识到一个问题:面对同样的面试题目,不同的资料来源往往给出了五花八门的解释&#…

【Linux进程控制】自主Shell

目录 自主shell实现 获取基本变量 实现命令行 获取用户命令字符串 命令行字符串分割 内建命令CD() chdir getcwd putenv 检查是否为内建命令 检查是否为重定向 执行命令 主函数设置 测试用例 项目代码 自主shell实现 根据之前学的内容,我们已经可以模…

【学习笔记】SSL/TLS安全机制之CAA

1、概念界定 CAA全称Certificate Authority Authorization,即证书颁发机构授权,每个CA都能给任何网站签发证书。 2、CAA要解决的问题 例如,蓝色网站有一张橙色CA颁发的证书,我们也知道还有许多其他的CA;中间人可以说服…

网址链接能做成二维码吗?在线网址二维码生成的操作技巧

现在用二维码能够展示很多的内容,将内容放入二维码后,通过扫码的方式获取内容会更加的方便快捷,简化获取内容的流程。比如在分享网上内容时,可以将链接生成二维码的方式来让用户扫码访问网页,那么网址转二维码具体该怎…

【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析

2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析 更新进展 【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析 【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用…