时光倒流-第12届蓝桥杯Scratch选拔赛真题精选
第12届蓝桥杯青少年组第3次选拔赛于2020年10月25日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
时光倒流,本题是2020年10月25日举行的第12届蓝桥杯Scratch选拔赛真题编程第4题,初级组和中级组都有此题,题目要求编程创作时光倒流作品,女巫使用新的魔法,不论王子跑到哪里,通过这个魔法他都会回到女巫身边。
先来看看题目的要求吧。

题目说明

1). 点击绿旗,背景、角色位置如下图所示:
2). 巫师倒计时5秒钟,使用说话模块程序在舞台上(由5-1依次说出);
3). 倒计时的同时,可以使用鼠标拖拽王子移动,移动路径由红线呈现在舞台上;
4). 5秒后,巫师就说“时光倒流!”,然后王子按照刚才的路线返回到初始位置(要有移动过程)。

思路分析

本题一共有两个角色,分别是女巫和王子 ,都来自于Scratch自带的角色库,如图所示:

程序实现

根据题目描述和思路分析,我们可以分三步来编写程序:
女巫倒计时
王子随鼠标移动
王子沿原路返回
1. 女巫倒计时
首先创建好变量“倒计时”,将初始值设为5,然后每隔1秒减1,同时要说出当前的倒计时,当倒计时减到0时,说“时光倒流”,然后发送一个广播消息,代码如图所示:
需要说明的是,这里的“说倒计时1秒”指令会持续1秒,所以不再需要使用“等待1秒”指令了。
2. 王子随鼠标移动
创建两个列表,分别命名为“x”和“y”,如图所示:
点击绿旗时,先将列表清空,同时设置好画笔颜色和粗细,切换到王子角色,编写代码如下:
使用鼠标拖拽角色,也就是当角色被点击时,角色跟随鼠标移动直到松开鼠标,移动的过程中,将x和y坐标保存到列表中,对应的代码如下:
简要说明两点:
1). 在拖拽角色的同时绘制内容,需要切换到全屏模式下才有效果;
2). 每移动一次,就将当前角色的x和y坐标保存到列表中,保存好的数据如图所示:
3. 王子沿原路返回
女巫角色在倒计时结束后发送了一个“返回”的广播消息,王子角色在接收到广播后,开始沿原路返回。
我们可以逐个取出列表中的x和y坐标值,将角色移到这些位置即可,不过需要注意的是,得从列表的尾部开始,直到列表的第一项。
因此,这里需要创建一个计数器变量,从列表最后一项开始,逐个取出对应列表现的x和y坐标,对应的编写代码如下:
当王子回到初始位置后,使用“全部擦除”指令将画笔绘制的轨迹擦除干净。
至此,我们的时光倒流作品就创作好了,注意要在全屏模式下进行测试,你可以拖拽出各种各样的路径,看看王子返回的效果,好好感受一下女巫强大的魔法?。

总结与思考

使用变量结合循环实现倒计时效果;
事件广播机制;
角色拖拽的编程实现;
列表的使用,尤其是结合循环遍历列表的操作;
使用Scratch画笔绘制图形。
本题难度中等,关键是要熟悉列表的数据思维,并运用计算思维,将线段拆分成一个个的点,然后通过列表记录每一个点的坐标。
列表是编程中非常重要的一种数据结构,应用非常广泛,是每一个编程爱好者必须要熟练掌握的编程技能。

添加 家长论坛微信
全部 0条评论