
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本关卡砖块长度是随机的,所以为了简洁代码不使用【for】循环而是采用【while】循环。为了代码整洁不使用过多的移动函数。在右下角提示中会告知用户是否有开关或宝石。
我的思路是如果有红宝石,就拾取然后左转,一直循环至结束。与教程答案思路相反,我是检测到有红宝石时运行内嵌套代码,关键在于第一行,需要添加逻辑运算符。取巧的一面在于每次有阻碍时必有红宝石,如果有阻碍且没有红宝石时外循环将会提前结束循环。最后外循环:在有阻碍 或 没有红宝石时 结束循环。外循环:在不阻碍 或 有红宝石时运行 内循环。外循环:内循环运行代码后向前一步。内循环:有红宝石时 运行 代码。
循环条件处添加【没有遇到宝石】的逻辑运算符,会导致遇到红宝石时直接忽略并在最后两块悬崖处来回反复循环,使循环代码无法彻底结束。我的思路是:没有遇到阻碍和没有红宝石时前进,并在遇到‘关闭的开关’时打开开关,遇到阻碍时右转,遇到宝石是停止循环后拾取宝石。通过观察和反复测试可以发现终点并非是最后两块悬崖处而是红色宝石,否则会陷入无限死循环。两个内循环都在一个外循环的平级里而并非是内循环里又嵌套一个内循环
本关提示需要使用右手定则可通过关卡,且需要绕一些远路。
条件如下:只能通过修改“navigateAroundWall()”自定义函数来优化算法,不能碰其他while函数里的代码。本章内容主要是要打破固有思维,注意观察已给出的线索与条件。线索一:当右边与前方受阻时,左转并前进一步。线索三:当右边没有受阻时,右转并前进一步。线索二:当右边受阻时,前进一步。
这样就有了两种转身方式,在没有遇到障碍时右转,遇到障碍时左转,遇到宝石时结束循环并拾取宝石,结束代码。本关要求先从脑海中过一遍小人要如何走到终点,所以第一步是将视角旋转至如图所示。这样就能清晰的感知到小人的转身路径,既只在遇到开关时会需要转身。内循环:如果遇到关闭的开关时打开开关,并执行第一步的自定义代码。这里的逻辑是判断,如果没有遇到阻碍时右转,遇到阻碍时左转。在遇到宝石时就会结束第二步循环代码
因为外循环会在遇到开启的开关时结束整套代码,会导致在这里开启开关时会意外提早结束代码,俗称bug。最后一步就不需要再添加任何代码了,因为已经遇到了开启的开关,所有的开关都已被打开,结束通关。如果左边(Left)有阻碍就右转(Right),反之,如果右边有阻碍就左转。首先恭喜在座的各位顺利进入学习编程1的最后一关,我们的努力终将会有回报。如果左边有阻碍就右转,反之,如果右边有阻碍就左转。所以需要手动







