编程实现:

本题是2024年8月24日举行的第15届蓝桥省赛Scratch中级组编程题:占领矩阵(本教程仅替换了原题中的角色造型,改为scratch自带的角色造型)

具体要求:

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

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

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

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

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

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

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

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

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

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

本题只有一个角色,就是圆圈,角色一共有4个造型,如图:

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

分析:

这是典型的克隆题目,考查的知识点主要包括克隆技巧、私有变量、自制积木、事件广播和列表等。

题目要求:瞬间出现一个5行5列的白色实心圆组成的矩阵。所以需要使用自制积木并需要勾选:运行时不刷新屏幕。

5行5列的矩阵的克隆,实现起来较为简单(在生成克隆体时为每个克隆体设置一个id,方便后面进行变换)

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

难点是如何依次显示数字3、2、1?以及后续的从左下角开始向右上角的阵形的变换。

变换数字最好的办法就是让组成数字的所有克隆体,自身按指令进行变化。以数字“3”为例,可以将组成数字3阵形的所有角色,与其他角色进行不同标识,如:我们将所有显示数字“3”的角色标识为1,其他角色标识为0。如图所示:

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

这样我们按照顺序就得到了一组标识的数字串:0111000010011100001001110【该数字串的顺序与克隆体的id一致】

然后,发出消息,标识为1的角色切换自己的造型即可。

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

同样的思路,再分别将所有显示数字“2”和“1”的角色标识为1,其他角色标色为0。

实现步骤:

定义变量“id”,作为克隆体的ID

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

自制积木:“克隆矩阵”

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

定义积木,使用自制积木生成矩阵

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

创建列表“矩阵变化”

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

将倒计时3,2,1对应的标识串添加到列表中

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

广播消息“倒计时”

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

新建变量“倒计时”,倒计时也为私有变量。因为每个角色都在执行消息代码,如果倒计时是公有变量,在给倒计时增加1的时候,每个克隆体都会给它加1。

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

当所有克隆体接收到广播消息后,重复3次,依次按照列表中的标识切换造型,实现倒计时

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

接下来实现占领矩阵,根据题目要求,占领矩阵的分别是从左下向右上占领,再从右上向左下,顺序如图:

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

由于,每次都是按斜线进行变换,我们可以按上图格式,用数字将所有角色按照变换进程,依次进行标识,跟倒计时一样,将数字窜存入列表。

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

分别广播消息“从下往上占领”,“从上往下占领”

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

如要实现:从左下角开始向右上角占领整个矩阵,只需要按标识从1显示到9即可

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题


反之,再从9显示到1即可从右上角占领至左下角

占领矩阵-少儿编程第15届蓝桥省赛Scratch中级组真题

源码下载:占领矩阵-第15届蓝桥省赛Scratch中级组真题

本站内容未经许可,禁止任何网站及个人进行转载。