逃出城堡-第16届蓝桥第3次STEMA测评Scratch真题第3题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥真题,这是Scratch蓝桥真题解析第214讲。

第16届蓝桥第3次STEMA测评已于2024年12月22日落下帷幕,编程题一共有5题(初级组只有前4道编程题),分别如下:

逃出城堡,本题是2024年12月22日举行的蓝桥STEMA测评Scratch编程初/中级组编程第3题。题目要求编程逃出城堡游戏,小孩被困在城堡中,需要你用鼠标指引她离开城堡,移动过程中避开怪物,并到达城堡大门处,输入解锁密码 123456 后方可离开。

先来看看题目的要求吧。

一.题目说明

编程实现:

逃出城堡。

小孩被困在城堡中,需要你用鼠标指引她离开城堡,移动过程中避开怪物,并到达城堡大门处,输入解锁密码 123456 后方可离开。

具体要求:

1). 点击绿旗,小孩在舞台左上角(初始位置),怪物在 S1 处,城堡大门在舞台右下角,如图所示;

图片

2). 1 秒后,小孩持续面向鼠标指针所在方向移动,如图所示;

图片

3). 怪物在 S1 和 S2 两处之间持续做往返运动;

4)当小孩碰到红色墙壁后会瞬间回到初始位置;

5)当小孩碰到怪物后逃出失败,程序结束(怪物和小孩均不能再移动);

6)当小孩碰到城堡大门后,怪物和小孩不再移动,城堡大门说“请输入解锁密码”,同时舞台下方显示输入框,如图所示;

图片

7). 如果输入的是 123456,解锁成功,小孩消失,程序结束,否则继续显示输入框。

二.思路分析

本题包含3个角色,分别是小孩,怪物和城堡大门,如图所示:

图片

本题考查的知识点包括运动编程、事件广播机制、问答指令、循环和条件侦测等。

我们可以分角色进行分析和讨论。

1. 怪物角色

在这3个角色中,怪物最为简单,它只需要在S1和S2两处之间来回运动,可以直接使用滑行指令来实现。

图片

2.小孩角色

小孩则是面向鼠标指针进行移动的,这需要使用“面向鼠标指针”指令,如下:

图片

我们可以将鼠标指针看作是一个特殊的角色,鼠标移动哪儿,角色面向的方向就会发生变化。

小孩在运动过程中,如果碰到红色的墙壁则会瞬间回到起点,这需要使用侦测指令中的“碰到颜色”指令,如下:

图片

注意,在设置颜色时,要使用底部的拾取颜色工具。

如果碰到怪物角色,则直接停止全部脚本。

至于碰到城堡角色,我们可以放到城堡角色中来判断处理。

3.城堡角色

城堡角色在碰到小孩后,会询问解锁密码,低于只需满足一次条件的判断场景,建议使用等待条件指令,如下:

图片

这种写法可以极大地的简化代码。

与此同时,需要让小孩和怪物立刻停止运动,这就需要使用事件广播机制了。

至于询问部分,则可以使用“重复执行直到”指令来实现,只要输入密码不对,就重复询问,当输入正确密码后,发生广播消息给小孩角色,将小孩隐藏起来。

    思路有了,接下来,我们就进入具体的编程实现环节。

    三.编程实现

    根据上面的思路分析,我们分3步编写程序:

    • 小孩的移动

    • 怪物来回运动

    • 城堡侦测及问答

    1. 小孩的移动

    在小孩角色中编写代码如下:

    图片

    代码不少,说明4点:

    1). 初始化设置包括3个方面,分别是显示、位置和方向,尤其要注意显示,因为小孩在解锁成功后会隐藏,那么在点击绿旗时必须要将其显示出来;

    2). 由于鼠标的位置随时在变化,因此“面向鼠标指针”指令必须放在“重复执行”中,确保时刻都能面向鼠标移动;

    3). 移动的步数,可以自行确定,不要太快,也不要太慢;

    4). 小孩碰到怪物,程序结束,直接停止全部脚本即可;

    2. 怪物来回运动

    切换到怪物角色,编写代码如下:

    图片

    代码比较简单,说明两点:

    1). 要加上“等待1秒”指令,1秒后才开始滑行,保持和小孩的节奏一致;

    2). 滑行的时间可以自行设定,但不要太快,也不要太慢;

    3. 城堡侦测及问答

    切换到城堡角色,编写代码如下:

    图片

    代码不多,说明两点:

    1). 一旦碰到小孩,先发送一个“停止”的广播消息,一旦密码输入正确,就发送一个“成功”的广播消息;

    2). “回答”指令用于获取玩家输入的内容,每次点击绿旗时,都会变成空白,不用担心直接和上一次输入的正确密码进行相等比较;

    对应的,在小孩角色中添加代码如下:

    图片

    在怪物角色中,也需要添加如下代码块:

    图片

    这样,就可以确保在小孩碰到城堡大门时,小孩和怪物立刻停止运动;当输入正确的密码后,小孩消失。

    需要注意的是,这里使用了“停止该角色的其他脚本”,而不是“停止全部脚本”指令,因为城堡角色的代码还需要继续执行。该停止的必须要停止,不能停止的坚决不停止,不能伤及无辜呀。

    至此,整个作品就创作好了。

    四.总结与思考

    本题是初/中级组编程部分第3题,分数为70分,积木块数量36个左右,涉及到的知识点主要包括:

    • 运动编程;

    • 事件广播机制;

    • 条件侦测;

    • 循环指令;

    这是本次stema测评的第3题,难度一般,创作时间约15分钟左右。重点有两个,一是运动编程的不同实现方式,二是关于侦测条件的灵活使用,在哪个角色中判断,使用什么样的方式。

    对于某个功能和效果,通常会有多种实现方式,我们一定要根据实际场景来灵活处理,基本原则是让代码更简洁,也就是使用更少的代码实现同样的功能,正所谓Write less,do more !

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

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值