[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。
第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下:
找不同,本题是2024年8月24日举行的第15届蓝桥省赛Scratch初级组编程第4题,题目要求编程创作一个找不同游戏。游戏一共有3关,第一关是2 * 2矩阵,第二关是4 * 4矩阵,第三关是6 * 6矩阵,每一关中都有一个方块是浅色的,找到浅色方块并点击就可以进入下一关,3关全部通过则通关成功。
编程实现:
找不同。
具体要求:
1). 点击绿旗,瞬间出现一个2行2列的方块矩阵,其中随机一个方块的颜色较浅,变量“关卡”的值为1、“用时”的值为0,如图所示;
3). 在第一关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),”关卡” 增加1,进入第二关,瞬间出现一个4行4列的方块矩阵(其中随机一个方块的颜色较浅),如图所示;4). 在第二关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),“关卡”增加1,进入第三关,瞬间出现一个6行6列的方块矩阵(其中随机一个方块的颜色较浅),如图所示;
5). 在第三关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),所有方块消失,“用时”不再变化,同时 “通关成功”出现并逐新变大(在1秒内大小从20 增加到 100,能看到变大的过程),而后程序结束。
评判标准:
13分:满足"具体要求"中的1);
5 分:满足"具体要求"中的2);
16分:满足"具体要求"中的3);
16分:满足"具体要求"中的4);
10分:满足"具体要求"中的5)。
在编程之前,先来看一下作品的完整效果吧:
本题包含两个角色,分别是方块和成功角色,如图所示:
其中,方块角色有两个造型,一个是深色方块,一个是浅色方块,如图所示:本题考查的知识点主要包括克隆技巧、私有变量、自制积木和事件广播等。根据题目的描述,我们使用分解思维将作品拆分成如下几个部分:其中克隆方块矩阵和切换关卡是本题的难点,我们着重进行分析。
这里有三种不同的方块矩阵,分别是2行2列、4行4列、6行6列,其本质都是m行n列。
关于多行多列的克隆场景,超平老师总结了一个超级好用的“克隆4兄弟"模型,如下:
直接套用就行,只需要根据实际要求设置好行数m、列数n、起点x、起点y、水平间隔和垂直间隔等即可。比如,本题中的关卡2中是4行4列的方块,克隆如下:
克隆效果如下:
在众多的方块中,有一个随机的方块是浅色,这就说明我们需要区分每一个克隆体。针对这个问题,我们有一个简单的模型----“自私的ID”。所谓自私的ID,是指给克隆体增加一个私有变量ID,用来表示克隆体的编号,一般从1开始。与此同时,我们使用一个公有变量“随机数”,来指定浅色方块的编号,如果方块的ID等于随机数,就切换成浅色造型。题目要求瞬间生成方块矩阵,必须借助自制积木的不刷新特性,我们可以将每个关卡用一个自制积木来表示,以关卡2为例,编写代码如下:
关卡1和关卡3的代码和这个基本一样,如此一来,克隆矩阵的问题就轻松解决了。前面两点比较简单,关键是第3点,在生成新的方块矩阵之前,需要删除之前剩下的方块克隆体,这个先后顺序非常重要。这就需要使用“广播并等待”指令,一旦完成一关,需要发送一个广播消息,将所有的克隆体都删除掉,然后再克隆下一关的方块矩阵。搞定了两个难点,其它的就相对比较简单了,接下来,我们就进入程序实现环节。1). 自制积木要勾选“运行时不刷新屏幕”,确保瞬间生成方块矩阵;
2). ID必须是私有变量,增加_只是书写代码的一个好习惯;3). 注意ID的初始值和增加的位置,确保ID从1开始,建议让角色说出ID,来检验是否正确;4). 合理设置起点的x、y坐标和方块之间的间隔,尽量确保矩阵位于舞台中间位置。1). 本体要隐藏起来,同时将初赛造型设置为1,即深色的方块;2). “关卡”是公有变量,初始值为1,表示刚开始是进入第一关;3). 在切换关卡的时候,用到了两个指令,一个是“等待条件”指令,一个是“广播并等待”指令,这样可以确保通过一关,所有的克隆体都删除之后,才进入下一关;
在点击方块时,如果是浅色方块,即造型为2时,就表示通关了,对应的代码如下:注意代码的执行过程,当点击浅色方块后,变量关卡增加1,比如从1增加到2,此时绿旗代码块中的"等待关卡= 2"条件就满足了,如图:于是,就发送一个“过关”的广播消息,对应的,克隆体在接收到广播后删除自己,代码如下:等待所有的克隆体都删除之后,就生成下一关的方块矩阵。计时功能比较简单,我们可以使用一个独立的积木块来实现,代码如下:当第3关通关之后,游戏就结束了,按照前面的逻辑,关卡会变成4。有的同学会这么处理,当关卡变成4之后,再重新设置为3,这么做也是可以的。实际上,我们可以在“关卡”变量增加的时候,增加一个逻辑判断,如果当前关卡为3,就表示通关成功,否则就将关卡加1。只需要将前面的“当角色被点击”代码块稍作修改即可,如下:如果当前已经是关卡3了,意味着要结束游戏了,此时变量不再增加。同时需要发送两个广播消息,一个是“过关”,其作用是通知各克隆体删除自己,一个是“成功”,要显示通关成功的效果。由于前面的计时是无限循环,所以在通关成功时,需要停止计时,在方块角色中,增加如下代码:
相应的,成功角色需要显示出来,并有一个从小变大的动画效果,在成功角色中编写代码如下:代码比较简单,需要强调一点,就是不要使用“停止全部脚本”指令,放在哪里都不合适,要么动画效果出不来,要么就是计时不精确。至此,整个作品就创作好了,是时候放松一下体验体验自己的闯关游戏啦。
本题是初级组编程部分第4题,分数为60分,积木块数量80个左右,涉及到的知识点主要包括:
作为本次初级组省赛的第4题,难度中等,完成时间20分钟左右。本题的难点有两个,一是如何快速克隆出多行多列的方块矩阵,二是如何实现关卡的切换。
关于第一个问题,只要你熟练掌握了超平老师总结的“克隆4兄弟”模型,做出来应该是非常轻松的事情。
真正的难点就是如何切换关卡,这涉及到流程的控制,本题使用了“等待条件”指令和“广播并等待”指令,完美的实现了关卡切换。
超平老师给你留一个思考题,在上面的代码中,我们定义了3个自制积木,分别用于实现3个方块矩阵的克隆。
仔细分析代码,可以发现大部分代码都是相同的,完全可以使用一个自制积木来实现,增加几个参数,在调用时分别传入不同的值就可以了,这样还可以节省不少代码,你知道该如何实现吗,赶紧试一下吧。
你还有什么好的方法吗,非常欢迎您和超平老师交流分享。
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄需要素材和源码的,可以添加本人微信。
另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。
超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好地备考第15届蓝桥杯赛事,力争取得优异的成绩。
扫码或长按加入微信群