Swift Playgrounds少儿趣编程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第四关 传送门练习

▲任务描述

本关是挑战关卡,有新元素出现,也许你还不知道该如何利用这个新元素,没关系,最终的达成目标依旧是使用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 任务拓展场景

你的思路: