以前写的中国象棋引擎的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

如果谁感兴趣,请联系我,发给你全部源代码和相关资料。