儿童iPad编程:Swift语言Playgrounds(二)12世界四角

发表时间: 2019-07-01 10:58

这一关仍然是需要通过改变传送门的状态来过关。

世界四角

我们先创建两个变量gemCounter和switchCounter,用来给宝石和开关计数。

  • var gemCounter=0
  • var switchCounter=0

我们首先规划一下前进路线,我设计的路线是这样的:

  • 我发现一个规律:宝石或者开关都在传送门的四周,
  • 那么我首先把2个传送门都关闭,
  • 先走到橙色传送门上,然后把四周的两个开关打开。
  • 然后打开橙色传送门,传送到四周是四颗宝石传送门上,
  • 关闭橙色传送门,把四个宝石收集齐。
  • 然后走到有2个宝石的传送门上,把这两个宝石收集齐。
  • 然后打开绿色传送门,走到周围有4个开关的传送门。
  • 关闭绿色传送门,打开4个开关。

我根据这个路线规划,定义一个函数collectOrToggle(),从传送门开始,去采集宝石或打开开关,然后再回到传送门上。

  • 向前1步,
  • 采集宝石或打开开关,宝石数量+1或开关数量+1
  • 转身
  • 向前1步
  • 左转

定义采集宝石或打开开关函数

这个函数到现在,还没有完成,我们需要在转身前,加入何时打开以及关闭传送门的判断:

这里要特别注意:

gemCounter=2,是给变量gemCounter赋值2。

gemCounter==2,才是判断gemCounter的值是不是等于2。

“=”是赋值,“==”才是判断运算符。

根据我们的路线规划,开始时先关闭2个传送门,

  • if 开关数量==2且宝石数量==0,那么打开橙色传送门。
  • if 宝石数量==1,那么关闭橙色传送门。
  • if 宝石数量==6且开关数量==2,那么打开绿色传送门,
  • if 开关数量==3,那么关闭绿色传送门。

在转身前加入开关传送门的判断

最后是我们的循环主程序,如果宝石数量<6 或者 开关数量<6 就执行循环。

在循环中需要加入一个判断:

当收集完4颗宝石时,要从橙色传送门上,走到绿色传送门上。

最后的循环程序

这一关还是有相当大的难度的,希望你有足够的耐心,完成这一关的闯关任务。路线规划也有很多种,可以自己多去尝试。