美文网首页
MacOS playground 47关 向左走 向右走 关卡思

MacOS playground 47关 向左走 向右走 关卡思

作者: 毛线帽1894 | 来源:发表于2020-11-30 00:18 被阅读0次

    这一关真的是一言难尽,本以为遇到开关就可以转弯,没想到大意了,还是要跟之前一样分析什么时候需要往哪转。

    经过分析,我们需要在循环体内先抓住宝石或处理完开关,再进行走路,否则如果先走路的话,因为上一步已经处理过了所在地的开关,就达到了开关已打开的条件,循环就不会再开始,小人就会待在原地,直到地球灭亡,宇宙消失。

    其次,本关卡的转弯情况也需要一个一个分析,然后根据统计下来的情况寻找规律。(其实还是找规律)我把所有的情况列了一个图示:

    由上图的结果推算条件,如果遇到前方可以走,不管左边右边是墙还是路,都只给一个向前走就可以;如果前方不能通行,一共会有4种情况,但是结果里面只有一种情况(左方不能走,右方可以走)是需要向右转的,那就在里面的循环体把这个情况单拎出来即可。于是代码如下:

    func get(){//获取宝石或者打开井盖的方法

        if isOnGem{

            collectGem()

        }else if isOnClosedSwitch{

            toggleSwitch()

        }

    }

    while !isOnOpenSwitch{//不在开着的井盖上时

        get()//获取宝石或者打开井盖的方法

        if isBlocked{//前方受阻

            if !isBlockedRight && isBlockedLeft{//右边不受阻,并且左边受阻

                turnRight()//右转

            }

            else{//其他3种情况

                turnLeft()//左转

            }

        }

        moveForward()//前进一步

    }

    非常出色,跳一个舞然后进入下一个章节吧~

    相关文章

      网友评论

          本文标题:MacOS playground 47关 向左走 向右走 关卡思

          本文链接:https://www.haomeiwen.com/subject/qqrlwktx.html