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

----==== Email: slofslb (GTD) qq.com 请将(GTD)换成@ ====---- 
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者:申龙斌的程序人生

---- 魔方、桥牌、象棋、游戏人生... 
---- BASIC、C++、JAVA、C#、Haskell、Objective-C、Open Inventor、程序人生... 
---- GTD伴我实现人生目标 
---- SeismicPro地震剖面显示程序 
---- Eclipse油藏数值模拟二进制文件格式解析和格式转换软件

本文转自申龙斌的程序人生博客园博文,原文链接:http://www.cnblogs.com/speeding/p/3979653.html,如需转载请自行联系原作者

http://www.cnblogs.com/speeding/

中国象棋引擎的C#源代码相关推荐

  1. python中国象棋github_GitHub - bupticybee/elephantfish: elephantfish: 一个只有124行的中国象棋引擎...

    介绍 elephantfish 是受到 sunfish 启发而撰写的纯python的中国象棋引擎, 整个象棋引擎核心代码只有124行(见compressed.py),棋力方面我仅进行过其与象棋小巫师傻 ...

  2. Qt终极教程——用Qt编程实现中国象棋游戏(提供源代码和程序编译运行教程)

    Qt终极教程--用Qt编程实现中国象棋游戏 目录 Qt终极教程--用Qt编程实现中国象棋游戏 简介 运行可执行程序体验象棋游戏 Qt 安装 源代码的编译.运行与调试 生成预编译的可执行程序 简介 本文 ...

  3. 安卓android中国象棋chess程序项目源码源代码,C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!,c语言笔记大全...

    #include#include #define INTERVAL 50 //前面的间隔 #define CHESS_GRID_SIZE 70 //格子宽度 #define ROW 10 #defin ...

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

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

  5. 中国象棋通用引擎协议

    一.概述 中国象棋通用引擎协议(Universal Chinese Chess Protocol,简称UCCI),是一种象棋界面和象棋引擎之间的基于文本的通讯协议.设立中国象棋通用引擎协议的目的有: ...

  6. 中国象棋通用引擎协议 UCCI

    概述 中国象棋通用引擎协议 (Universal Chinese Chess Protocol,简称UCCI),是一种象棋界面和象棋引擎之间的基于文本的通讯协议. 规范通用引擎协议 UCCI 协议,为 ...

  7. linux终端 中国象棋,在Deepin系统下安装Xboard并使用它玩中国象棋

    本文介绍在Deepin系统下安装Xboard的命令,并通过xboard @xq命令进入到中国象棋模式,有喜爱中国象棋的网友又可以多一种途径了,当然,也可以玩国际象棋. 前言 Xboard/WinBoa ...

  8. PiMuseum-游戏开发入门级教程-中国象棋-Chapter-3

    PiMuseum-游戏开发入门级教程-中国象棋-Chapter-3 导语 游戏引擎 游戏引擎概念及其组件 光影效果 动画组件 物理系统 渲染系统 通信模块 初始化游戏引擎 选择游戏引擎 接入游戏引擎 ...

  9. 街头一小伙子C++开发中国象棋,智能走法巧妙,让人拍手叫好!

    象棋是一种古老的智力游戏,人们往往通过对弈来参透一些人生的一些哲理,来提高自己的觉悟能力.思维能力和生活乐趣. 小编今天用C++ 中国象棋人机对弈程序源代码,支持人机对弈.人人对弈等多种方式,提供多种 ...

最新文章

  1. [译] 响应式 Web 应用(一)
  2. openCV中的findHomography函数分析以及RANSAC算法的详解(源代码分析)
  3. 环形数组最大子数组之和
  4. Visual C++——设置光标Cursor
  5. boost::mp11::mp_replace_at相关用法的测试程序
  6. php-URL方法下载远程图片
  7. SQL函数获取一年中每个月的天数
  8. 模块怎么用_Android 组件化/模块化 的理解!
  9. Ackerman阿克曼函数的递归与非递归(栈)实现
  10. 2017马哥python高级实战班培训推荐
  11. ps 如何制作一寸白底照片
  12. 一张图了解大牛直播SDK 1
  13. 虚拟机无法查询ip地址的解决方案
  14. PHP 网页调用本地exe程序实例
  15. [EE261学习笔记] 13.离散傅里叶逆变换及离散傅里叶变换的一些性质
  16. adb命令 激活并设置默认输入法
  17. 如何“拼”出一个页面-游戏中心模块化实践
  18. NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试补充)
  19. 孪生素数【函数实现】
  20. 计算机网络16进制首部检验和,校验和

热门文章

  1. SSM在线球鞋销售商城系统、
  2. 简易通讯录的实现(c语言,后附完整代码)
  3. 计算机管理格式化硬盘,解决方案:如何一步一步对硬盘进行分区和格式化
  4. easyui dataGrid 设置了nowrap:false 却没有换行
  5. getRealPath
  6. CSDN 博客栏目添加微博一键关注
  7. python第五天 程序设计方法学
  8. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs
  9. 关于堆内存和栈内存释放
  10. html制作自动切换音乐按钮代码,利用HTML5实现使用按钮控制背景音乐开关我