题目说明
Scratch密室逃脱,这是第12届蓝桥杯Scratch国赛真题编程题部分的第5题,于2021年5月29日举行。本题要求考生使用Scratch编程实现密室逃脱游戏,难度系数为5,分数为100分。
我们先来看一下题目的具体要求吧。
编程实现:密室逃脱
具体要求:
1). 点击绿旗,出现对应的角色与背景;

2). 点击一下床上的蓝色钥匙后,钥匙可以跟随鼠标指针移动;
3). 拖动鼠标将钥匙移到床头柜的第三个抽屉的钥匙孔处,出现对话框“抽屉打开”,等待1秒蓝色钥匙消失,可以从抽屉中拿出红色钥匙,红色钥匙出现在画面中;

4). 点击一下红色钥匙,红色钥匙跟随鼠标指针移动,移动到电脑桌第一个抽屉的钥匙孔处,出现对话框“抽屉打开”,等待1秒红色钥匙消失,可以从抽屉中拿出白色门卡,白色门卡出现在画面中;

5). 点击一下门卡,门卡可以跟随鼠标指针移动,碰到紫色把手消失,密码锁会随机说出5个数字(0-9),输入由这5个数字组成的最大五位数并出现输入框;

6). 如果输入的最大五位数正确,提示:“正确,门打开”,如果输入最大的五位数错误,提示:“请重新输入(还有一次机会)”,两次机会全部输错,提示:“错误,门已锁死”。



评判标准:
- 5分:满足要求1;
- 5分:满足要求2;
- 15分:满足要求3;
- 15分:满足要求4;
- 20分:满足要求5;
作品效果
Scratch密室逃脱作品的完整效果如视频所示:
作品解读
本题主要考察了如下5个知识点:
- 运动编程,重点是3个角色随鼠标进行移动;
- 事件广播机制,从蓝色钥匙到红色钥匙、再到门卡,需要使用广播机制来控制它们的执行顺序;
- 碰撞检测,包括碰到鼠标指针和碰到颜色;
- 变量和列表,尤其是列表的使用,包括数据的删除、插入和获取,以及结合循环遍历列表中的数据;
- 问答模块的使用;
这里的难点是如何获取随机数字串所能组成的最大数字,比如列表的数字如图所示:

如何才能得到最大数字排列94210呢,其实方法挺多的,一种思路是对列表排序,这种方法难度要大一点,如果你仔细观察的话,可以发现这里的数字都是一位数,我们可以换一种思路,将列表中的数字依次和9、8、7、6、5、4、3、2、1、0进行比较,再将满足条件的数字依次进行连接即可,为了方便,专门定义了一个自制积木如图所示:
![图片[9]-Scratch密室逃脱_第12届蓝桥杯Scratch国赛真题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2022/05/code-1.jpg)
通过自制积木,就可以将最大数字拼接处理,并存储到变量“正确答案”中。
暂无评论内容