中國象棋引擎的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM