美文网首页
MacOS playground 41关 随机矩形 关卡思路

MacOS playground 41关 随机矩形 关卡思路

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

这一关提示里面说的是需要用while循环嵌套另一个while循环,我想了半天写出了这样的代码:

while !isOnOpenSwitch {     //没在开着的开关上时

//循环1:

    while is Blocked {     //如果不能前行

        turnRight()     //右转

    }

//循环2:

    while !isBlocked {     //如果能够前行

        moveForward()     // 前进一步

        if isOnClosedSwitch {     //如果在关闭的开关上

            toggleSwitch()     //打开开关

        }

    }

}

值得注意的是,最外面一个循环调节我一开始写成了 while !isOnCloseSwitch,结果在最后无法结束循环,可怜的小人一直在走来走去。。

但是看过网上其他人的写法,发现这样三重嵌套也可以:

while !isOnOpenSwitch{  //没找到开着的开关时,1

    while isBlocked {         //前面不能走。2

        while isOnClosedSwitch {  //找到闭着的开关时 //3

            toggleSwitch()  //3.3

        }

        turnRight() //2.2

    }

    moveForward()  //1.1

}

作者:PTE深圳IRE

链接:https://www.jianshu.com/p/61b916f61e37

这样写的好处是把判断都嵌套在一个大循环内,减少跳出次数,我的那个好处可能是毕竟直观(因为只有两层嵌套)。三层嵌套的值得加强理解学习。

放一个通关截图以资鼓励!

======================

后续:又更改了一版,发现这样也可以

while !isOnOpenSwitch {

    while !isBlocked {

        moveForward()

        if isOnClosedSwitch {

            toggleSwitch()

        }

        }

    turnRight()

}

并且发现上面网友的代码运行后,最后打开开关后,又多循环了一次,而且最里面的嵌套用if或者while都可以。庆幸我这个运行起来是没有问题的,不管是之前那一版还是现在这一版。新技能get!

相关文章

网友评论

      本文标题:MacOS playground 41关 随机矩形 关卡思路

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