今天我们一起来进入“For循环”森林的最后5关:第66-70关!
准备好了吗?
Let's Go!
第66关
猴博士告诉咱,鳄鱼不能用step指令前进,只能用turn和turnTo进行转向操作。在这几关里,我们假设鳄鱼是善良的,也就是说,鳄鱼不会去吃猴子。
But!
这只是在游戏里,如果去动物园,千万不要靠鳄鱼太近,鳄鱼可能会吃了你的。特此警告!
这是第66关的操作界面:
我们看到三只鳄鱼平行地横在猴子和香蕉中间。如果不知道怎么写鳄鱼的名称,可以点击鳄鱼背部,就会出现所有鳄鱼的列表名称,如crocodiles;和被点名的鳄鱼的代号,如crocodiles[0]。
要想让猴子吃到香蕉,可以分两步走,第一步:让鳄鱼统一朝向香蕉;第二步:猴子走向香蕉。
代码如下:
点击运行,效果如下:
是不是很满意?连鳄鱼都被俺老孙收拾地服服帖帖的!
第67关
这一关开始,猴博士的提示是啥意思?难道鳄鱼集体罢工了?
看看这一关的界面:
我们发现猴子貌似面向的是右边,不是正对着香蕉。这会出现什么问题呢?
而且鳄鱼七扭八歪的,不过这倒无关紧要,因为只需要用turnTo这个指令,就可以让鳄鱼面向我们想让他们统一面向的方向。
在这里,我们用下面这段代码让鳄鱼统一面向香蕉。
这段代码最后一行是让猴子走向香蕉。
确定没有问题吗?
先点击运行看看吧!
我们发现鳄鱼倒是很听话,可是猴子直接掉进水里了。
任务失败!
原因是?
是因为猴子没有面向香蕉,所以在让猴子走向香蕉前,我们需要让猴子面向香蕉。
修改后的代码如下:
这次我们点击运行看看会不会出现什么新问题。
过程非常顺利,猴子成功吃到香蕉!
第68关
猴博士告诉咱,现在越来越难吃到香蕉了。
看看这一关的界面。
猴子面前横着三只鳄鱼,就算猴子经过鳄鱼走到了对面的小岛上,但是还要绕过很多小岛才能吃到这些小岛另一头的香蕉。
这个吃香蕉任务分成两部分。第一部分是让猴子走到对面的小岛上。第二部分是让猴子沿着那些小岛吃到小岛另一头的香蕉。
下面先进行第一部分:让猴子走到对面的小岛上。
代码如下:
点击运行,过程如下:
再进行第二部分:让猴子沿着那些小岛吃到小岛另一头的香蕉。
代码如下:
点击运行,过程如下:
整个代码如下:
1-3行是第一部分:让猴子走到对面的小岛上。
4-6行是第二部分:让猴子沿着那些小岛吃到小岛另一头的香蕉。
点击运行,效果如下:
我们发现猴子在踏上的第一个小岛上转了270度,这有点不正常。
看看结果:
果然,这段代码只得到了2颗星!
猴博士告诉咱,只用5行代码就可以了。而我们用了6行。那么哪一行是多余的呢?
其实这两部分应该这样分:
第一部分:让鳄鱼转向最左边的那个小岛;
第二部分:让猴子依次踏上每一个小岛。
也就是第3行代码是多余的,这行代码让猴子踏上第一个小岛,即islands[0]。
代码如下:
1,2行代码运行第一部分:让鳄鱼转向最左边的那个小岛;
删掉第3行代码。
4-6行代码运行第二部分:让猴子依次踏上每一个小岛。
效果如下:
这下得到3颗星啦!
第69关
猴博士说这关真的很难,不过咱可是编程达人,迎难而上吧!
这是这一关的界面:
猴子周围的四个小岛上分别有1只香蕉,鳄鱼趴在猴子和香蕉之间。
面对这种情况,我们只能挨个挨个香蕉的突破,毕竟猴子不是孙悟空,不能分出4只猴子。
那么第一行代码可以是这样的:
这行代码是在香蕉中循环,每个香蕉循环一次。
对于每个香蕉,我们希望猴子与它之间的鳄鱼搭起一座友谊的桥梁,但是我们暂时无法精确控制某只鳄鱼,所以我们让所有的鳄鱼都面向那个香蕉,代码如下:
当所有的鳄鱼面向某个香蕉之后,我们还需要写如下代码:
1. 让猴子面向那个香蕉(turnTo b);
2. 走向香蕉(step distanceTo b);
3. 面向木筏(turnTo raft);
4. 走回到木筏(step distanceTo raft)。
全部代码如下:
点击运行,效果如下:
恭喜你!闯关成功!
第70关
这是“For循环”王国的最后一关!
加油,你马上就要成功了!
我们看看这一关的界面:
在左边的图形界面里,六只鳄鱼懒散地趴在水中,等待着我们的指挥;三只香蕉分布在三个岛上,这三个岛与猴子所在的小岛组成了四个角。
我们分析一下,猴子第一个吃到的香蕉只能是左下角的那个,然后是右下角的那个,最后是右上角的那个。
要想让猴子吃到左下角那个香蕉,至少左边那两只鳄鱼要面向这个香蕉,我们依然是让所有鳄鱼都面向这个香蕉,然后让猴子去吃那个香蕉。然后再解决右下角的那个香蕉,最后是右上角的香蕉。
在右边的代码框里有三行如下的代码:
这三行代码是让猴子面向香蕉b,然后走向香蕉b。
我们不能直接走向香蕉b,所以在第2行和第3行之间,我们需要加上让所有鳄鱼都面向香蕉b的代码,结果如下:
点击运行,效果如下:
就这样,我们就闯过了这一关!
是不是觉得,其实也没那么难?
下一次我们一起进入“函数”农场,尝试设计各种不同的函数去解决实际问题。
希望孩子们充分享受编程的乐趣~
周末愉快!