本期任务由“舒克老师”提供,特此感谢!

本次任务主题《电梯模拟》

  电梯在我们的生活中无处不在,起着非常重要的作用,对于小朋友们来说,电梯偶尔也是一个十分好玩的玩具,众多的按钮,上上下下,今天,舒克老师给大家带来的任务,就是使用scratch来模拟一部电梯的运行。

任务难度

可根据自身水平挑战不同级别难度:

Scratch编程任务《电梯模拟》

根据要求简单绘制,或使用提供素材,以动画形式模拟电梯运行,要求至少体现出:门的开关、点击楼层按钮后抵达该楼层(无需考虑同时按下多个楼层的情况),显示当前楼层即可。

Scratch编程任务《电梯模拟》

根据要求绘制,或使用提供素材,模拟简单的电梯互动,在入门级的基础上增加要求:按下楼层按钮变亮,抵达不同楼层开门后展示不同的背景,按钮灯熄灭,电梯必须关门后才能运行。

Scratch编程任务《电梯模拟》

复杂算法设计,根据要求绘制,或使用提供素材,在初级的基础上增加:楼层变化的显示,如由一层抵达四层中间要逐层显示(当前楼层2 ,当前楼层3)体现出楼层的变化。电梯运行过程中不能开门。

Scratch编程任务《电梯模拟》

高级功能,根据要求绘制,或使用提供素材,在中级的基础上实现同时按下多个楼层按钮,逐个抵达开门。

Scratch编程任务《电梯模拟》

  在满足高级挑战前提下,尽力实现更多现实中电梯的模拟效果,可以是功能上的,外观上的,让电梯更加智能,充分发挥你的创造力。

任务素材

电梯可自行绘制,也可以下载我们提供的素材:素材下载

Scratch编程任务《电梯模拟》

任务指引

  此次任务挑战动画部分,主要是电梯门的开关、按钮的状态、开门后的场景变化等

1、电梯门的控制

Scratch编程任务《电梯模拟》

  使用上述模块可以控制电梯门在一定时间内移动位置,实现开关,案例中通过增加白色覆盖区域使得电梯门移开后是被遮住隐藏的。

挑战难点:模拟真实电梯开门变化,现实中的电梯开门不是完全匀速的。

2、按钮状态

Scratch编程任务《电梯模拟》

可以通过造型切换来实现按钮的弹起与按下时的区别。

挑战难点:自动熄灭,电梯的楼层按钮在到达楼层后便会熄灭该楼层按钮。

3、场景变化

Scratch编程任务《电梯模拟》

通过背景切换模块实现,小技巧:场景初通过名称确定外也可以使用编号确定。

挑战难点:固定每个楼层相对应的场景。

4、变量

此次挑战核心功能部分,是根据楼层按钮进行互动,主要通过模块“变量”实现。

Scratch编程任务《电梯模拟》

  变量,是计算机语言当中用于存储数据的模块,我们可以将它想象成一个容器,可以存储数字和字母、文字。

  在此次挑战当中,变量起着重要的作用,用于记录和体现楼层的选择和变化,一个程序当中,我们可以设置多个变量来对应多个不同的数据存储需求。

  对于电梯模拟,基本的变量需求有一下几个:

  (1)当前楼层-用来实时记录当前电梯所处楼层,并进行显示。

         Scratch编程任务《电梯模拟》

  (2)所选楼层-用来记录互动时所按下的楼层

         Scratch编程任务《电梯模拟》

5、链表

  当我们进行更高级挑战,需要处理一次按下多个楼层时,需要用到数据里的另一个模块,链表。

  链表-可以一次记录多个数据的存储模块,也可以根据存储顺序排位进行各种操作。

  链表功能作为高级挑战这里不做过多说明,有能力的同学可以自行探索。

6、逻辑

  逻辑-电梯的算法逻辑,在电梯的实际使用过程中有着一套复杂的算法逻辑,来处理电梯是上楼还是下楼,尤其是在多个楼层按钮被按下时,哪个优先处理尤为重要,在这次电梯模拟挑战力无需如此复杂,但是基本的逻辑算法还是必须的。下面对于相关模块做简单说明:

(1) 如果……否则……

Scratch编程任务《电梯模拟》

上图中两个模块属于逻辑判断中最常用的。在挑战中主要用于判断当前楼层是否被选,以及高级挑战中,电梯应当上行或是下行。

(2)数学运算

Scratch编程任务《电梯模拟》

上述这些都是此次挑战中可能使用到的相关模块。

挑战引导就到这里了,各位同学根据自身的水平和能力,选择适合自己的挑战难度,来挑战自己吧!