今天我们进入“布尔逻辑”歌剧世界的后8关。
这次的攻略大约1200字,阅读时间大约10分钟。
我们可以简要回顾一下关于逻辑的基础知识。
基础知识
布尔逻辑里有三个逻辑符号:或,且,非。如果有A,B两个判断结果,A,B是yes或no。
如果“A或B”是yes,那么A,B当中至少有一个是yes;
如果“A且B”是yes,那么A,B都是yes;
如果“非A”是yes,那么A是no。
下面进入闯关游戏吧。
第128关
在这一关里,我们要使用and这个逻辑指令,来判断两个或者多个条件是否同时满足。
比如,上图中的老虎和熊同时睡觉的时候,我们的猴子和山羊才能动起来。
我们来看看已给出的代码:
在第2,6行里,我们需要加入until ... wait ... 的代码,在代码里需要用到and来判断老虎和熊是否同时睡觉去了。
修改后的代码如下:
点击运行看效果!
第129关
在这一关里,我们可以用or这个逻辑指令,判断老虎要么睡觉,要么玩耍去了。只要老虎不在虎视眈眈地把关,猴子就可以趁机去吃香蕉。
比如在上图中,老虎旁边有一个小球,那么老虎就多了一个分心的可能,要么睡觉,要么玩球。
不管如何,这时候小猴子都可以去吃香蕉。
代码如下:
显然,我们需要加入让小猴子去吃香蕉的代码。如下:
点击运行看效果!
第130关
这一关和上一关一样。
看右侧的代码区域,如下:
我们不需要第4-7行的代码,可以改为如下的代码:
点击运行看效果!
第131关
这一关和前两关的区别是,这一关多了一只熊。
我们一定要明确and和or的含义:
当老虎和熊同时分心的时候,小猴子才能去吃香蕉,这里需要用到and;
当老虎(熊)睡觉或者玩球的会后,小猴子都可以去吃香蕉,这里需要用到or。
看右侧的代码区域,如下:
我们需要在第6行加入第1,2行的代码,代码如下:
点击运行看效果!
第132关
这一关和前几关的区别在于,我们需要让山羊去吃香蕉(而小猴子只能在旁边看着)。
已给出的代码如下:
第2行的代码是错误的,需要考虑熊是否睡觉或者玩球的判断语句,如下:
点击运行看效果!
第133关
这一关是融合了前4关的情况,对于多个香蕉,可以采用for循环的方式,这在“for”循环王国里已经介绍过了。
已给出的代码如下:
在第2行,我们需要加入两行代码,在老虎睡觉或者玩球之前,小山羊和小猴子都需要等待。
代码如下:
点击运行看效果!
第134关
这一关也是一样,小猴子需要区吃两个香蕉,在吃每一个香蕉之前,小猴子都需要等待熊去睡觉了或者去玩球了。
右侧给出的代码如下,注意代码循环的对象是熊,而不是香蕉:
我们需要在第2行里,加入熊b是否睡觉或者玩耍的代码:
点击运行看效果!
第135关
这一关里,我们需要让小猴子和小山羊都分别吃到两个香蕉。而在他们吃香蕉前,需要在自己和香蕉之间的老虎在睡觉或者玩耍。
右侧给出的代码如下:
我们可以把等待老虎的过程写成一个函数,waitFor。
这样,我们就很方便地重复使用waitFor函数来让猴子,山羊等待某一只老虎睡觉或者玩耍了。
修改后的代码如下,注意我们还对猴子和山羊进行了循环处理,用变量stepper来代替monkey或goat中的某一个。
点击运行看效果!
到目前为止,“逻辑”歌剧这16关都已经被我们攻破了。
下期预告
下一次教程,我们会一起来闯过“不是”这一组关卡,其实也是逻辑指令中的“非”。