FC中国象棋里的老头思考很慢,是真的在运算,还是故弄玄...

  • 云雾飞舞
    感觉难度差不多
  • h
    hypnossz86
    开俩模拟器按照其中一个老头的走法和另一个小孩儿下
  • 以色列国防军
    这套软件开着打QQ上的象棋游戏包不亏!
  • 云雾飞舞
    好办法
  • 迪米特里
    知乎上有这问题
  • d
    deadbeef
    象棋的最优解问题是一个EXPTIME-complete的问题 意思是没有可能在有限时间内求出最优解(所以别听上面有人说用穷举 那是不可能的)
    因此不管是人类还是电脑都只能通过估算来做决策
    然而人类使用的估算算法是基于经验和学习来建模的 AI算法至少FC上不可能使用学习类算法

    AI算法的基本思路一般都是求得局部最优解 然后通过使用局部最优解来逼近全局最优解
    不同AI难度的区别在于 局部最优解的精度
    而这类问题却并不是局部最优能得到全局最优的
    因此对于使用完全不同的思维模式来解题的人类来说 或许根据相同评估算法得出的不同精度的局部最优解并没有什么感官上难度的明显差异

    举个例子 某算法认为 只要往高处走 就能达到这片区域的最高的山峰
    听起来很合理 但是假设这片区域有很多山峰呢
    按照这种算法 的确能到达某座山峰的顶端 但是到达的那座却很难是最高的山峰 而往往只是距离起点最近的山峰而已
    不同的难度对应这里算法对于“高”这个概念的认识 可能更高的难度能让算法找到更精确的“高”的方向
    但是这个算法能够到达的那个山峰可能并不会有太大的区别
  • p
    pf67
    lz在问老头的ai是不是真的比小孩的好,你们扯那么多算法实现干啥?
  • d
    deadbeef
    我不就是在说 虽然老头比小孩确实要算的复杂 但是跟人下的实际效果可能并不比小孩好么
  • h
    htwswn
    人家没准刚上完课呢。就不许显摆显摆,外加复习?
  • 自称浪漫派
    据说是小孩最厉害
  • s
    saico
    卧槽,科普一下都被喷秀优越,现在的人都浮躁成啥样了
  • a
    asdfg
    不解释”什么叫作好“,怎么说好还是不好呢,难道说”我觉得老头强/弱“就是合理的答案么

    他说的意思是老头比小孩的计算多,从计算机角度来说老头”应该“比小孩聪明,但是实际上未必如此……而已
  • k
    kara2000
    FC象棋那明显是数据库不足+CPU算力不足

    你到弗里茨14之类的软件里试试调整计算步骤上限,差一步难度差远了去了。
  • D
    DK.BurNIng
    那么到底是不是故弄玄虚呢?
  • H
    HEERO.W
    因为提问的人听不懂科普
  • 藤井紫
    一个yes/no的问题回答那么长一大段最后还没个明确结论,大部分人都不喜欢吧。科普要接地气,先回答了提问再阐述原理。

    ----发送自HUAWEI H60-L01,Android 4.4.2
  • Y
    Yui_hirasawa
    科普了这么多楼 感觉也没人正面回答楼主的问题
  • s
    siufeifei
    个人觉得是在运算中。

    ----发送自HUAWEI HUAWEI MT7-CL00,Android 4.4.2
  • 3
    3212huxin
    小孩开局比老头好,后面不知道,以上。
  • e
    eva02eva02
    即使算上一亿步,也没有说明fc运算能力不足。
  • p
    pgain2004
    2楼提的办法就已经可以了……顶多多跑几次模拟
  • m
    metalyuki
    楼主既没有问老头是不是真的厉害,也没有问老头为什么需要长时间计算,而只是问是不是真的在计算。
    这个问题只有知道FC象棋实际算法的人才能回答,否则全是所答非所问。
  • 風美由飛
    一句话就能完成科普的话牛津的通识读本就不会出到几百本了。
    —— fromS1 Nyan(NOKIA Lumia 526)来自: WindowsPhone客户端
  • e
    eva02eva02
    LZ的问题是真的在计算还是故弄玄虚
  • 砂户太郎
    LZ在s1问了个问题却来到了百度知道,谁再加两张图就是知乎了……
  • d
    dpheix1
    我觉得不是,小时候玩,小孩随便赢…老头有点压力…
    而且没有故弄玄虚的必要…

    要验证的话,开带debug模式的模拟器看看资源占用?
  • d
    deathomega
    讨论是不是在算,很多人都喜欢先战算的定义,这很正常。无论如何,这楼里有些人浮躁,喜欢喷别人,这是真的。

    ——— 来自Stage1st Reader For iOS
  • o
    oz01
    没可能在算
    fc又不支持多线程
    真的算的很慢的话
    整个游戏都应该卡住才对
  • q
    qwased
    求问,国际象棋和中国象棋的ai算法可以通用么?感觉游戏规则其实相差不大啊

    ----发送自JYT JY-S3,Android 4.4.4
  • 骷髅兵
    是故弄玄虚,我个只懂象棋规则的菜鸟,玩这个游戏,把老头杀成光头,被小孩杀得屁滚尿流……
  • 天兔
    我去,有几百本?印象中不超过100本的...
  • d
    deadbeef
    在每一个TICK只计算若干步然后更新一次画面 对于单线程来说也不是什么难事
    事实上游戏编程至今 绝大多数也都是单线程
    仅仅因为单线程就判断不是在算 未免有点鲁莽
  • o
    oz01
    一个FC游戏,还是预算很低的,哪会搞这么复杂
  • d
    deadbeef
    有人提问 如何将一辆吊车抬到50楼的楼顶 一群人争论半晌 最后有人无意间问了一句为何要问这种问题
    大家才惊讶的发现 其实提问的人只是需要一部塔吊

    直接提起的问题往往并不一定是提问者真正想要解决的问题
    我认为 回答者出于帮助提问者解决问题的出发点 应该更周全的设想提问者可能会需要的答案
    而不应该只是为了表现自己的语言理解能力 单纯精确的对提问者的提问给出仅仅一句的答案

    LZ的提问虽然是问的不同难度计算是否在真的进行
    但是我觉得LZ会产生这种疑问的核心 还是在于帖子正文的那句 感觉难度差不多
  • d
    deadbeef
    但是小孩难度和老头难度会走不同的棋谱
    就说明在算法中一定会有一些细节差异

    而让用户无故等待这种对于棋类来说最降低用户体验的事情
    我觉得真的没有必要特意故弄这个玄虚
    毕竟当年又没有逼格的概念

    另外 我觉得只是在AI算法中的一些固定点插入一些画面更新
    根本不需要繁杂的线程调度 对于预算低的FC游戏也不会太难
  • 号码被盗
    我就记得第一步把帅往上走一步,老头就卡住了。。。。
  • 拜拜
    那么有办法让老头快点吗
  • M
    Moodyblue
    知乎式傻逼。一个傻逼问题也回答3000字。
  • h
    hourousha
    中断驻留之类的技能,难道不是单任务系统时代程序员的基本功么。
  • o
    oz01
    三流FC程序员的基本功恐怕难说