
第三关 收集、切换、重复
▲任务描述
本关卡的场景路线为一个矩形,Byte需要从起点出发,在路上收集到4枚宝石并打开4个开关。第三关界面如图3.14所示。

图3.14 第三关界面
本关卡中可用的相关命令如图3.15所示。

图3.15 浮现命令栏
小贴士
在学习了本关卡之后,后面使用的命令将不限于关卡所提供的命令,也可以使用自己封装的命令。
▲任务分析
本关卡的路线为矩形,在矩形的每一条边上均放置了1枚宝石和1个闭合的开关,同时根据Byte的运动方向来看,都是先遇到宝石然后是开关。将三维路线图转化为二维平面图,如图3.16所示。

图3.16 二维平面路线图
通过对图3.16平面路线图的观察,是否存在重复出现可以组合的行为呢?将每条边上相同部分进行框选,如图3.17所示。

图3.17 框选每边相同部分
在上一关卡中,我们学习并创建使用自己定义的函数,本关卡也可以编写一个新的函数,来处理多次出现的行为。我们可以从图3.17获取其中一个组合的命令:

现在将这个组合封装成一个函数,在本关卡中可以给此函数任取一个名称并给函数添加命令。这个函数的目的是获取宝石和打开开关,因此我们给函数命名为“collectGemAndToggleSwitch()”。具体操作如图3.18所示。

图3.18 获取宝石和打开开关的函数实现

创建函数
给函数命名并定义函数之后,即可通过函数名称来调用它,就像调用其他我们已经用过的函数一样,如图3.19所示。

图3.19 命令栏
完整的路线图如图3.20所示。

图3.20 完整的路线图
编程思维
函数的名字最好通俗易懂,最好可以通过函数的名字即可知道函数的功能。例如,“collectGemAndToggleSwitch()”即收集宝石并打开开关的意思。
▲解决方案
根据前面的任务分析,解决方案如下:

编程思维
合理识别重复的内容,将其封装成函数,将大大提升程序的简洁、美观、可读性。
关键步骤的运行效果如图3.21所示。

图3.21 关键步骤的运行效果
▲任务小结
①学会定义一个函数,并给函数命名,用于重复的模式。
②学会识别地图里面重复的模式。
▲任务拓展
1.在App中完成此关卡的任务

运行微视频
2.习题练习
(1)如果解决方案是这样的,能完成任务吗?如果不能,该如何修改?

(2)如果任务拓展场景如图3.22所示,该如何给出解决方案?

图3.22 拓展任务场景
你的思路: