1 Star 0 Fork 3

jishuke/中国象棋

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

中国象棋

介绍

个人项目,中国象棋Qt界面与AI象棋引擎
棋盘结构为 PEXT位棋盘 ,使用CPU中128位寄存器的低90位来存储棋盘,对应C++的数据结构为__m128i
使用了 POPCNT指令,BMI位操作指令集中的PEXT与TZCNT指令,SSE指令集中的与、或、非、异或、零测试 等指令来进行走法预生成与快速运算,需要相应的CPU支持
引擎算法基于超出边界(Fail-Soft)的AlphaBeta剪枝,使用迭代加深(含内部迭代加深)的搜索方式
支持历史表启发,杀手启发,吃子启发,有良好的走法排序器
支持基于SSE的无锁置换表裁剪、带验证的空着裁剪、落后着法衰减、杀棋步数裁剪、剃刀裁剪、静态评分裁剪、差值裁剪
支持将军延伸和重复局面检测(只支持长将检测,目前不支持长捉检测,一将一捉等检测)
支持主要变例搜索、使用OpenMP与QtConcurrent并发库进行Lazy-SMP多线程搜索
联网的情况下支持ChessDB提供的开局库、对局库和残局库,大约可提升引擎200ELO左右

软件架构

Qt、C++

开发环境

集成开发环境: Qt 6.2.3
编译器: MinGW 11.2.0

语言标准

C++23 with gnu extension
编译时开启 -std=gnu++2b

引擎棋力(在联网情况、四核机器下,使用简单难度)

足以应对一般的纯人,但由于搜索速度和评分函数知识上的缺陷,暂不足以应对任何其他象棋软件(免费与商业)。

天天象棋测试(在联网情况、四核机器下,使用简单难度)

可战胜业8-3纯人,得出本软件ELO大约为2000左右
天天象棋人机对战可以战胜精英级别电脑(天天象棋分析12层)
由此可得本软件大致与新版天天象棋分析13层相当
实战测试结果最高等级如下(该账号仅用于测试软件棋力,由于达到业余9-1后,再往后的测试需要实名认证,鉴于已经达到了测试的目的,所以该账号现已注销): 评测最高等级
更多实战测试的内容在:https://www.bilibili.com/video/BV1eR4y1j777

JJ象棋测试(在联网情况、四核机器下,使用简单难度)

实战测试可战胜特大等级纯人,最高达到荣誉顶级
100盘胜率94%,有1盘掉线,1盘与其他软件作和,4盘输给其他软件,其余与纯人对战都赢了
该账号仅用于测试软件棋力,由于特大等级的小部分人和荣誉顶级的绝大部分人都是软件,由于本软件不具备与其他软件对撕的能力,鉴于已经达到了测试的目的,故不再往后测试 评测最高等级

使用说明

打开可执行即可运行程序

参与贡献

PikaCat

云开局库、残局库

https://www.chessdb.cn/query/

参考文献

象棋百科全书:https://www.xqbase.com/computer.htm
象棋编程维基百科: https://www.chessprogramming.org/Main_Page

参考代码

象棋小巫师: https://gitee.com/SpiritFinches/xqwizard/tree/master/XQWLIGHT/Win32
象眼: https://gitee.com/SpiritFinches/xqwizard/tree/master/ELEEYE
国际象棋位棋盘: https://github.com/maksimKorzh/bbc

空文件

简介

个人项目,中国象棋Qt界面与AI象棋引擎 展开 收起
README
WTFPL
取消

发行版

暂无发行版

贡献者 (1)

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/jishuke/ChineseChess.git
git@gitee.com:jishuke/ChineseChess.git
jishuke
ChineseChess
中国象棋
master

搜索帮助