




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
贵州航天职业技术学院java课程设计报告 中国象棋专 业: 软 件 技 术 班 级: 软 件 (1) 班 学 号: a093gz053020129 姓 名: 龚 吉 祥 指导老师: 肖 宏 启 时 间: 2011 6 - 01 目录摘要21绪论3 1. 1休闲类游戏开发简述31. 2中国象棋发展现状42相关技术简介4 2. 1面向对象程序设计方法5 2. 2 java技术53需求分析5 3. 1系统功能需求5 3. 2系统功能实现分析53. 3小结64系统总体设计6 4. 1设计内容6 4. 2系统结构图7 4. 3游戏流程图95系统实现与测试11 5. 1系统开发环境11 5. 2系统实现11 5. 3系统测试216总结21参考文献21附录25摘要【摘要】 随着信息技术的飞速发展和日趋激烈的商业竞争,企业已不再满足于独立、零散的办公自动化应用,企业需要的是协同工作、综合、集成化的解决方案。而网络是解决由于物理距离造成的信息交流不畅、协商沟通不便的办公瓶颈问题的最佳方式。企业网上办公自动化通过对各办公自动化要素的闭环整合,实现了工作流、信息流、知识流和办公自动化系统的整合管理,提供了一个科学、开放、先进的信息化办公平台,实现办公自动化,并进行远程办公或在家办公。企业网上办公自动化将人从繁琐、无序、低序、低端的工作中解放出来从事核心事务,整体提高了单位办事效率和对信息的可控性,降低办公成本,提高执行力,使管理趋于完善。 中国象棋被誉为中国的国粹,从诞生到现在已经成为国人最喜欢的棋类竞技游戏,对青少年的影响也是很广泛。双方在象棋的对弈过程中,体验着智慧和快乐,可以说中国象棋游戏完全代表了博弈游戏。中国象棋游戏的设计工作是非常复杂和重要的,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,将牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中还会应用类的继承机制以及一些设计模式。如何设计和开发好中国象棋游戏,对与提高java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,开发者需要处理好各个类之间的集成关系,还要处理各个类的相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。本文主要研究基于java 技术的中国象棋游戏的分析与设计,对中国象棋游戏特殊的行棋规则给予了细致的分析与理解,设计出了一种实时可行的行棋规则,从移动范围、移动方向和穿越障碍几个方面重新描述行棋规则,基于java技术通过计算机模拟实现了中国象棋特殊的行棋规则算法,设计出了一种可行的方法,使每个棋子的行棋路线都严格遵循本身的行棋规则,游戏的实战对弈得以实现,通过实验运行,证明这种限定棋子行棋路线的方法是可行的,并得到了预期的目标。【关键词】 象棋,棋谱,棋子,棋子类别。1 绪论:1.1休闲类游戏开发简述休闲类游戏(casual game)可以包含任何游戏类型的游戏性要素,通常休闲游戏的游戏规则相对简单,无需特别的技巧,也不需要较长的时间就能完成游戏。休闲游戏经常出现在不同的平台上,包括家用游戏机、掌上游戏机和个人电脑上等等。休闲类游戏通常也适合于各种不同性别、地域和文化的玩家群体。 本文所涉及的游戏项目,是一款棋类休闲游戏,基于 windows 平台,无需较长的时间就能完成一局的游戏,一局游戏一般在 5 到 20 分钟左右就能完成。根据该局游戏玩家的游戏策略等因素,一局游戏的完成时间会有一定差别。在游戏开发团队中,团队成员主要有制片人等管理人员、程序员、美术(本文中的美术一词代表的是美术制作人员,在一些游戏公司中用 美术 这个词,而不用 美工 这个词)和策划(游戏设计师)。通常还需要音乐制作人员,但在多数公司中,主要的音乐制作任务都会交由独立音乐制作人或者专门的音乐制作公司完成。 早期传统的游戏程序是大多都是单线程执行的,这是由于游戏软件本身的内在逻辑,以及需要较高的实时交互性。如下一页的图所示,说明了通常一个游戏软件的运行流程。 在程序初始化阶段,进行内存分配,从硬盘读取资源,建立相关的辅助结构等。接下来进入游戏主循环不停的循环运行直到接收到退出游戏的指令或者消息。在主循环中,首先接收玩家的输入,然后根据游戏内部规则改变游戏的状态,然后进行图形图像处理,输出一帧游戏画面,接下来根据帧速率和游戏速度的要求,等待一段时间后继续执行主循环或者直接开始下一个循环。1.2中国象棋发展现状:中国象棋发展至今已有二千三、四百年的历史了,早在战国时期就有正式记载,堪称中国的国粹。据统计,中国有2亿人会下中国象棋,这相当于平均6至7个人中就有1人会下,可见它有着广泛的群众基础。方寸之间包含天地玄机,人生哲理,使人越是细玩越觉其味悠然深远。简单的棋规,便捷的载体,使得他成为雅俗共赏的竞技项目。然而,如今中国象棋的发展前景却令人堪忧。导致这种现象的主要因素有:第一,就东亚地区,围棋的影响力胜于中国象棋。第二,中国象棋虽然在国内很受欢迎,但在世界舞台上名声却不如国际象棋那么响亮。之所以会存在这两个因素,都是因为在国际赛事上中国象棋的参赛选手大都是华人,而非华裔的选手又大都是业余选手,这无疑使比赛失去了竞争力,而围棋有韩国和日本的参与,国际象棋有全世界国家的加入。第三,进入了21世纪后,供人们娱乐活动的选择越来越多,中国象棋在年轻人的心中已开始渐渐失去魅力。 各种中国象棋软件的开发与应用,尤其是在网络方面的推广,使得中国象棋得到了很好的宣传,全面展示了中国象棋的风采、优点与特色,同时也让外国人认识到中国象棋这一我国的“国粹”。 中国象棋打谱系统正是为这一可行性而开发设计的,玩家可以通过它很好的研究棋谱,学习中国象棋技术,提高水平。想必在未来的几年随着中国象棋在各个领域的推广,必定会带来巨大的影响和经济效益。2 相关技术简介:2.1面向对象程序设计方法:java面向对象程序设计的基本思想是通过构造和组织对象来求解问题的。对象是很好理解的,任何一种物体都可以被认为是对象,例如,汽车就是一种对象。对象具有两个最基本的属性:具有一定的物质基础和一定的功能,这两种基本属性在java语言中表现为拥有一定的存储单元并具备一定的功能。理解了java的这种面向对象程序设计的基本思想之后,在以后的编程过程中,就应当个构造人们容易理解的更接近于真实物理世界物体的对象。java面向对象程序设计的过程非常简单。这里介绍一种自顶向下的程序设计方法,首先构造一个类来处理需要解决的问题,然后根据已经拥有的类(例如以前求解其它问题时实现的类),分析和构造新的类,设法将问题分解下去,而最开始构造的类通过组织这些新构造的类、已有的类及由他们生成的实例来求解指定的问题。这个过程可以继续递归下去,用在新构造的类上,直到最后解决了指定的问题,例如java的应用程序和小应用程序都必须有一个类作为入口求解问题。在计算机语言中,面向对象的类一般具有三个基本特性:封装性、继承性和多态性,这三种特性进一步简化了java求解模型,提高了程序的复用性,节省了程序的代码量,从而提高了软件的生产率。2.2java技术:图形用户界面不仅可以提供各种数据的基本图形的直观表示形式,而且可以建立友好的交互方式,从而使计算机软件可以设计得十分简单易用。从java语言诞生到现在,java语言已经提供了两代图形用户界面。第一代图形用户界面awt提供了基本的图形用户界面,它强烈地依赖于具体的计算机操作系统,而且缺少基本的剪贴板和打印支持功能。现在第二代图形用户界面swing对awt进行了扩展,swing不仅在功能上比awt强大,而且在很大程度上克服了awt的上述缺点,它所设计的图形用户界面与具体的计算机操作相关性很小,而且可以定制指定的操作系统风格的图形用户界面。gui(图形用户界面)组件构成了图形用户界面的基础。在java程序设计中,要求按照一定的布局方式将组件安排在容器中,然后通过事件处理的方式实现人机交互,而容器本身也是组件,这样在容器中也可以含有容器,从而可以通过这种嵌套方式方便地组合各种组件。事件处理模型是java语言提供的一种人机交互模型,它使得用户能够通过鼠标、键盘或其他输入设备来控制程序的执行流程,从而达到人机交互的目的。对鼠标、键盘或其他输入设备的各种操作一般也称为事件。java语言对这些事件的处理模型是采用面向对象的方法,即通过对象的形式把各种事件进行封装和处理。这种事件处理模型的三个基本要素是事件源、事件对象以及事件监听器。事件源是各种组件,是接受各种事件的对象。在各种事件源上运用鼠标、键盘或其他输入设备进行各种操作,就会有事件发生。每种操作一般都对应着事件,java语言通过事件对象来包装这些事件。对事件进行处理是通过事件监听器实现的。因为鼠标事件也是一种事件,所以对鼠标事件进行处理要遵循事件处理模型。鼠标事件的处理也是建立在事件源的基础之上,以事件对象本身,最后通过事件监听器进行处理。类java.awt.event.mouseevent包装常用的鼠标事件,例如,按下鼠标键和放开鼠标键等。类mouseevent的实例对象记录了鼠标的当前位置和状态发生变化的鼠标键等。对鼠标事件进行处理最关键的是实现事件监听器接口。这些相关接口包括mouselistener,mousemotionlistener,mousewheellistener,mouseinputlistener。前面三个是包java.awt.event中的接口,最后一个接口mouseinputlistener来自包javax.swing.event。接口java.awt.event.mouselistener主要用来处理按下鼠标键、放开鼠标键、单击鼠标键、鼠标进入组件内和鼠标离开组件区域等事件。 对鼠标事件进行处理,就是要设计类,实现上面的鼠标事件监听器接口,然后在事件源中注册处理鼠标事件监听器的对象,以便对鼠标事件进行处理。3 需求分析3.1系统功能需求:象棋盘由九道直线和十道横线交叉组成,棋盘上共有九十个交叉点,象棋子就摆放和活动在这些交叉点上。棋盘中间没有划通直线的地方,叫做“河界”;划有交叉线的地方,叫做“九宫”。九道直线,红棋方面从右到左用中文数字一至九来代表,黑棋方面从右到左用阿拉伯数字1至9来表示。 棋子共有三十二个,分为红、黑两组,每组十六个,各分七种,其名称和数目如下:红棋子:帅一人,车、马、炮、相、士各两个,兵五个。黑棋子:将一个,车、马、炮、象、士各两个,卒五个。 在对局时,由执红棋的一方先走,双方轮流各走一着,直至分出胜负或走成和棋为止。轮到走棋的一方,将某个棋子从一个交叉点到另一个空着的交叉点,或者吃掉对方的棋子而占领叉点,都算走了一着。双方各走了一着,称为一个回合。 帅(将)每一着只许走一步,前进、后退、横走都可以,但不能走出“九宫”。帅和将不准在同一直线上直接对面,如一方已先占据,另一方必须回避。士每一着只许沿“九宫”斜线走一步,可进可退。相(象)不能越过“河界”,每一着斜走两步,可进可退,即俗称相(象)走田字。当田字中心有别的棋子时,俗称塞相(象)眼,则不行走过去。 马每着走一直(或一横)一斜,可进可退,即俗称“马走日字”。如果在要去方向紧靠一直(或一横)的地方,有别的棋子挡住,俗称“蹩马腿”,就不能走过去。 车每一着可以直进、直退、横走,不限步数。 炮在不吃子的时候,走法同车一样。 兵(卒)在没有过“河界”前,每着只许向前直走一步;过“河界”后,每着可以向前走一步,也可以横走一步,但不能后退。走一着棋时,如果己方棋子能够走到的位置有对方棋子存在,就可把对棋子吃掉而占领那个位置。只有炮吃了必须隔一个棋子(无论是哪一方的)跳吃,即俗称“炮打隔子”。除帅(将)外,其它棋子都可以听任对方吃,或主动送吃。一方的棋子攻击对方的帅(将),并在下一着要把它吃掉,称为“将军”,或简称“将”。被“将军”的一方必须立即“应将”,即用自卫的着法去化解被“将”的状态。如果被“将军”而无法“应将”,就算被“将死”。轮到走棋的一方,帅(将)虽没被对方“将军”,却被禁在一个位置上无路可走,同时己方其它棋子也都不能走动,就算被“困毙”。3.2系统功能实现分析:象棋棋谱界面,记录棋步,走棋与吃棋,胜负判断,设计中国象棋主菜单,下拉分菜单为制作棋谱,保存棋谱,演示棋谱,退出棋谱。(1)制作棋谱:实现棋谱的显示,可以实战对弈功能,下棋规则的监督。(2)保存棋谱:实现棋谱的保存,并生成一个棋谱文件,以便演示棋谱时使用。(3)演示棋谱:实现对弈过程的演示,可以自动演示也可手动演示,并有悔棋的步骤。 3.3小结:本次对在java程序中设计中国象棋游戏进行了分析,主要描述了象棋的系统设计需求,分别有制作棋谱,保存棋谱和演示棋谱,讲述了象棋的游戏规则,象棋的操作步骤,例如,每个棋子必须按照游戏规则进行走棋,若不按照游戏规则进行操作棋子将回放回原处,当被对方棋子“将死”或被吃光棋子都被认为是认输了,若不进行悔棋申请,则游戏结束。4系统总体设计:4.1设计内容:将中国象棋的整个系统划分为若干个模块,每个模块完成一个子功能,把多个模块组织起来实现整个系统的功能,模块化设计方法强调清楚的定义了每个模块的功能和它的输入/输入参数,模块内部特性完成其功能的程序代码和仅供该模块内部使用的数据,通过用系统流程图描述了中国象棋游戏的整体结构和操作方法步骤这样就很清晰的看到中国象棋如何按照游戏规则来进行走棋。4.2系统流程图:开始 制作棋谱,开始游戏将军是否符合规则是否走棋放回原处悔棋否是放回原处游戏结束,保存棋谱演示棋谱结束开始点击制作否 是点击保存否 是制作棋谱点击演示否是保存棋谱读入文件文件空是否错误处理演示棋谱结束开始4.3游戏流程图:变量初始化i=1;j=1i=r;j=c否是求出棋点i+;j+设红棋类别,颜色设黑棋类别,颜色设红棋棋点坐标设黑棋棋点坐标结束开始按下鼠标否棋子不移动棋子不移动否是获取棋子对象获取棋子位置i=1,j=1i=x轴长,j=y 轴长否是检查棋子所在的棋点i+,j+结束5系统实现和测试:5.1系统开发环境:(1)在windowsxp环境下安装jdk1.6并进行java环境变量的设置(主要是classpath和path两个文件的配置)。(2)在windowsxp下直接安装eclipse,这不用进行环境变量的配置。5.2系统实现:(1)制作棋谱运行后的效果图:(2)演示棋谱的效果图: 5.3系统测试:本次java设计的开发工具是jdk,java applicatio程序通过文本编辑器,新建一个文件,把代码编写在文本内,通过运行如图:6总结:通过此次设计,使我们对自己所学专业有了更深一层次的了解,并且有了一些切身的体会。在设计过程中,我认识到光有计算机理论知识是不行的,还得有更丰富的实践经验,也就是多动手、多动脑。此次收获最大的要属开发软件、编写代码。开发出一个好的系统,要细心,要有激情的态度,且持之有恒。这个基于java中国象棋的编程,可以说还存在很多问题,有很多功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 推拿治疗学试题附答案详解【综合题】
- 解析卷-黑龙江省虎林市中考数学真题分类(数据分析)汇编定向练习试题(解析卷)
- 组合逻辑电路分析与设计试题及答案
- 2025年学前教育机构师资队伍教师培训与课程设计研究报告
- 济南先行投资集团有限责任公司及权属公司招聘笔试题库参考答案详解
- 2025年智能物流系统研发资金申请报告
- 考点解析-北师大版8年级数学上册期中试题及答案详解一套
- 2025至2030年中国硫铝酸盐水泥行业发展前景及投资战略咨询报告
- 2025年深海矿产资源勘探技术深海资源勘探技术产业发展与政策支持报告
- 2025年肿瘤早筛技术在宫颈癌早期诊断中的应用前景与市场潜力报告
- 2025版新能源项目保证担保借款合同
- 危大工程安全监理管理制度
- 2025年行政管理学专业试题及答案
- 校园绅士淑女教育实施纲要
- 企业安全管理机构的主要职责
- 2025至2030国内外海洋工程防腐应用趋势行业产业运行态势及投资规划深度研究报告
- 2023年生态环境综合行政执法考试参考题库(400题)
- 巡检员质量培训
- 胸腹瘘个案护理
- 护理课程思政讲课
- 2025年蜀道集团招聘笔试参考题库附带答案详解
评论
0/150
提交评论