• 【网易官方】极客战记(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)
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    Shell编程-05-Shell中条件测试与比较
    Shell编程-04-Shell中变量数值计算
    Shell编程-03-Shell中的特殊变量和扩展变量
    Shell编程-02-Shell变量
    Shell编程-01-Shell脚本初步入门
    Windows与Linux相互远程桌面连接
    awk基础05-自定义函数和脚本
    使用Kafka Connect创建测试数据生成器
    设置KAFKA
    Apache Kafka使用默认配置执行一些负载测试来完成性能测试和基准测试
  • 原文地址:https://www.cnblogs.com/codecombat/p/12422420.html
Copyright © 2020-2023  润新知