1、题目:基于 JAVA 语言的中国象棋设计与实现毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对 本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电
2、子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 【摘要】电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来,随着人工智能及计算机硬件的发展,计算机象棋程序的水平也不断地得到提高。本文通过研究中国象棋的国内外研究现状、分析中国象棋的需求和用 JAVA语言设计中国象棋程序的可行性,同时根据国际象棋程序设计的一些成功经验,主要借鉴了
3、位棋盘、Zobrist 键值等,针对中国象棋程序设计的一系列问题,总结出一些中国象棋程序的设计方法。根据该方法设计出了符合中国象棋行棋和吃子规则,能够判断胜负,能够实现悔棋、重新开始等多种功能,而且界面十分美观的中国象棋程序,并给出了 JAVA 语言的实现方法。关 键 词:中国象棋,位棋盘,Zobrist 键值,着发生成【Abstract】The implement of playing Chinese Chess on computer has just started. Although large numbers of professional websites and professi
4、onal chess software arised in domestic, the lack of necessary basic work causes the advantage of computer technology applications in Chinese chess cant be reflected. With the development of artificial intelligence and computer hardware, the level of computer chess program continues to be improved.Th
5、is paper studies the research status of Chinese chess, analyzes the demand of Chinese chess, and learns the feasibility of Chinese chess that is designed by Java language. At the same time, the function is designed with the successful experience of chess program, such as the place board, Zobrist key
6、s, etc. Chinese chess program is summarized some ways to design Chinese chess program for solve a range of issues. Follow this ways, it designs all the rules and funtions which adapt to the requirement of Chinese chess, including of movement, judgement, undo, re-start and so on.The application gives
7、 the implementation method in JAVA language and beautiful interface. Keywords: Chinese Chess, bit board, zobrist keys目 录1 绪论.11.1 研究背景.11.2 研究意义.11.3 预期目标.12 分析.32.1 需求分析.32.2 可行性分析.32.3 功能分析.32.4 硬件环境.42.4.1 开发环境.42.4.2 运行环境.43 界面设计框架.53.1 程序的框架.53.2.基本数据结构 位棋盘.53.2.1 什么是位棋盘.53.2.2 位棋盘的作用.63.2.3 位棋
8、盘的基本运算.63.2.4 Java 中位棋盘的实现 .63.3.基本数据结构 Zobrist 键值 .93.3.1 比较局面的方法.93.3.2 Zobrist 键值的工作原理 .93.3.3 Zobrist 键值的实现方法 .103.3.4 Java 中实现 Zobrist 键值 .104 系统实现.124.1 着法生成.124.1.1 伪合法着法的生成.124.1.2 合法着法的生成.174.2 算法实现.204.2.1 行棋规则算法实现.204.2.2 界面功能算法实现.235 结论.26参考文献.27附录.28附录 1 算法主程序.28附录 2 程序截图.53外文文献与翻译.54致
9、谢.63北京物资学院 2010 届毕业论文(设计)11 绪论1.1 研究背景计算机现在已经成为每天工作和生活必不可少的一部分,电子游戏在计算机产业的带动下也逐步深入我们每个人的娱乐活动中,棋牌游戏作为休闲类电子游戏,相对于角色扮演类游戏和即时战略类游戏等其它游戏,具有上手快、游戏时间短的特点,更利于用户进行放松休闲,为人们所喜爱,特别是棋类游戏,方便、快捷、操作简单,在休闲娱乐中占主要位置。棋类运动的推广和发展是需要靠信息技术来推动的,时下盛行的国际象棋有两个很好的范例,一个是象棋棋谱编辑和对弈程序的公共平台WinBoard 平台,另一个是商业的国际象棋数据库和对弈软件ChessBase,他们
10、为国际象棋爱好者和研究者提供了极大的便利,也极大的促进了国际象棋的发展。国际象棋软件有着成功的商业运作,已发展成一种产业。在设计中国象棋软件过程中,国际象棋软件有很多值得借鉴的成功经验和优秀的思想。1.2 研究意义我国现在正处于飞速发展的阶段,想要提高我国的国际地位、让世界更好的了解我国,不仅要依靠经济和政治的影响,更要注重文化传播的作用。中国象棋是我国起源最早(最早出现于战国时期) 、也是我国保存最为完整的棋类运动之一,他的行棋规则和棋子、棋盘的设计都蕴函着丰富的中国文化。中国象棋的艺术和棋理折射着以儒家思想为正统的东方民族文化精神,深为我国各阶层人民喜爱。但是中国象棋在国际上的普及率仍然很
11、低,并因此未被入选 2010 年广州亚运会的竞赛项目。想要提高中国象棋的知名度和普及率,就必须要有一个大众化的中国象棋游戏平台,电脑游戏无疑是最佳选择。然而,电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来。因此,我们迫切的需要一个更加基础、更加实用的中国象棋对战平台。1.3 预期目标首先进行理论的研究,研究 JAVA 编程的基础,包括 JAVA 编成的主要步骤及所需要的工具和软件,熟悉编程软件后,开始着手进行研究,设计出论文的主要框架和具体实现的步骤、目标。其次具体的实现。设计出一个基
12、于 JAVA 语言的中国象棋对战平台,由于中国象棋比较复杂,所以主要设计出一个人、人对战的平台,这个平台必须符合中国象棋规则(包括胜负、北京物资学院 2010 届毕业论文(设计)2走棋、悔棋、吃子、判断胜负等主要功能,各棋子按象棋规则走动) ,如果时间允许,可进一步实现一些附加功能,包括美观的界面、对战双方交流、添加背景音乐等。最后,依据框架和目标编写代码,实现主要功能并且进行测试,直至程序运行成功。最终在深入研究理论的基础上,实现基于 JAVA 语言设计的中国象棋,做出预期的完整游戏。北京物资学院 2010 届毕业论文(设计)32 分析2.1 需求分析现在全球超过十亿台计算机正在被使用,并且
13、这个数目还在逐渐增加,计算机已经深入到我们生活的各个方面。而我们使用计算机时,游戏所占的比重很大。棋类游戏作为一种简单易学的休闲游戏,一直深受广大群众的喜爱。JAVA 作为一种程序编写的语言,在软件市场的影响力快速提高,潜力巨大。因此用 JAVA编写的中国象棋游戏有着很大的开发潜力。与网络游戏相比,单机游戏有着不可匹敌的简约性。人们可以随心所欲的选择任何时间进行游戏,而且人人对战还可以实现对战双方的直接交流,尤其随着笔记本电脑的普及,基本上可以随时随地都把它们带在身边,在人们离开家或者想玩的时候,可以不受任何时间地点限制地玩自己选择的游戏。2.2 可行性分析随着计算机的普及和应用,电子游戏已经
14、深入到我们生活的各个方面,利用电子游戏推广我国文化、增加我国传统游戏的市场占有率,是将我国文化推向世界的比较便捷的一种方式。中国象棋作为我国保存最完整、最能代表我国古代文化的游戏之一,它的推广能够让世界更加了解中国。JAVA 与 C+语言非常相近,但 JAVA 比 C+简单,它抛弃了 C+中的一些非必要的功能。用 JAVA 编写的中国象棋程序实现了人与人的对弈,符合中国象棋的行棋规则,界面美观,能够激起玩家的兴趣,同时单机游戏对计算机的环境要求十分简单、易于实现。2.3 功能分析打开游戏,鼠标所在的功能键会突出显示,点开新游戏后,原本的“欢迎使用象棋对弈系统” 会变成提示 “红棋走棋”或“黑棋
15、走棋 ”。单击选中的棋子时,该棋子会不停闪烁,如果符合规则,则可以移动到指定位置。在进行人与人之间对战时,按照红先黑后的顺序进行,并把下棋的每一步过程记录下来,在对战时能进行悔棋功能,对悔棋次数没有限定,玩家可以再玩之前自己约定,增加了游戏的灵活性。在行棋时依照“ 马走日,象走田,车、炮走直线、士在框内走斜线,卒未过河是上下走、过河可左右行走且不能回头,将、帅只能在框内行走” 等行走规则,且按照 “炮必须隔一个棋子才能吃棋子,其他棋子按棋子行走规则的位置实现吃子”的规则,完全符合象棋的行棋规则。北京物资学院 2010 届毕业论文(设计)42.4 硬件环境2.4.1 开发环境1、硬件环境CPU:AMD Turion(tm)64*2 1.80GH内存:DDR 1.5G 硬盘:80G2、软件环境操作系统:WINDOWS XP开发语言:JAVA2.4.2 运行环境1、32M 以上内存,4G 以上硬盘。2、Microsoft Windows 9X/NT/vista 操作系统。3、800*600 或以上的屏幕分辨率。