
第三关 切换开关
▲任务描述
使用Swift命令,让Byte行动起来,去收集宝石,并且打开开关,如图2.14所示。

图2.14 游戏第三关界面
小贴士
图2.14中的①显示任务状态。在这一关中,总共需要收集到1枚宝石和打开1个开关,目前已经收集到了0枚宝石,未打开开关。
图2.14中的②“”为关卡选择按钮,点击后出现右侧图示,已完成的关卡会显示“
”。前期的关卡并不难,系统也允许选择关卡,但建议初学时不要跳关,保持学习的系统性。

此关卡中可用的相关命令如图2.15所示。

图2.15 浮现命令栏
▲任务分析
根据任务栏可知,本关卡增加了新的任务内容,除了要收集宝石,还需要打开开关,目前开关处于关闭状态,显示为“”,如果处于打开状态,显示为“
”。
根据场景地图可知,Byte需要先向前走2步,然后左转,再向前走1步,到达宝石所在位置;获取宝石后,继续向前走1步,然后左转,继续向前走2步,到达开关所在的位置;最后踩踏开关,即可打开开关,完成任务。

开关按钮介绍
▲解决方案
此关卡给出了4个可用命令:moveForward(),collectGem(),turnLeft(),toggleSwitch()。试试新命令toggleSwitch()的作用和效果。
命令t o g g le S w it c h ()
点击代码区域的空白处,选择浮出的命令栏中的toggleSwitch()命令,然后点击地图下方的“运行我的代码”图标,看看执行命令的效果吧。
命令效果:Byte轻盈腾空,然后双脚落地(猜想Byte一定是用自己的双脚去踩踏地上的开关,然后改变开关的开闭状态),如图2.16所示。

图2.16 命令toggleSwitch()运行效果
小贴士
“”是一个双态开关,每次的触发可使开关在“开”和“关”的状态之间进行切换。
在熟悉了新命令toggleSwitch()后,根据前面的任务分析,Byte的行进路线为“U”型,在过程中收集宝石,最后打开开关即可完成任务。一个供参考的命令组合解决方案如下。

运行的关键步骤如图2.17所示,经过向前走2步来到拐角处进行左转,然后前进1步后收集到宝石,接着前进1步后左转再前进2步,来到开关位置,最后打开开关,完成任务。

图2.17 运行关键步骤的效果
▲任务小结
①学会使用toggleSwitch()进行开关状态的切换。
②学会完成多个小任务。
③学会以正确的顺序使用命令完成任务。
▲任务拓展
1.在App中完成此关卡的任务
2.习题练习
任务场景再现:

运行微视频

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

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

3.任务拓展
如果任务拓展场景如图2.18所示,解决方案应该是怎样的?

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