以前用C#写的一个中国象棋引擎程序

以前写的中国象棋引擎的C#源程序,可在VS2010中编译运行,由于个人精力有限,难以完成后续的开发工作,如果谁感兴趣,请关注公众号,发送后台消息“象棋引擎”,可收到源代码和相关资料的下载链接。如果你修改代码后参加比赛请加上我的名字就行了。

当前完成的工作:

(1)着法生成

(2)简单的alphabeta算法,支持置换表

(3)可以读取一堆PGN文件,生成开局库

(4)解析ucci命令

(5)有一个对战测试程序

(6)基本的单元测试

程序当前全部是托管代码,还没有考虑性能优化。

整个源代码可以编译,有些文件有重复,以源代码中的工程文件的为准。除了源代码之外,还有收集到的一些相关论文一起提供。

PonderNet │ PonderNet.sln ├─BitBoardBase 本来是想用位棋盘的,后来看来一篇论文(2009.Reul.New Architectures in Computer Chess),改用17x14的数组表示法 │ BitHack64.cs │ Board.cs │ BoardUtil.cs │ Board_Const.cs │ Board_Makemove.cs │ Fen.cs │ Move.cs │ MoveGenerator.cs │ MoveGenerator_Preset.cs │ MoveNotation.cs │ PgnUtil.cs │ RandomMersenneTwister.cs │ TraceAndTestImpact.testsettings │ Zobrist.cs │ ├─Perft 用来验证着法程序生成的工具 │ Program.cs │ ├─Ponder.OpeningBook 用来生成开局库的工具 │ Program.cs │ ├─PonderEngine 引擎 │ Evaluator.cs │ MoveGenerator.cs │ MoveGenerator_Preset.cs │ OpeningBook.cs │ PonderEngine.cs │ PonderMain.cs │ SearchTT.cs │ SimpleSearch.cs │ TranspositionTable.cs │ UcciCommand.cs 能够识别一些简单的ucci命令 │ │ ├─PonderGame 用于与其它引擎对战的程序,也可以自己与自己对战 │ Engine.cs │ EngineProcess.cs │ ExeProcess.cs │ PonderGame.cs │ PonderGameMain.cs │ Settings.cs │ ├─TestBitBoardBase 单元测试,主要针对着法生成 │ BoardTest.cs │ MoveGeneratorTest.cs │ TestBitBoardBase.csproj │ TestChineseChess.csproj │ └─TestPonderEngine 单元测试,主要针对引擎的alphabeta搜索算法 MoveGeneratorTest.cs PonderEngineTest.cs SimpleSearchTest.cs TestPonderEngine.csproj UnitTest_SearchTT.cs

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2016-10-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

“盲”逆向:iOS 应用 Blind 寻踪

原文:https://exceptionlevelone.blogspot.tw/2017/10/blind-reversing.html 译者:hello19...

40314
来自专栏KaliArch

Python重启深信服设备

为防止隧道检测脚本异常,另外编写监控监测脚本的脚本配合定时任务来定时监控,如果异常,重新拉起。

4636
来自专栏GopherCoder

专栏:016:功能强大的“图片下载器”

1163
来自专栏企鹅号快讯

黑客游戏 Owasp juice shop(三)

0x01 前言 继续上一篇的内容,往下闯关。想了解如何搭建的同学可参考第一篇文章。 看第一篇:黑客游戏 Owasp juice shop (一) 0x02 玩耍...

37414
来自专栏木头编程 - moTzxx

Excel 表格数据存储mysql数据库|三级分类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

653
来自专栏青玉伏案

视错觉升级版:多个视错觉效果实现

之前发表过一篇关于视错觉的文章:《视错觉:从一个看似简单的自定义控件说起》,虽然不是用iOS开发中的Mask来实现的,但是原理和Mask原理是一样的,相当于手动...

17910
来自专栏量化投资与机器学习

【精心解读】关于Jupyter Notebook的28个技巧

Jupyter具有很强的可扩展性,支持许多编程语言,可以很容易地托管在计算机上或几乎所有的服务器上,只需要拥有ssh或http访问权限。 最重要的是,它是完全免...

5266
来自专栏FreeBuf

一次误报引发的DNS检测方案的思考:DNS隧道检测平民解决方案

随着dns隧道应用的越来越广泛,尤其是xshell事件被公布以后,各大公司纷纷启动对dns隧道的监控,参考xshell的逻辑,大多数公司采取了“监控多个终端请求...

2627
来自专栏SDNLAB

利用pipework与OVS构建跨主机容器网络

一、前言 本文提供了一种可行的、灵活的方案用于构建跨主机的Docker容器网络。鉴于目前的各类网络方案均依赖其他大型项目(比如CoreOS,Kubernetes...

4139
来自专栏菩提树下的杨过

Oracle BIEE (Business Intelligence) 11g 11.1.1.6.0 学习(2)RPD资料档案库创建

BI创建(数据)分析、仪表盘、报表前,都需要对数据进行建模,在oracle biee里称为创建“资料档案库”-该文件后缀为RPD,所以一般也称为创建RPD文件。...

1906

扫描关注云+社区