近期偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。「平常的一天」本关涉及了一个新的知识点:and(与),属于逻辑运算,在逻辑运算相关的关卡中,许多注释都开始变得像阅读理解一样,需要细致阅读,才能理出相应的条件。
第7行的实例发现,「与运算」它是被放在if后面,当作条件来使用的。像加减乘除这些算术运算符,运算所得的结果,都是一个数值,因此我们可以猜测,逻辑运算也会有运算的结果,而这个结果并非数值,而是条件的结果。想想看,if条件都能有哪些结果?
只有两个:True(真)和 False(假),这是一个布尔类型的结果,叫做布尔值。布尔是什么?这就好比在问「数」是什么?数字类型的结果叫数值,所以布尔类型的值就叫布尔值,布尔就是一种类型,这种类型的结果,只有两个,也就在计算机里面,True和False还有很多种叫法:「真和假」、「对和错」,甚至是「1和0」。逻辑运算就像算术运算一样,它也能算出特定的值,也就是布尔值,通常被当作if后的条件来使用。
我们来了解一下「与运算符」的使用:if 条件1 and 条件2,「与运算符」能够连接两个条件,条件1和条件2。只有当条件1和条件2同时成立的时候,整个运算式的结果才会为True;所以,「与运算符」又有另一个名字「且」。
我们还可以这么解读:只有当敌人存在且敌人的类型为食人魔时,英雄才发起攻击。如果条件1和条件2中,有任何一个条件不成立,则整个运算式的结果就会是False。这就像一条充电线,哪个头没插好,你的手机就充不了电,必须插座那一头插好,手机插口那一头也要插好。除了「与运算符」还有另一个逻辑运算符:「或运算符」or,英语好的同学们可能已经发现了,「与运算符」和「或运算符」的英文单词,恰好就是一对反义词:and 和 or —— 且 和 或,因此在作用上,「或运算符」也正好与「与运算符」相反。
if 条件1 or 条件2,在「或运算」中,只要任何一个条件成立,那么整个运算式就能输出True。而必须两个条件都不成立,运算式才会输出False。
所以「或运算」的代码可以这么解读:只要敌人存在或敌人类型为食人魔,那么英雄就發起攻击。总结:「与运算符」全对才能对,「或运算符」全错才会错。
此时再来看看需要填写的代码处),首先寻找最近的物品,然后判断,如果有名为“coin”的物品存在,则进行收集。看起来条件只是一句话,但其实隐含了两个条件:如果物品存在,且名为“coin”,才让英雄进行收集。因此我们可以在此处使用「与运算符」,另外还需要注意,物品的名字并非name,而是参考上方第七行代码,使用type,通关代码。