MacOS playground 46关 左转还是右转 关卡思路

2020-11-29  本文已影响0人  毛线帽1894

这一关我认为比前两关的判断条件简单,因为画面不是随机生成的,是固定的,所以我们可以通过分析每一个井盖的位置和四周特点找不同~

如图我们可以看出,一共六个井盖,固定条件是遇到井盖便左转或右转。但是向左还是向右,这是一个问题。

经过分析,6个井盖和对应的特点如下:

1.前面无阻碍 →(右转)

2.前面有阻碍 ←(左转)

3.前面有阻碍 ←(左转)

4.前面无阻碍 →(右转)

5.前面有阻碍 ←(左转)

6.前面有阻碍 ←(左转)

正好可以把前方有无阻碍和转的方向对应起来,无需其他条件(我真是个小机灵鬼),然后有了这一个条件就好办了许多,不用分成更多情况了。代码就随之得出:

func step(){

    if !isOnClosedSwitch {//不在井盖时

        moveForward()//前进一步

    }else{//在井盖时

        toggleSwitch()//打开井盖

        if !isBlocked{//前方无阻碍

            turnRight()//右转

        }else{//前方有阻碍

            turnLeft()//左转

        }

    }

}

while !isOnGem {//不在宝石上时

    step()//开启上述轮回

}

collectGem() //看到宝石时,抓住它!

上一篇下一篇

猜你喜欢

热点阅读