
第四关 传送门练习
▲任务描述
本关是挑战关卡,有新元素出现,也许你还不知道该如何利用这个新元素,没关系,最终的达成目标依旧是使用Swift命令,让Byte行动起来,去收集宝石,并且打开开关。游戏第四关界面如图2.19所示。

图2.19 游戏第四关界面
小贴士
图2.19中的①、②为传送门,传送门都是成对出现的。
此关卡中可用的相关命令如图2.20所示。

图2.20 浮现命令栏
▲任务分析
根据任务状态栏可知,本关卡与上一关卡需要完成的任务相似,即获取1枚宝石并打开1个开关。如何打开开关呢?很简单,按照图2.21的路线图即可到达开关位置。那么,如何获得宝石呢?也许你会走到图2.22所示的位置尝试去获取宝石,可是前路被阻,想想别的路线吧!

传送门介绍

图2.21 到达开关的路线

图2.22 尝试到达宝石的路线
观察场景地图可知,开关的前方有一个新元素“传送门”。当Byte走到开关位置时,先打开开关,然后向前走1步,来到传送门上方时会掉入传送门的通道中,从另一头的传送门出现,继续行走到宝石位置,获取到宝石,即可完成任务。
小贴士
关于传送门“”:Byte进入传送门时,面向的方向即为它从传送门出口出来时面向的方向,即穿过传送门时,与Byte在到达目前传送门时保持相同的朝向。
▲解决方案
本关卡给出了4个可用命令:moveForward(),collectGem(),turnLeft(),toggleSwitch()。这4个命令均是我们熟悉的命令。
根据前面的任务分析,一个供参考的Byte行进路线如图2.23所示,命令组合解决方案如下:


图2.23 参考路线图
运行的关键步骤效果如图2.24所示。图a是先到达开关位置,打开开关;图b是前进走1步,来到传送门上方;图c中可以看到Byte从一个传送门位移到另一个传送门出口,并且Byte朝向与进入传送门之前一致;图d则是行进到宝石位置,获取到宝石,最终完成任务。

运行微视频

图2.24 运行关键步骤的效果
根据图2.23的路线,我们可以顺利完成任务,但是这是唯一的解决方案吗?当然不是!回看任务要求:获取宝石、打开开关。前面给出的参考方案是先打开开关,后获取宝石。如果把顺序对调,先获取宝石,再通过传送门回到开关位置去打开开关,是否也可以完成任务呢?请尝试!
▲任务小结
①学会使用传送门进行位移。
②学会完成多个小任务。
③学会以正确的顺序使用命令完成任务。
④学会尝试多种方式完成任务。
▲任务拓展
1.在App中完成此关卡的任务
2.习题练习
任务场景再现:

(1)如果解决方案是这样的,能完成任务吗?如果不能,该如何修改?

(2)如果解决方案是这样的,能完成任务吗?如果不能,该如何修改?

3.任务拓展
如果任务拓展场景如图2.25所示,如何给出解决方案?

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