本期任务由“舒克老师”提供,特此感谢!
本次任务主题《电梯模拟》
电梯在我们的生活中无处不在,起着非常重要的作用,对于小朋友们来说,电梯偶尔也是一个十分好玩的玩具,众多的按钮,上上下下,今天,舒克老师给大家带来的任务,就是使用scratch来模拟一部电梯的运行。
任务难度
可根据自身水平挑战不同级别难度:
根据要求简单绘制,或使用提供素材,以动画形式模拟电梯运行,要求至少体现出:门的开关、点击楼层按钮后抵达该楼层(无需考虑同时按下多个楼层的情况),显示当前楼层即可。
根据要求绘制,或使用提供素材,模拟简单的电梯互动,在入门级的基础上增加要求:按下楼层按钮变亮,抵达不同楼层开门后展示不同的背景,按钮灯熄灭,电梯必须关门后才能运行。
复杂算法设计,根据要求绘制,或使用提供素材,在初级的基础上增加:楼层变化的显示,如由一层抵达四层中间要逐层显示(当前楼层2 ,当前楼层3)体现出楼层的变化。电梯运行过程中不能开门。
高级功能,根据要求绘制,或使用提供素材,在中级的基础上实现同时按下多个楼层按钮,逐个抵达开门。
在满足高级挑战前提下,尽力实现更多现实中电梯的模拟效果,可以是功能上的,外观上的,让电梯更加智能,充分发挥你的创造力。
任务素材
电梯可自行绘制,也可以下载我们提供的素材:素材下载
任务指引
此次任务挑战动画部分,主要是电梯门的开关、按钮的状态、开门后的场景变化等
1、电梯门的控制
使用上述模块可以控制电梯门在一定时间内移动位置,实现开关,案例中通过增加白色覆盖区域使得电梯门移开后是被遮住隐藏的。
挑战难点:模拟真实电梯开门变化,现实中的电梯开门不是完全匀速的。
2、按钮状态
可以通过造型切换来实现按钮的弹起与按下时的区别。
挑战难点:自动熄灭,电梯的楼层按钮在到达楼层后便会熄灭该楼层按钮。
3、场景变化
通过背景切换模块实现,小技巧:场景初通过名称确定外也可以使用编号确定。
挑战难点:固定每个楼层相对应的场景。
4、变量
此次挑战核心功能部分,是根据楼层按钮进行互动,主要通过模块“变量”实现。
变量,是计算机语言当中用于存储数据的模块,我们可以将它想象成一个容器,可以存储数字和字母、文字。
在此次挑战当中,变量起着重要的作用,用于记录和体现楼层的选择和变化,一个程序当中,我们可以设置多个变量来对应多个不同的数据存储需求。
对于电梯模拟,基本的变量需求有一下几个:
(1)当前楼层-用来实时记录当前电梯所处楼层,并进行显示。
(2)所选楼层-用来记录互动时所按下的楼层
5、链表
当我们进行更高级挑战,需要处理一次按下多个楼层时,需要用到数据里的另一个模块,链表。
链表-可以一次记录多个数据的存储模块,也可以根据存储顺序排位进行各种操作。
链表功能作为高级挑战这里不做过多说明,有能力的同学可以自行探索。
6、逻辑
逻辑-电梯的算法逻辑,在电梯的实际使用过程中有着一套复杂的算法逻辑,来处理电梯是上楼还是下楼,尤其是在多个楼层按钮被按下时,哪个优先处理尤为重要,在这次电梯模拟挑战力无需如此复杂,但是基本的逻辑算法还是必须的。下面对于相关模块做简单说明:
(1) 如果……否则……
上图中两个模块属于逻辑判断中最常用的。在挑战中主要用于判断当前楼层是否被选,以及高级挑战中,电梯应当上行或是下行。
(2)数学运算
上述这些都是此次挑战中可能使用到的相关模块。
挑战引导就到这里了,各位同学根据自身的水平和能力,选择适合自己的挑战难度,来挑战自己吧!
本站内容未经许可,禁止任何网站及个人进行转载。