中国象棋AI算法研究

news/2024/11/7 21:22:35/

软件:象棋旋风6.2

设置一个困局,人很容易看出最优着法,测试象棋软件的局面评估算法

先上图:

如图:显然这是黑方的一个困局,虽然比红方多一个车和两个馬,但都被困住了,

此时人工对局正确着法显然是:

兵二平三,将6平5,兵三平四,将5退1,兵四进一,将5退1,兵四进一;

7步绝杀

显然,这是最优着法,其它着法绝杀步数都比7步多,搞不好还可能和棋。

下面我们来看看软件的着法:

-------------------------------------------------------------------------------------------------------

用14层的软件着法是如下:

用24层的软件着法如下:

26层的着法如下:

第一步走了兵二平三,接下来将6平5,后兵八平七...

可见,旋风的局面评价也是主要以子力价值为主,而上图的结果还跟所谓的“水平线效应”有关;

所谓"水平线效应"打个比方:

    假设程序的搜索深度是5层,现在假设在第5层你吃到了一个兵。程序可能会认为这个局面稍稍有利,当然会这么走下去。然而,你能看得更深远些,你发现吃了兵以后你的车就被追着吃逃不掉了 ,就完蛋了!

 

下篇将详细介绍象棋AI算法的实现


http://www.ppmy.cn/news/430076.html

相关文章

java实现中国象棋3:走棋规则的实现

前言 之前我们已经实现了棋子的移动,但是可以发现棋子可以任意移动,不遵循中国象棋的规则,这篇博客便是为了实现中国象棋的走棋规则。在这里默认大家都已经知道中国象棋走棋的规则,如果不知道请自行百度学习。 一、设计 findnum…

Java课程设计—中国象棋(源代码及视频)

你好,我是罡罡同学! 代码谱第一页忘掉心上人,最后一页。。。。。。 打赏一点钱,帮我买包辣条,继续创作,谢谢大家! 大家关注微信公众号 罡罡同学 回复中国象棋 就可以免费获得压缩包啦&#xf…

阿尔法贝塔剪枝——中国象棋人机对战

alpha-beta剪枝算法实现中国象棋人机对战 Github仓库:https://github.com/dick20/Artificial-Intelligence 问题介绍 本实验要求编写一个中国象棋博弈程序,使用alpha-beta剪枝算法,实现人机对弈。因为是人机博弈,因此我们需要使…

【C++】C++下的简易中国象棋

参考自Originum学长的博客,个人进行了一些小修改, 原博客地址:https://blog.csdn.net/Originum/article/details/80356452 联系邮箱:Originum126.com 本人博客地址:Megalomania 一个简单的中国象棋游戏,主要…

matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程

本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法。 背景技术: 数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人们采用语言和文字解释图像内容的过程,使用图像处理技术的典型…

中国象棋-单机游戏-微信小程序的项目开发流程详解

关于此文章能看懂的条件:对使用微信开发工具熟悉一点即可 在微信开发工具中,用小程序方式新建或打卡项目, 注意:如果是下载来的项目,解压后,要选小程序打开,选错是打不开的哦~ 如图 项目源代码…

软件测试 因果+决策案例--中国象棋中走马

软件测试 因果决策案例–中国象棋中走马 题目: 因果决策案例 中国象棋中走马的实际情况: 1.如果落点在棋盘外,则不移动棋子; 2.如果落点与起点不构成日字型,则不移动棋子; 3&am…

中国象棋(react hooks版)

文章目录 前言功能展示新增模块功能搭建项目框架配置React Router配置React Store配置i18n配置主题色React动画React ColorPicker打谱记录单元测试 核心功能优化落子音效dom解耦小结 结语 前言 它终于来了。终于来了,在第一版的基础上,历时近两个月终于…