基于Java的中国象棋游戏设计.doc
《基于Java的中国象棋游戏设计.doc》由会员分享,可在线阅读,更多相关《基于Java的中国象棋游戏设计.doc(23页珍藏版)》请在沃文网上搜索。
1、基于Java的中国象棋游戏设计摘要:随着社会的发展,科学技术不断提高,人们的娱乐活动不断地增加,中国象棋作为中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。开发中国象棋游戏软件,推广我们传统的象棋文化。本文通过运用Java语言、软件工程的知识,参考网上一些文献资料的设计思路,开发出中国象棋对弈游戏系统,程序实现了游戏计时、悔棋、和棋、认输等功能。通过对系统进行详细地需求分析,设计出了系统的逻辑模型,并且对各个功能进行了详细的分析,对中国象棋规则进行了详细地算法描述,最后对该程序的功能进行了测试与总结。关键词:JAVA;中国象棋;对弈;游戏目 录1 绪论11.1 项目开发的背景及意义1
2、1.2 研究现状及发展趋势11.3 研究目标12 可行性研究22.1 技术可行性22.1.1 使用java技术的优点22.1.2 Eclipse简介32.2 经济可行性32.3 社会可行性33 需求分析及总体设计43.1 需求分析43.2 总体设计43.2.1 总体结构设计43.2.2 棋盘棋子的设计53.3 类图说明64 详细设计94.1 程序流程设计94.2 开始游戏设计94.3 功能设计124.3.1 计时功能124.3.2 悔棋功能124.3.3 求和和认输124.3.4 信息帮助134.4 界面设计144.5 走棋和吃棋规则设计145 系统测试与总结165.1 系统测试165.1.1
3、 系统功能测试165.1.2 运行效果测试175.2 总结与展望18参考文献201 绪论1.1 项目开发的背景及意义随着电子信息技术的不断发展以及网络技术的普及,网络能够提供多样、便捷的服务,已经成为人们生产生活中不可缺少的重要组成部分。如今网络休闲游戏发展非常迅猛,它凭借健康、方便、益智、互动性强等诸多优点,成为大众休闲娱乐的首选。作为中华民族悠久文化的代表之一,中国象棋不仅源远流长,而且基础广泛,作为一项智力运动,中国象棋不仅能丰富人们文化生活,陶冶情操,而且有助于开发智力,启迪思维,培养人的品格。弈棋可磨练意志,锤炼品质,塑造性格,陶冶情操,中国象棋是中国文化的缩影,是中华民族智慧的反映
4、。中国象棋的规则的复杂性是社会复杂性在中国象棋游戏中的一个反映。通过Java技术开发中国象棋游戏系统,以便于与时俱进,将中国象棋运用于计算机等电子设备,实现中国象棋对弈系统,为象棋在网络应用平台提供多人对弈。1.2 研究现状及发展趋势象棋游戏软件现在有腾讯象棋、JJ象棋、象棋巫师等游戏软件;腾讯象棋和JJ象棋是网络对弈游戏。现在的棋盘类软件有很多,大多数都是游戏对战平台的网络对弈软件;如腾讯QQ象棋、JJ象棋等网络对弈游戏。在文献7中提到的象棋巫师等。在文献5中提到五子棋、国际象棋等棋类的计算机博弈已经取得了成功,但规则更加复杂的中国象棋电子计算机博弈尚处于萌芽阶段。棋盘类游戏将向多平台、智能
5、化方向发展。1.3 研究目标此项目主要应用于中国象棋对弈软件,本文针对的是双人的对弈,能够运用该软件进行象棋对弈。实现对弈计时、悔棋、和棋、认输等功能。2 可行性研究可行性研究的目的,就是以最小的代价、在尽量短的时间内确定问题是否能够被解决。因此,必须客观的分析问题,找出主要的可能解决法,然后从系统逻辑模型出发,分析若干种主要的解法,研究每种解法的可行性,从而最终确定这项工程的可行性。2.1 技术可行性Java是Sun Microsystem公司开发的编程语言,Java语言具有高效性、通用性、平台移植性和安全性等特点。运用Eclipse软件进行编写,并进行编译执行。2.1.1使用Java技术的
6、优点Java是非常新的一种语言,具有面向对象、分布式、解释执行、体系结构中立、可移植、多线程、以及动态性等特点。和其他编程语言相比,它有很多优点。使用Java语言的主要优点体现在以下几个方面:(1)灵活性Java语言是非常灵活的,它支持部署和开发环境中的各种变化。因为Java是在面向对象的基础平台上构建的,故其很容易对基本的语言进行扩展和发布。(2)厂商的广泛支持采用Java有一个非常重要的原因,就是受到了厂商的广泛支持。Java不仅仅只有一个主要的供应商,有许多公司都生产、支持Java产品。(3)用户的广泛支持Java语言具有良好的用户基础,它们并不局限于某一个特定的公司。在Internet
7、上,有许多资源以及Java示例代码。另外,Java程序员还可以使用许多免费软件或共享软件和许多应用程序代码。(4)平台独立性Java源代码和运行时的文件与操作系统无关,可以支持多个操作系统。因此,在Windows环境中创建并编译Java类文件,无需任何修改就可以将其部署到Linux环境中。Java的这种特性,也称为可移植性,这一点使得Java开发更加方便,对于那些需要一个特定操作系统、又需要支持其他操作系统的企业来说是非常重要。2.1.2 Eclipse简介 Eclipse 是一个基于 Java 的可扩展开发平台。它本身只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带
8、了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),该组件主要是针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。Eclipse这样功能完整且成熟的开发环境,大部分的开发掌握在IBM手中,但是有一部份是由eclipse.org的软件联盟主导。Eclipse使用开放原始码许可书,即用公共公众许可书Common Public License(CPL)作为授权方式,设计上是可以容许商业利
9、益的。CPL可以容许Eclipse和其它开放原始码软件合组时,能够用更加严谨的许可书散布软件,可以用于商业途径。CPL经过Open Software Initiative(OSI)认证,其内容符合开放原始码授权的需求。2.2 经济可行性经济可行性分析是指进行成本与效益的核算分析,从经济角度判断开发该系统的预期经济效益能否超过它的开发成本。当系统开发人员接受开发任务时,首要研究开发任务,判断是否具有简单明确合理可行的解决办法。其实,有许多不可能在预期的规模内解决的问题,如果某些问题无法很好的解决,那么花费在该项工程上的任何时间、资源和经费都是浪费的。因此可行性分析必不可少。该系统的开发运用Jav
10、a开发环境Eclipse来完成,参考图书及网上相关资料,由自己独立开发完成,在经济方面成本可自己承担,具有一定的经济可行性。2.3 社会可行性随着计算机科技的发展,个人计算机的普及,越来越多的人们接触并使用计算机,现今普通人也能熟练地使用计算机,并习惯使用计算机通过网络进行学习工作和娱乐活动,这样更有利于人力资源的有效利用。而且该程序的简单易用,使得人们能够使用该程序进行对弈。3 需求分析及总体设计3.1 需求分析该程序需要实现象棋游戏的以下几个基本功能:(1)开始游戏/重新开始:开始一局新的象棋对弈;(2)计时:设置走棋时间限制和棋局的时间限制;(3)悔棋:将棋子返回到之前所处的位置;(4)
11、求和和认输:将双方协商棋局为和棋,或一方认输结束棋局;(5)退出:退出本程序;(6)提示:显示出象棋的走棋、赢棋规则。3.2 总体设计3.2.1 总体结构设计中国象棋软件的总体结构层次方框图如图3-1所示。图3-1 层次方框图3.2.2 棋盘棋子的设计打开程序后显示棋盘界面如图3-2所示。图3-2 棋盘界面棋盘是棋子的活动位置棋子活动的场所。在长方形的平面上,由九竖线和十条横线相交组成,共有九十个交叉点,棋子摆在交叉点上。中间部分,即棋盘的第五和第六两横线之间末画竖线的空白地带称为“楚河汉界”,也称“河界”。两端的中间,以斜交叉线构成“米”字方格的地方,叫作“九宫”(它共有九个交叉点)。开始游
12、戏后调入棋子后界面如图3-3。图3-3 棋子调入界面棋子共有三十二个,分为红、黑两组,各有十六个,由对弈的双方各执一组。兵种是一样的,分为七种:将(帅)、仕、象(相)、车、马、炮、卒(兵)。红方持有棋子:一个帅,仕、相、车、马、炮各有两个,五个兵。黑方持有棋子:一个将,士、象、车、马、炮各有两个,五个卒。其中帅与将;仕与士;相与象;兵与卒的作用完全相同,仅仅是区别红棋和黑棋。 3.3 类图说明该程序的所包含的类如图3-4所示,层次结构如图3-5所示。图3-4 类图图3-5 层次结构图在图3-4中,zgxq包内的XQJFrame.java与ZGXQ.java是本程序的源代码文件;image中的棋
13、子图片,及Rule.txt象棋规则说明文件是程序中所调用的。图3-5所示的是本项目的层次结构图,显示了本项目中的类及其所用方法的层次结构。层次结构图表示的是程序系统中运用的方法、函数的层次结构,显示了它们的层次关系。XQJFrame.java中的方法大纲如图3-6所示,图3-6中(a)的最后与(b)的最前面相联。 图3-6(a)方法大纲图3-6(b)方法大纲图3-6中(a)和(b)所示的是本项目的大纲,“导入声明”是本程序中调用的Java自带的方法;“XQJFrame”是本程序中运用的参数,及方法的属性和顺序。4 详细设计4.1 程序流程设计程序的主体流程图如图4-1所示。该流程图是在不悔棋、
14、求和、认输的情况下的流程,若进行悔棋、求和等操作,则执行悔棋、求和的方法。图4-1 程序流程图4.2 开始游戏设计打开程序后,点击开始,弹出询问对话框(如图4-2),确定后,弹出局时和步时的设置界面(如图4-3,图4-4),设置好后开始游戏(如图3-3)。图 4-2 对话框图4-3 局时设置图4-4 步时设置局时是限制一盘棋的时间,时间到时就会结束该局;步时是限制走一步棋所用的时间,当一方走棋超时时,则认定该方放弃走棋,该方认输,对方获胜。代码如下:if (e.getSource() = anew) / 新游戏(N)int temp = JOptionPane.showConfirmDialo
15、g(this, 是否开始新游戏?, 新游戏,JOptionPane.YES_NO_OPTION);if (temp = JOptionPane.YES_OPTION) / 或者temp=0,表示点击是(Y);temp=1,表示点击否(N)int count = 0;/ 记录点击了几次取消或者几次没有输入值String input1 = (String) JOptionPane.showInputDialog(this,设定局时为(单位:分钟,如果输入0,则表示没有局时限制):, 局时设置,JOptionPane.PLAIN_MESSAGE, null, null, 0);/ 输入局时Strin
16、g ssJtime;if (Jtime = 0)/ 输入数值为0ssJtime = 无限制;elsessJtime = Jtime / 3600 + 小时+ (Jtime / 60 - Jtime / 3600 * 60) + 分+ (Jtime - Jtime / 60 * 60) + 秒;if (input1 = null | input1.equals() / 未输入数值JOptionPane.showConfirmDialog(this, 没有设置局时,局时为 + ssJtime,游戏信息, JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_
17、MESSAGE);count+; else if (Integer.parseInt(input1) 0) / 输入数值为负数JOptionPane.showConfirmDialog(this, 不能输入负值,局时为 + ssJtime,游戏信息, JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);count+; elseJtime = Integer.parseInt(input1) * 60;String input2 = (String) JOptionPane.showInputDialog(this,设定步时为(单位:秒
18、钟,如果输入0,则表示没有步时限制):, 步时设置,JOptionPane.PLAIN_MESSAGE, null, null, 0);String ssBtime;if (Btime = 0)/ 输入数值为0ssBtime = 无限制;elsessBtime = Btime / 3600 + 小时+ (Btime / 60 - Btime / 3600 * 60) + 分+ (Btime - Btime / 60 * 60) + 秒;if (input2 = null | input2.equals() / 未输入数值JOptionPane.showConfirmDialog(this, 没
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 中国象棋 游戏 设计