蓝桥杯青少年创意编程大赛Scratch编程题解析(六)

2020-04-10 06:39
电脑报 2020年8期
关键词:列表积木编程

记忆力游戏

1.问题描述

将舞台背景设置为“spotlight-stage”,添加一个“Bellerina”角色、两个“Druml”角色和两个“Drum2”角色,并按照图1的位置摆放。角色“Bellerina”的造型和颜色的设置须如图所示,五个造型的裙子颜色顺序为:白、红、蓝、绿、黄。四个鼓的颜色分别设置为:红、蓝、绿、黄。

图1 题目要求

舞台中央的小女孩会随机变换造型及衣服颜色4次,游戏玩家要记住衣服颜色出现顺序,并按顺序敲击相应颜色的鼓,颜色顺序正确则可得1分,并开始下一轮变换颜色:直到某一轮敲鼓顺序错误则游戏结束,更新最高得分。

具体要求:(1)每次点击绿旗后,舞台左上角的“得分”(显示位置见图1)都为0。

(2)小女孩为造型1(白色裙子):并说“请观察颜色序列!”2秒钟。

(3)小女孩切换4次造型,每次都是随机切换为造型2到造型5中的一个(这4次切换的造型之间允许重复):而且第一次切换后要说“1”1秒钟,第二次说“2”1秒钟,第三次说“3”1秒钟,第四次说“4”1秒钟(图2)。

图2 运行过程

(4)在4次造型切换完成后,小女孩切换回造型1(白色裙子),表示一轮切换结束。小女孩说:“请按顺序点击相应颜色鼓!”

(5)游戏玩家根据刚刚小女孩4次切换造型中衣服颜色的顺序,依次点击(敲击)相应颜色的鼓,在敲击第一次鼓后小女孩说“1”,第二次后说“2”,第三次后说“3”,第四次后说“4”。如果玩家敲击的顺序与衣服颜色切换的顺序相一致,小女孩就说“正确”2秒钟,且得分加1,并从步骤2开始下一轮游戏,如果敲击的顺序错误,小女孩就说“游戏结束”,并根据当前得分的情况更新舞台右上角的最高得分(显示位置如图所示),程序结束。

2.编程思路

本题需要制作一个锻炼记忆力的小游戏。由于是本次考试的最后一题,难度当然较高。要考查考生的全面能力。角色有小女孩和4个不同颜色的鼓,不同角色间需要用到消息。游戏需要重复变色和敲鼓,最好将需要复用的代码用自定义积木保存,减少编码的工作量。还要解决以下几个需求点。

(1)右键复制鼓,在造型面板用油漆桶修改角色颜色。

(2)建立“顺序”列表并将2-5的随机数存入列表。并根据随机数字变换小女孩的造型。这些代码作为自定义“变换造型”积木,便于重复使用。如图3。

圖3 变换造型部分流程图

(3)敲不同颜色的鼓发出不同的消息。

(4)小女孩根据接收的信号进行判断。首先判断鼓的颜色和列表中数字是否一致,如果一致表示记忆颜色正确。其次判断消息次数是否等于4次,为否则等待核对下一个鼓颜色的消息,为真则表示记忆全部正确。一轮完成,将得分加1。

再次运行“变换造型”积木开始新一轮循环,变换造型并等待新一轮敲鼓。这部分代码存入自定义“敲鼓”积木。

(5)如果敲鼓颜色和列表中记录不一致则“游戏结束”。游戏结束时,先“停止其他角色的脚本”,“小女孩”角色说“游戏结束”后停止全部脚本。如图4。

图4 敲鼓部分流程图

(6)敲鼓时需要说出1到4,且与敲鼓顺序无关,所以需要单独计数,且每次敲鼓都要加1。需要单独变量顺序数,这个临时变量“计数”可以与跳舞的顺序数共用也可分开建立。

3.编程实现

(1)删除角色小猫,将背景设为“spotlight-stage”,添加一个“Bellerina”角色、两个“Druml”角色和两个“Drum2”角色。

(2)修改4个鼓的颜色,为每个鼓编程。绿旗开始固定位置,当角色被点击时广播消息1并等待,每个颜色的鼓程序基本一致,仅发出的消息编号不同。对应小女孩衣服的颜色,红色是1,蓝色是2,绿色是3,黄色是4。如图5。

图5 鼓的代码

(3)修改小女孩的造型颜色和造型名称,为小女孩编程。建立变量:得分、最高得分、计数、鼓颜色数(记录每次敲鼓的颜色)。建立列表:顺序(用于记录每轮衣服变色的顺序)。制作新积木:变换造型(处理衣服变色)、敲鼓(处理敲鼓消息)。点绿旗之后初始化变量和列表。然后第一次执行“变换造型”。如图6。

图6 程序初始化

(4)变换造型代码如下:产生随机数,存入列表,根据列表中的随机数变换造型。变量“计数”用于小女孩每次说出的数字。循环4次后切换回造型1,等待玩家点击不同鼓发出的消息。代码如图7。

图7 变换造型积木

(5)每次收到消息都将“计数”加1用于记录本轮内回答的次数。根据接收到的消息序号为变量“鼓颜色数”赋值,红色为2,蓝色为3,绿色为4,黄色为5。然后执行“敲鼓”积木处理消息数据。如图8。

图8 接收消息后处理

(6)“鼓颜色数”与列表记录数据依次对比。如果回答正确4次后,得分增加1,再次启动“变换造型”积木开始下一轮循环。直到出现错误回答,更新最高积分后结束程序。具体编程如图9。

图9 敲鼓积木

4.点评

本题是本次蓝桥杯青少年创意编程大赛Scratch编程题的最后一道大题,角色较多且代码量不小,考点多难度较高。在考试时间有限的情况下能够按时完成的话实力相当不俗,相信你通过刻苦学习和训练也能有实力亲自去角逐下一届蓝桥杯。

猜你喜欢
列表积木编程
堆积木
玩游戏学编程,Blockly Games上手玩
扩列吧
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
列表法解分式方程问题探索
有趣的积木
列表画树状图各有所长
玩积木