中国象棋引擎的C#源代码

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

当前完成的工作:

1)着法生成

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

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

4)解析ucci命令

5)有一个对战测试程序

6)基本的单元测试

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

图片1

整个源代码可以编译,有些文件有重复,以源代码中的工程文件的为准。

除了源代码之外,还有收集到的一些相关论文可以一起提供。


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

posted @ 2014-09-18 17:19  申龙斌的程序人生  阅读(6872)  评论(0编辑  收藏  举报