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

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

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

发行版

暂无发行版

贡献者

全部

近期动态

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

搜索帮助