近期偏向鍛煉用戶的基本語法結(jié)構(gòu)和計算機思維,讓大家熟悉極客戰(zhàn)記的操作與代碼的使用。「平常的一天」本關(guān)涉及了一個新的知識點:and(與),屬于邏輯運算,在邏輯運算相關(guān)的關(guān)卡中,許多注釋都開始變得像閱讀理解一樣,需要細致閱讀,才能理出相應(yīng)的條件。
第7行的實例發(fā)現(xiàn),「與運算」它是被放在if后面,當(dāng)作條件來使用的。像加減乘除這些算術(shù)運算符,運算所得的結(jié)果,都是一個數(shù)值,因此我們可以猜測,邏輯運算也會有運算的結(jié)果,而這個結(jié)果并非數(shù)值,而是條件的結(jié)果。想想看,if條件都能有哪些結(jié)果?
只有兩個:True(真)和 False(假),這是一個布爾類型的結(jié)果,叫做布爾值。布爾是什么?這就好比在問「數(shù)」是什么?數(shù)字類型的結(jié)果叫數(shù)值,所以布爾類型的值就叫布爾值,布爾就是一種類型,這種類型的結(jié)果,只有兩個,也就在計算機里面,True和False還有很多種叫法:「真和假」、「對和錯」,甚至是「1和0」。邏輯運算就像算術(shù)運算一樣,它也能算出特定的值,也就是布爾值,通常被當(dāng)作if后的條件來使用。
我們來了解一下「與運算符」的使用:if 條件1 and 條件2,「與運算符」能夠連接兩個條件,條件1和條件2。只有當(dāng)條件1和條件2同時成立的時候,整個運算式的結(jié)果才會為True;所以,「與運算符」又有另一個名字「且」。
我們還可以這么解讀:只有當(dāng)敵人存在且敵人的類型為食人魔時,英雄才發(fā)起攻擊。如果條件1和條件2中,有任何一個條件不成立,則整個運算式的結(jié)果就會是False。這就像一條充電線,哪個頭沒插好,你的手機就充不了電,必須插座那一頭插好,手機插口那一頭也要插好。除了「與運算符」還有另一個邏輯運算符:「或運算符」or,英語好的同學(xué)們可能已經(jīng)發(fā)現(xiàn)了,「與運算符」和「或運算符」的英文單詞,恰好就是一對反義詞:and 和 or —— 且 和 或,因此在作用上,「或運算符」也正好與「與運算符」相反。
if 條件1 or 條件2,在「或運算」中,只要任何一個條件成立,那么整個運算式就能輸出True。而必須兩個條件都不成立,運算式才會輸出False。
所以「或運算」的代碼可以這么解讀:只要敵人存在或敵人類型為食人魔,那么英雄就發(fā)起攻擊??偨Y(jié):「與運算符」全對才能對,「或運算符」全錯才會錯。
此時再來看看需要填寫的代碼處),首先尋找最近的物品,然后判斷,如果有名為“coin”的物品存在,則進行收集??雌饋項l件只是一句話,但其實隱含了兩個條件:如果物品存在,且名為“coin”,才讓英雄進行收集。因此我們可以在此處使用「與運算符」,另外還需要注意,物品的名字并非name,而是參考上方第七行代碼,使用type,通關(guān)代碼。