欢迎来到天天文库
浏览记录
ID:39892631
大小:556.81 KB
页数:35页
时间:2019-07-14
《java_象棋论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、河南机电高等专科学校毕业论文1绪论32概述42.1棋子的名称42.2棋谱的记录方法42.2.1中文纵线记法52.2.2符号纵线记法72.3历史局面的表示及存储72.4棋谱记录文件的格式82.4.1标签部分82.4.2棋谱记录部分92.4.3XML格式103基本数据结构——位棋盘113.1什么是位棋盘113.2.1位棋盘类的实现113.2.2位棋盘的初始化123.2.3位棋盘的更新144基本数据结构——Zobrist键值154.1比较局面的方法154.2Zobrist键值的实现方法154.3Zobrist键值的工作原理及用途154.3.1Zobrist键值的工作原理154
2、.3.2Zobrist键值的用途164.4Java中实现Zobrist键值165着法生成195.1伪合法着法的生成195.1.1数组及其下标的含义205.1.2算法示例——车炮的伪合法着法生成235.2合法着法的生成266程序的设计及实现316.1搜索引擎的实现(engine包)3135河南机电高等专科学校毕业论文6.2信息传输机制(message包)326.3棋子(pieces包)326.4主控模块(main包)3335河南机电高等专科学校毕业论文1绪论中国象棋(通称"象棋")是人们国家喻户晓的棋类运动项目。“象棋”一词,早在春秋战国时代的<<楚辞>>中就已出现。现在
3、使用的棋盘、棋子,业型于九百年前的北宋末年。中国象棋运动可谓源远流长。它同围棋和国际象棋一样,对提高智慧,陶冶性格,调剂身心,交流文化艺术都起着积极作用;在人们国是一项有着广泛群众基础的比智慧、比技巧、比体力的体育项目。象棋集智谋与娱乐为一体,对弈双方宛如统率千军的将领,执红黑双方,厮杀于棋盘之上,虽不见刀光剑影,激烈程度并不输于两国交兵。象棋集中了几千年中华文化的精髓,“红先黑后”,说的是礼让;“观棋不语真君子,举棋无悔大丈夫”,说的是为人处世;“胜败乃兵家常事”,讲的是心态;而“当局者迷,旁观者清”,则适用于世间一切事物,有启迪与警示的作用。象棋棋子不多,各自走法也
4、不相同,不管是车马炮兵,还是相士帅,虽然力量有大小,但可以相互捉杀,可见创造象棋的人不但追求博弈的公平,更表达了人格平等的理念。小小棋盘,在娱乐之余,还可以对人的一生起到借鉴与总结。象棋水平的发展是需要靠信息技术来推动的,国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台——WinBoard平台,另一个是商业的国际象棋数据库和对弈软件——ChessBase,人们们为国际象棋爱好者和研究者提供了极大的便利。国际象棋软件有着成功的商业运作,已发展成一种产业。然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必
5、要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。例如B.Moreland,微软(Microsoft)的程序设计师,业余从事国际象棋引擎Ferret的开发,人们的一系列关于国际象棋程序设计的文章非常值得其人们棋类程序设计人员借鉴。然而,中国象棋与国际象棋存在着很大的差异,因此国际象棋的某些成熟技术,无法直接应用于中国象棋,需要对其加以改进和创新。本文针对中国象棋程序设计的一系列问题,总结出一些搜索引擎的设计方法,并给出java语言的实现。35河南机电高等专科学校毕业论文2概述中国象棋是
6、由两人下的。一方称为红方(或白方),一方称为黑方。对局时由红方先走,黑方后走,一次一着,双方轮流走棋,直到对局结束为止。棋子的走法及详细规则见《中国象棋竞赛规则》,本章只描述计算机实现象棋对弈程序时所涉及的一些概念及相关的表示方法。2.1棋子的名称为方便表示,中国象棋的棋子名称除了用汉字以外,还可以用字母,字母可从国际象棋中稍加改动得到,而数字是为了方便着法的输入(以便用在数字小键盘上)见表2-1所示:表2-1棋子的名称及表达方式红方黑方字母英文单词数字帅将KKing1仕士AAdvisor2相象BBishop3马马NKnight4车车RRook5炮炮CCannon6兵卒
7、PPawn72.2棋谱的记录方法现以如下一般的开局为例说明各种记谱方法,如图2-1所示的局面,记法如下:(1)炮二平五炮8平5(2)炮五进四士4进5(3)马二进三马8进7(4)炮八平五马2进3(5)前炮退二车9平835河南机电高等专科学校毕业论文图2-1一般开局的走法2.2.1中文纵线记法这种格式是中国象棋棋谱的常规记法,在各类出版物中最为普遍。但是这里还是要说明两个重要的细节。(1)仕(士)和相(象)如果在同一纵线上,不用“前”和“后”区别,因为能退的一定在前,能进的一定在后。(2)兵要按情况讨论:①三个兵在一条纵线上:用“前”、“中”
此文档下载收益归作者所有