zoukankan      html  css  js  c++  java
  • 【网易官方】极客战记(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)
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    《挑战程序设计竞赛》 读后感
    基于SOAP的xml网络交互心得
    不用客户端,轻松下视频
    在cmd窗口中查询android的sqlite3数据库表之步骤
    单链表的插入删除以及逆转
    java中排序一个字符串数组
    求质因数
    指针与引用的区别
    统计查询-sql
    ---随心买统计查询
  • 原文地址:https://www.cnblogs.com/codecombat/p/12422420.html
Copyright © 2011-2022 走看看