首发!大二电信新生耗费二整晚用C++写了个基于蒙特卡洛树搜索思想的中国象棋AI(附代码乱写及解释乱讲

作者: 杨月水花分类: 校园学习 发布时间: 2024-03-23 03:34:57 浏览:40655 次

首发!大二电信新生耗费二整晚用C++写了个基于蒙特卡洛树搜索思想的中国象棋AI(附代码乱写及解释乱讲

ZGuitar:
棋子分数对象棋来说是一个太过简化的模型,因为地形很重要,很多时候制胜靠的是地形。当然这个模型对练习是很有效的。

【回复】回复 @恶灵的猫 :因为不同子走法不同,导致局面里棋子与点位的信息并不是简单的欧氏几何信息,要全面分析局面,至少应该像研究希格斯场那样,把不同名的子放在不同的场,任意两种场之间都有相互作用。这样分割之后才能将每种子所在的空间看作欧氏空间。局的信息包括两部分:一是子的分布(位置数量),二是一种子和另一种子的制约关系(在某一步下,掩护、碰撞、保护等等)。这样看,子的个数只是局的信息的子集的子集。具体来说,我们很容易制造这样的残局:红方是黑方子力两倍,但棋子的位置使得黑方已经定胜了;而残局开始前黑方的某一子被移动一格,子力没变,但黑方就因为一个子位置变了而不再是定胜了。
【回复】最后取胜靠的是势,棋子子力的力是换取势的方式
【回复】回复 @恶灵的猫 :你说的子力可以换取势,这是一个双方棋力相当时的动态竞争过程,但作为AI,要做的是棋力尽可能压倒对方。
长亭旧雪彡:
[doge]中国象棋软件有统一的Ucci协议,github上面也有开源的皮卡鱼软件,可以多了解一下

【回复】我也想说皮卡鱼,这玩意太狠了
自行车-鼠:
大佬,你这是策略构思到代码一共两个晚上嘛,太强了吧。一天500行代码,我只能写那种循环和简单递归,数据结构也简单的一天就300行还会有bug[笑哭]

【回复】因为是acmer,可能对我来说算简单的了,只是学了算法之后看看能不能做点其他的,就试试。[脱单doge]

中国象棋 搜索 人工智能 C++ 编程 思想

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!