下载此文档

中国象棋java源码.doc


文档分类:IT计算机 | 页数:约59页 举报非法文档有奖
1/59
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/59 下载此文档
文档列表 文档介绍
、设计题目中国象棋。二、,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,他们为国际象棋爱好者和研究者提供了极大的便利。国际象棋软件有着成功的商业运作,已发展成一种产业。然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,他的一系列关于国际象棋程序设计的文章非常值得其他棋类程序设计人员借鉴。然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,需要对其加以改进和创新。本文针对中国象棋程序设计的一系列问题,总结出一些搜索引擎的设计方法,,每个模块对应一个程序包:1、engine:搜索引擎包,系统的核心部分。2、message:网络对战过程中各种消息及其传递机制的类实现包。3、main:主界面实现包。4、pieces:棋子及其相关类实现包。现就各个包中的要点给与说明。(engine包)(1):位棋盘的实现,。(:评价函数知识类。本程序使用开源软件“梦入神蛋”的快速评价函数。该函数包含子力价值和棋子所在位置的奖励值。子力价值分别是:帅-0,仕-40,象-40,马-88,车-200,炮-96,兵-9。帅是无价的,用0表示。以马为例,位置的奖励值如下:0,-3,5,4,2,2,5,4,2,2,-3,2,4,6,10,12,20,10,8,2,2,4,6,10,13,11,12,11,15,2,0,5,7,7,14,15,19,15,9,8,2,-10,4,10,15,16,12,11,6,2,0,5,7,7,14,15,19,15,9,8,2,4,6,10,13,11,12,11,15,2,-3,2,4,6,10,12,20,10,8,2,0,-3,5,4,2,2,5,4,2,2上面的每行代表棋盘的一条纵线。其中,-10所在的位置是“窝心马”,所以要罚10分。(3):动态局面类包含对局过程中的动态信息,。(4):着法表示类。(5):伪合法着法生成模块,。(6):合法着法的生成及其排序算法,。(7):搜索算法,实现如下功能:1)主置换表及开局库2)Alpha-Beta搜索算法3)针对吃子着法的静态搜索算法4)适应性空着裁剪算法:,根据不同情况来调整R值的做法,称为“适应性空着裁剪”(AdaptiveNull-MovePruning),A杂志上。其内容可以概括为:,用R=,用R=3;,如果每方棋子都大于或等于3个,则用R=3,否则用R=2。5)带时间控制的迭代加深搜索算法:每次加深搜索都判断时间是否够用。6)“将军”扩展(加深)搜索算法:当搜索到己方被“将”时,增加搜索的深度。7)(message包)在对弈过程中(主要是网络对弈)需要在对弈双方之间传输各类信息,抽象为各类消息。如时间规则的协定、各方的走子信息等。每方都有消息接收、消息处理和消息发送程序(OuterMsgReceiver、LocalMsgReceiver,QzMessageHandler,MessageSender)。己方的MessageSender与对方的OuterMsgReceiver通过接口SrConnection连接。所有接收的消息放入消息队列QzMsgQueue中,等待消息处理进程QzMessageHandler来处理。所有的消息都封装在QzMessage类对象中,消息的类型通过消息的Header类型(以静态常量存放在MsgHeader类中)来区分。(pieces包),如棋子的(在棋盘上的)位置、图

中国象棋java源码 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数59
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-02-20
最近更新