少儿编程游戏CodeMonkey通关攻略:第159-165关

今天我们进入“返回”小镇的后7关,即第159关至第165关。

应某公号粉丝要求,第162关有更仔细介绍。

先复习一下基础知识:

基础知识

“返回”在编程中经常用到。是每个函数必备的一部分,在我们写完一个函数的时候,我们都习惯性地会在函数最后一行写上return。比如:

return;

这样就不返回任何值。当函数是一个判断函数的时候,就可以让函数返回判断的结果,比如

return yes;

或者

return no;

当然,我们也可以直接返回一个判断语句,比如:

return banana.rotten()

来判断香蕉是否坏了,如果香蕉坏了,banana.rotten()=yes,否则banana.rotten()=no。

下面进入关卡~

第159关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第1张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第2张图片

return的意思就是返回,既然函数已经返回了某一个值,就不会再执行return之后的操作。

在上图右侧的代码区域内,return no之后就不会再执行return yes。

因为我们需要小猴子goto banana,所以foo()函数返回的应该是yes。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第3张图片

修改后的代码如下:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第4张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第5张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第6张图片

第160关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第7张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第8张图片

在这一关里,我们需要say something来吓跑乌鸦!

在上图右侧的代码框里,我们已有两行代码吓跑乌鸦,但是在吓跑乌鸦之后呢?

当然是让小猴子goto banana啦!

在第3行上加上一行代码就可以啦,如下:

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第9张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第10张图片

第161关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第11张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第12张图片

有的时候,乌鸦耳朵有点背,所以小猴子需要不听地say something,直到乌鸦被吓跑为止。

我们可以用crow.watching()这个函数来判断乌鸦是否在看着小猴子,既然crow.watching()函数是判断语句,那么crow.watching()函数自己就会返回yes或no。

当乌鸦被吓跑之前,crow.watching()函数返回yes,那么not crow.watching()返回的就是no。这个时候,safe()函数返回的是no。小猴子需要一直say something,直到乌鸦被吓跑。

当乌鸦被吓跑之后,crow.watching()函数返回no,那么not crow.watching()返回的就是yes。这个时候,safe()函数返回的是yes。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第13张图片

我们可以把代码改成:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第14张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第15张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第16张图片

第162关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第17张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第18张图片

在上图中,我们看到有两只乌鸦,那么很简单地,我们可以把上一关的代码借鉴过来,就有一个这样的safe函数:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第19张图片

在这些代码后面,我们需要写入判断小猴子是否可以走向香蕉的代码,如下:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第20张图片

点击运行之后,我们先不看效果,先看结果:

只得到了两个星星!

这是因为我们用到了很笨的方法,用了过多的代码。

而系统要求我们用6行或者更少的代码,才能得到3个星星!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第21张图片

其实我们可以压缩safe函数。

在原来的safe函数,我们用了4行来判断两只乌鸦是否在看着小猴子,这是极其浪费的。

事实上,我们可以用一行就够了。

怎么写?

还记得我们之前学到的逻辑语句吗?and? or?not?

因为我们要判断两只乌鸦是否同时都飞走了,所以我们需要用and连接两个判断语句。

即crows[0].watching() and crows[1].watching()。

当crows[0]和crows[1]都飞走了,那么我们有crows[0].watching()=no和crows[1].watching()=no,等价于not crows[0].watching()=yes和not crows[1].watching()=yes。于是我们有:

not crows[0].watching() and not crows[1].watching()的返回值是yes。

(yes and yes=yes,no and no=no,yes and no =no, yes or no = yes)。

下面是我给出的代码:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第22张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第23张图片

这时候可以三星通关!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第24张图片

第163关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第25张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第26张图片

上图中的场景和前几关类似,只是香蕉编程了3个。这一关里,我们对香蕉可以用for循环。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第27张图片

不过我们还是要在第2,3行里写入判断乌鸦是否都飞走的代码。

修改后的代码如下:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第28张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第29张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第30张图片

第164关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第31张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第32张图片

这一关里,我们看到由三只乌鸦,这其实和前几关没有什么区别。

我们可以用

nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching()

来判断三只乌鸦是否全都飞走了。

上图右侧的代码区域如下:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第33张图片

修改后的代码如下,事实上,我们并不需要判断三个乌鸦是否全都飞走了 ,在这个代码里,我们只用判断乌鸦0和乌鸦2都飞走就可以了(大概是因为乌鸦按照顺序飞走吧),但是在现实的情形中,我还是强烈建议用

return nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching()

来代替如下代码框里的第3行。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第34张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第35张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第36张图片

第165关

少儿编程游戏CodeMonkey通关攻略:第159-165关_第37张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第38张图片

可是如果有很多只乌鸦怎么办?比如上图中有5只乌鸦,难道我们要用

nor crows[0].watching() and nor crows[1].watching() and nor crows[2].watching() and nor crows[3].watching() and nor crows[4].watching() 

这样的代码吗?

那如果有100只乌鸦怎么办?

答案是,该用for循环的时候,就用for循环,循环是一个好东西。

比如在如下的代码框里,我们就可以用for循环对乌鸦进行遍历,对每一只乌鸦,我们都可以判断其是否在看着小猴子。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第39张图片

如果乌鸦c在看着小猴子,那么c.watching()=yes.

这时候,小猴子是不能走动的,所以如果c.watching()=yes,那么safe函数应该return no。

修改后的代码如下:

少儿编程游戏CodeMonkey通关攻略:第159-165关_第40张图片

点击运行看效果!

少儿编程游戏CodeMonkey通关攻略:第159-165关_第41张图片
少儿编程游戏CodeMonkey通关攻略:第159-165关_第42张图片

好啦,到现在为止,return函数的全部15关都介绍完了。


下一次,我会给大家介绍成功的“钥匙”这一部分,一共14关,我会分2次教程介绍,每次包括7关。

少儿编程游戏CodeMonkey通关攻略:第159-165关_第43张图片


顺祝大家父亲节快乐,过两年我应该也可以过上这个节日了。

(关于我构思的机器学习的介绍会在以后的文章中给出,会从分类和回归这两个部分讲起。希望大家会喜欢。)

你可能感兴趣的:(少儿编程游戏CodeMonkey通关攻略:第159-165关)