【网易官方】极客战记(codecombat)攻略-森林-逻辑结论logical-conclusion

前往星际飞机并从巫师秘会中解救 Lukacs。

简介

Lukacs 给你的金子不是他要分享的! 这个星球的巫师们并不高兴,并且召集他去回答他的罪行。 你会用最敏锐的思维去回答巫师的谜语,说服他们释放 Lukacs,让你回到森林里去! 去 Eszter 并获得三个秘密的真实 / 虚假的价值,你需要开始挑战。 然后运行向导的控制台并找出每个人的秘密 TRUE / FALSE 值。 使用括号确保一切按照正确的顺序进行计算!

默认代码

# 移动到 'Eszter' 身边,从他那得到三个密码值
hero.moveXY(24, 16)
secretA = hero.findNearestFriend().getSecretA()
secretB = hero.findNearestFriend().getSecretB()
secretC = hero.findNearestFriend().getSecretC()
# 如果 A 和 B 都为真,或者 C 为真,对 'Tamas'说 "TRUE"。否则,说"FALSE."。
# 记得用上括号好好整理你的逻辑。
tam = (secretA and secretB) or secretC
hero.moveXY(19, 26)
hero.say(tam)
# 如果 A 或 B 为真,并且 C 为真,对 'Zsofi'说 "TRUE" 。否则,说"FALSE."。
# 如果A或C为真,并且B或C为真,则向“'Istvan'说"TRUE"。 否则,请说"FALSE."。
# 如果 A 和 B都为真,或者 B 为真而 C 不为真,对 Csilla 说 "TRUE"。否则,说 "FALSE."。

概览

这关你得用高级的布尔运算确定对巫师说啥。像在 "逻辑圈" 里那样,你要说出三个秘密数字,还要用不同方式组合来解开谜题。不过这关,你得恰当结合 与 (AND) , 或 (OR) 和非 (NOT) 才能得出正确答案。

混合布尔操作符的时候,NOT (非) 优先于 AND(与),OR(或) 的优先级最低:

a = True and False or True
# =     False     or True
# = True
b = True or False and True
# =     True     or False
# = True
c = True or not True and True
# =     True     or False and True
# =     True     or False
# = True

嗯…… 好像是很晦涩难懂了。那我们用圆括号看清哪个先执行吧:

a = (True and False) or True
# =     False     or True
# = True
b = True or (False and True)
# = True or     False    
# = True
c = True or ((not True) and True)
# =True or     ( False and True)     
# = True or     False    
# = True

圆括号也可以改变他们优先级:

a = not True or True and False
# =     False     or     True     and False
# =     False     or False
# = False
b = not ((True or True) and False)
# = not (     True     and False)
# = not False
# = True

逻辑结论 解法

# 移动到 'Eszter' 身边,从他那得到三个密码值
hero.moveXY(24, 16)
secretA = hero.findNearestFriend().getSecretA()
secretB = hero.findNearestFriend().getSecretB()
secretC = hero.findNearestFriend().getSecretC()
# 如果 A 和 B 都为真,或者 C 为真,对 'Tamas'说 "TRUE"。否则,说"FALSE."。
# 记得用上括号好好整理你的逻辑。
tam = (secretA and secretB) or secretC
hero.moveXY(19, 26)
hero.say(tam)
# 如果 A 或 B 为真,并且 C 为真,对 'Zsofi'说 "TRUE" 。否则,说"FALSE."。
zso = (secretA or secretB) and secretC
hero.moveXY(26, 36)
hero.say(zso)
# 如果A或C为真,并且B或C为真,则向“'Istvan'说"TRUE"。 否则,请说"FALSE."。
ist = (secretA or secretC) and (secretB or secretC)
hero.moveXY(37, 34)
hero.say(ist)
# 如果 A 和 B都为真,或者 B 为真而 C 不为真,对 Csilla 说 "TRUE"。否则,说 "FALSE."。
csi = (secretA and secretB) or (secretB and (not secretC))
hero.moveXY(40, 22)
hero.say(csi)
本攻略发于极客战记官方教学栏目,原文地址为:

猜你喜欢

转载自www.cnblogs.com/codecombat/p/12422420.html