最新消息:

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

CodeMonkey 少儿编程 2106浏览 0评论

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

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

先复习一下基础知识:

基础知识

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

return;

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

return yes;

或者

return no;

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

return banana.rotten()

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

下面进入关卡~

第159关

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

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

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

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

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

修改后的代码如下:

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

点击运行看效果!

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

第160关

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

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

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

当然是让小猴子goto banana啦!

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

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

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

点击运行看效果!

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

第161关

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

有的时候,乌鸦耳朵有点背,所以小猴子需要不听地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关

我们可以把代码改成:

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

点击运行看效果!

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

第162关

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

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

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

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

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

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

只得到了两个星星!

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

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

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

其实我们可以压缩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关

点击运行看效果!

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

这时候可以三星通关!

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

第163关

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

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

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

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

修改后的代码如下:

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

点击运行看效果!

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

第164关

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

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

我们可以用

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

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

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

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

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

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

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

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

点击运行看效果!

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

第165关

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

可是如果有很多只乌鸦怎么办?比如上图中有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关

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

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

修改后的代码如下:

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

点击运行看效果!

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

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

 

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

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

 

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

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

您必须 登录 才能发表评论!