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

当前完成的工作:

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

中国象棋引擎的C#源代码的更多相关文章

  1. 中国象棋V2:Java源代码、毕业设计等所有文档,已经全部提交到CSDN-Code平台

    下载地址:https://code.csdn.net/FansUnion/chinesechess-v2 主要内容:Java源代码.毕业设计.API文档.声音图片等资源.Demo截图等一切的一切. 2 ...

  2. C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!

    中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味性强,成为流行极为广泛的棋艺活动. 它是中国棋文化,也是中华民族的文化瑰宝,它源远流长,趣味浓厚,基本规 ...

  3. 中国象棋程序的设计与实现(十一)--第2次回答CSDN读者的一些问题

    最近一段时间,有不少CSDN读者朋友看了我写的中国象棋文章.其中,不少爱好者下载了中国象棋程序的初级版和高级版源码. 由于水平有限,不少同学遇到了若干问题,向我咨询,寻找解决办法. 我的处境1.如果我 ...

  4. BZOJ 1801中国象棋 DP

    1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1426  Solved: 826[Submit][ ...

  5. C#中国象棋+游戏大厅 服务器 + 客户端源码

    来源:www.ajerp.com/bbs C#中国象棋+游戏大厅 服务器 + 客户端源码 源码开源 C#版中国象棋(附游戏大厅) 基于前人大虾的修改版 主要用委托实现 服务器支持在线人数,大厅桌数的设 ...

  6. 1.2 中国象棋将帅问题进一步讨论与扩展:如何用1个变量实现N重循环?[chinese chess]

    [题目] 假设在中国象棋中只剩下将帅两个棋子,国人都知道基本规则:将帅不能出九宫格,只能上下左右移动,不能斜向移动,同时将帅不能照面.问在这样条件下,所有可能将帅位置.要求在代码中只能使用一个字节存储 ...

  7. 基于HTML5实现的中国象棋游戏

    棋类游戏在桌面游戏中已经非常成熟,中国象棋的版本也非常多.今天这款基于HTML5技术的中国象棋游戏非常有特色,我们不仅可以选择中国象棋的游戏难度,而且可以切换棋盘的样式.程序写累了,喝上一杯咖啡,和电 ...

  8. BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )

    dp(i, j, k)表示考虑了前i行, 放了0个炮的有j列, 放了1个炮的有k列. 时间复杂度O(NM^2) -------------------------------------------- ...

  9. cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面

    之前两个博客讲述了象棋的规格和工程文件之后,我们继续深入的从代码开始学习cocos2dx 首先从程序入口main函数开始 main函数 int APIENTRY _tWinMain(HINSTANCE ...

随机推荐

  1. [转]查看手机已经记住的WIFI密码

    有时用过wifi后记住密码了,但再想知道wifi密码是多少,怎么办呢.下面的方法为你解决这样的问题. 1.手机必须取得root权限. 2.用RE管理器或es文件浏览器进入data/misc/wifi, ...

  2. 谈mvc开发中gzip压缩的应用

    压缩view的内容,可加过滤器 public class GzipFilter : ActionFilterAttribute     {         public override void O ...

  3. 网站跨站点单点登录实现--cookie

    至于什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录.一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作 ...

  4. Pop - Facebook 开源 iOS & OS X 动画库

    Pop 是一个可扩展的 iOS & OS X 动画引擎.除了基本的静态动画,它支持弹簧和动态衰减的动画,因此可以用于构建现实的,基于物理的交互效果. 它的 API 可以与现有的 Objecti ...

  5. 使用 PSD Validator 在线校验 PSD 文件的质量

     PSD Validator 可以帮助你在线校验 PSD 文件的质量,使用的规则来自 Photoshop Etiquette.Photoshop Etiquette 整理了 PSD 文件的规范,例如删 ...

  6. 直接拿来用!最火的iOS开源项目

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

  7. The Top 10 Javascript MVC Frameworks Reviewed

    Over the last several months I have been in a constant search for the perfect javascript MVC framewo ...

  8. [转]提高 Linux 上 socket 性能,加速网络应用程序的 4 种方法

    原文链接:http://www.ibm.com/developerworks/cn/linux/l-hisock.html 使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在 ...

  9. myeclipse怎么github

    myeclipse怎么github 第一步.打开myeclipse->选择项目->鼠标右键->Team->Share project,将出现如下图所示: 第二步.选择git,在 ...

  10. [团队项目]SCRUM项目4.0

    1.准备看板. 形式参考图4. 2.任务认领,并把认领人标注在看板上的任务标签上. 先由个人主动领任务,PM根据具体情况进行任务的平衡. 然后每个人都着手实现自己的任务. 3.为了团队合作愉快进展顺利 ...