




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于JAVA的钻石跳棋游戏开发赖长征(信息工程学院 指导老师:李少芳)摘要:独立钻石跳棋游戏的开发是通过Eclipse平台为开发环境,采用Java语言开发制作。游戏是人类生活中必不可少的部分,一个好的游戏对人具有一定的意义。该游戏采用Java语言开发,利用了JAVA的灵活性和实用性。该游戏是单人思考的游戏,游戏玩法通俗易懂,游戏简单有趣,操作起来具有思考性,在游戏中菜单栏中,有帮助功能,用来解释游戏的玩法和一些游戏的背景,在菜单栏中还可以切换一些背景图片和调整棋子的颜色,通过这种方式,选择出你喜欢的颜色。在游戏的过程中,还提供了悔棋功能,如果觉得自己走错了,可以进行悔棋,然后做出正确的做法。关键词:独立钻石跳棋,java语言,思考性,悔棋 Diamond checkers game development based on JAVA赖长征Lai Changzheng(信息工程学院 指导老师:李少芳)(Information Engineering College Instructor: Li Shaofang)摘要:独立钻石跳棋游戏的开发是通过Eclipse平台为开发环境,采用Java语言开发制作。游戏是人类生活中必不可少的部分,一个好的游戏对人具有一定的意义。该游戏采用Java语言开发,利用了JAVA的灵活性和实用性。该游戏是单人思考的游戏,游戏玩法通俗易懂,游戏简单有趣,操作起来具有思考性,在游戏中可以切换一些背景图片,还可以调整棋子的颜色,选择出你喜欢的颜色,进行游戏的过程中,还提供了悔棋功能,如果觉得自己走错了,可以进行悔棋,然后做出正确的做法。Abstract: The development of independent diamond checkers game is through the Eclipse platform as the development environment, using Java language development and production. The game is an essential part of human life, a good game has certain significance to the people. The game using Java language development, the use of the JAVA flexibility and practicality. The game is a thinking game, the game play of user-friendly, simple game fun, operation have thought of, in the game menu, help function, used to explain the game and some of the games background, in the menu bar can also switch some background images and adjust the colours, by this way select the color you like. In the course of the game, also provides functions afterwards, if feel wrong, can calculate, then make the right way.关键词:独立钻石跳棋,java开发,单人游戏Keywords:independent diamond checkers,Java language,thinking,afterwards81 序言1.1跳棋问题的意图和作用跳棋,是一种人人都爱玩的游戏。因为它没有象棋一样尔虞我诈,烽烟四起;也没有围棋一样变幻莫测;也没有国际象棋那般大方典雅。但是它也一样妙趣横生1。最常见的跳棋是我们小时候玩的玻璃珠的那种跳棋,玩跳棋的最为激动应该是你为我搭桥,我也为你搭了桥。棋盘上充满了捷径,充满了陷阱,充满了阻碍,充满了快乐。通过一些棋子所搭的桥,我能够把棋子跳入到对方阵营中。相反的,对方也能够通过你的桥到达你的阵营中。这样你来我往,为游戏增添许多的乐趣。因此双方在下棋的时候都会特别的谨慎并且会不断的思考,不仅要给自己做桥,也要防止别人走不了你的桥。通过这样的方式,双方都不断的思考,这是多么有趣的一件事情 2。曾经有人说过,人生就像在打扑克,有些时候你能抓到好牌,有些时候你没有好牌,人生态度的关键是你怎么打好你手中的牌。跳棋何尝不是也像人生一样,人生漫漫路中,不停的有人帮助你,也有人不停的阻碍你前进的道路,这不就是跳棋里面的桥吗?有些桥是捷径,有些桥,反而是阻碍。人生路上,有非常多的路要走,有捷径的路,有陷阱的路,有通往成功的路,更有通往失败的路。这些路都是选择,如果我们要走对路,那么我们必须拥有一颗火热纯粹又智慧的心。遇到成功的路,我们要坚持不懈的为其添砖加瓦,使其更加牢固。3碰到阻碍人生发展的路,我们学会避免,学会抛弃。1.2独立钻石跳棋的发展和展望独立钻石跳棋的开始据说是在法国大革命的前夕,监狱的一个贵族,每天没有事情要做,一直无聊着,慢慢的,他想设计出一种单人玩的游戏,通过一段时间的努力,他发明了钻石跳棋这个游戏。相传这个囚犯,每天总是痴迷于自己的发明的游戏中,逐渐的,整个监狱的人都开始去玩玩这个游戏了。在我们国家,大家也叫它为孔明棋,在孔明棋的流传中,最为热门的是三国时期孔明所发明的一种益智棋。3当今世界传言说我国的“华容道”, 法国人的钻石跳棋游戏和匈牙利人发明的魔方是非常有挑战的游戏,因为里面含有非常丰富的数学知识。游戏规则是所有的棋子只能沿着棋盘上的横纵线“隔着一个棋子跳”,并且要能调到的地方刚好有空格,跳完之后把被跳过的棋子拿掉。直到最后,无子可动时,游戏就结束了。在20世纪年以前,全球的人认为走成功至少需要23步。不过在1912年的时候,Buhot的这个人创下走18步的世界纪录。后面到了1986年,中国上海的万萍萍发现了另一种18走法。最后,通过计算机技术发现“独立钻石”中获得18步是最为快捷的,而且方法就只有两种,就是万萍萍和Buhot的。42 项目分析2.1可行性分析由于数据要储存在计算机中,数据是数据结构的实现形式;所以当我们讨论数据结构的时候必须讨论它的运算才有意义。5该游戏的数据结构采用的是二维表。棋盘是二维结构,通过二维表来表示棋盘上的棋子是否存在,通过设定一个标志flag,当flag=true的时候,棋子显示正常,当flag=flase的时候,棋子显示为灰色。棋盘的布局是33 个棋子组成,其中33个棋子排成一个井字型,除掉了最中央的棋子,于是可以开始游戏,玩法是将棋子跳过邻近的棋子,要到达一个空着的位置,通过这种方式,被跳过的棋子被吃掉,跳的路径只能是上、下、左、右,不能斜跳,直到棋子没有跳法为止。因此,下棋的过程中要先判断棋子之间能否移动,如果不能移动,则没有发生变化,如果有移动,那么将会发生变化。判断棋子之间的移动之后,接下来是要进行棋子移动之后的棋子显示问题,移动之后,棋子变化的总共有三个,一个是移动前的棋子,一个是移动后的棋子,还有一个是中间的棋子。2.2 需求分析游戏作为一种打发时间的游戏,需要对用户进行了解,尽可能的满足用户的需求,因此需要了解用户对软件的感官需求和性能需求。钻石跳棋游戏的开发中,从以下两个方面来阐述。从感官需求方面,该游戏为单人智力游戏,适合大部分的游戏爱好者。有人曾经说过:“钻石跳棋,老少皆宜。”由此可见,喜欢玩的人士非常之多,大到长者,小到儿童,都喜欢玩这样的游戏。游戏中可以增加一些背景图片的切换以及游戏颜色的选择。从性能需求方面来看,该款游戏功能虽然非常简单,界面可观性,适合人群玩,再加上不同的棋盘的话,那么会有更多的人愿意去玩的。2.3棋类游戏通用开发方法有人说自学是非常辛苦的,因为一没有人给你做正确的引导,二没有使用正确的工具。不过这次的毕业设计我们有指导老师可以给我们指引道路,教会我们怎么去做,是非常好的一件事情。在学JAVA之前,我接触C语言比较多,所以对C语言这方面的知识和内容掌握的程度会稍微好点。但是从开始学习JAVA的时候,我发现了JAVA的很多地方比C语言的要好。JAVA作为当前世界主流的变成语言和开发工具,自然有它存在的道理。所以开发这样的游戏,用JAVA是个不错的选择,如果用C语言去开发这个游戏,我想我肯定开发不出来比JAVA更好。3开发工具与环境3.1 软硬件环境硬件需求:CPU:双核以上计算机内存: 1G以上软件需求:操作系统版本:windows 7/xp开发工具:Eclipse 6.0.1开发语言:Java浏览器:IE,netscape,360浏览器3.2 JAVA简介Java是一种编程语言,是一个平台,它是基于Java虚拟机技术,Java的发展慢慢地创建了一个平台。Java的重要性是非常重要的,从最新的报告来看,最受欢迎的世界变成语言就是JAVA,JAVA的重要性非同一般。Java编程语言独特性在于Java程序可以编译,又可以是进行解释型的。Java平台当前有三个版本,一个是Java SE,还有一个是JavaEE,最后一个是Java ME。具体的可以通过上网搜资料,找出这些版本的优缺点和作用。Java是一门编程语言,还是一个平台,它是基于Java的虚拟机技术,通过这个技术可以建立跨平台的优势。通过这个跨平台,很多人可以在不同的浏览器进行开发,不用担心容易出现乱码的,相对的,如果使用.net开发,只有开发的人员才可能使用到源码,在不同的浏览器中进行调试比较容易出现乱码。对于java和.net两种开发工具,各有千秋,不过当今世界主流是Java。所以,学习java的人也相对的比.net高,java的应用也相对广,比如说目前非常流行的安卓系统,就是基于java语言基础的。3.3 JAVA 编程环境 首先要进行环境变量的设置。环境变量的设置为“我的电脑”-属性-高级-环境变量,我们需要设置以下的3个环境变量:Path:系统从哪个路径去识别Java命令。classPath:这个为Java加载类的路径,当类在classPath中,Java的命令才能识别。JAVA_HOME:Java的安装路径。这三个变量必须正确设置,否则Java命令将可能不会正常运行,具体设置如下:Path: ;C:Progran Filesjavajdk1.6.0_01bin classpath: .;Progran Filesjavajdk1.6.0_01libdt.jar;Progran Filesjavajdk1.6.0_01libtools.jar JAVA_HOME: Progran Filesjavajdk1.6.0_01Eclipse 是开发Java非常好用的一个软件,操作起来非常方便,里面包含了很多函数,可以进行调用这些函数,进行操作的简单化,提高编程效率,对于一个开发者来说,这是非常好的一件事。4 独立钻石跳棋的游戏基础4.1独立钻石跳棋的传言钻石跳棋,有人称为单身贵族棋,在我国被称之为孔明棋。世界上的三大智力游戏分别为钻石跳棋、华容道和魔方。钻石跳棋是一种单人玩的游戏,总共由33 个棋子排成井字型的盘面,拿掉了最中央的那个棋子,然后开始进入游戏,如图4.1 所示。该游戏玩法虽然非常简单,但是其中拥有无数的变化,成为了当时风靡全球的智力游戏。因为大部分的人都在求解如何才能最短的获得胜利。4.2独立钻石问题的来源和问题难点 “独立钻石跳棋”的具体布局和下图所展示的图片一样,总共有33个棋子,排成一个形状。下棋规则:每个棋子通过棋盘上的纵横线“隔子跳”,如果跳到之后为一个空格,那么被跳过的棋子将被吃掉。这样,当棋子一直跳到最后的时候,并且没有棋子可以再动的时候,那么游戏就结束了。如果游戏结束的时候,并且棋盘上只剩下一个棋子,并且这个棋子刚好落在棋盘的中央,那么这种下法是最佳的结果!众所周知,递归是一种解决复杂问题一种非常好用的算法,运用递归算法可以使程序的结构简单便于可读,又易于检测它的正确性。因此它可以做为一个强大工具,但是算法本身是有难度的。树的先序遍历,主要是以下三个步骤 (1) 根结点的访问(2) 左子树进行先序遍历(3) 对右子树先序遍历,直到最后,没有子树的时候,问题结束。5 游戏设计的过程5.1图像界面的设计过程独立钻石跳棋的棋盘布局如下图所示,所以我在Eclipse里面中采用二维表的方式来表示棋盘,通过使用表格中的颜色来判定是否有棋子的存在。每个棋局的解法可以看成是一个棋子移动操作,通过符合规则的情况下每走一步,会吃掉一枚棋子,因此如何才能最优解是一个非常重要的问题。8Java中的图形用户界面由各种组件(component)构成,它们主要位于java.awt包与javax.swing包中,这个游戏的界面采用的是用二维表的形式表示棋盘,用方格的颜色表示是否有棋子,并且棋子的颜色可以进行切换,在棋子另外一边还有进行图片切换的功能,可以欣赏到不同的图片。具体的做法是:先引入Swing的包,然后选择自己喜欢的界面,设置好容器接着再设置好按钮和标签,将一些要用的组件放在容器上,然后帮组件增加不同的边框,最后进行处理,处理不同的事件辅助和技术支持。引入Swing包为import javax.swing.*; Swing程序使用了AWT的底层结构和事件模型,因此我们需要提前导入两个包:一个是import java.awt.event.*;另一个是import java.awt.*;假如还有事件处理的包,则还需要导入:import javax.swing.event.*;然后是选择喜欢的界面风格,先设置好最顶层的容器,在图形界面中,至少要有一个顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供保证,打个说明:JFrame(框架):主程序窗口JDialog(对话框):表示一个对话框,对话框属于二级窗口JApplet(小程序):显示一个小程序界面增加其他组件frame.pack();frame.setVisible(true);使用编辑的关键是java.awt.*里面的类:GraphicsEnvironment和GraphicsDevice。5.2游戏设计中的行棋设计过程在这个游戏中实现钻石跳棋的游戏功能,必须要有一个棋盘,所以,我先使用继承JPanel,然后在JPanel上画出一个9*9的棋盘。当然,JPanel必须放在JFrame中,所以,又通过继承JFrame得到一个实例。在下棋的过程中,通过对JPanel增加鼠标事件监听器MouseListener,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标),进行走棋子。 钻石跳棋中,棋子的行动受到了下棋规则的限制,在这个游戏当中,一个棋子只能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲状腺癌术后护理课件
- 甲状腺功能的调节
- 18 牛和鹅教学课件
- 新解读《GB-T 36788-2018病媒生物密度监测方法 蜱类》
- 用谷歌地球做课件
- 用电安全知识培训课件通知
- Unit6 Celebrating the Big Days单元测试卷(含答案) 仁爱科普版(2024)七年级英语上册
- 用电安全知识培训大纲课件
- 生铁废钢基础知识培训课件
- 生理解剖兔子实验课件
- 消化性溃疡疾病的护理
- 模具公司品质管理制度
- 2025-2030年中国少儿期刊出版行业市场深度调研及前景趋势与投资研究报告
- 学校食材供应商实地考察核心内容清单
- JG/T 220-2007铜铝复合柱翼型散热器
- 行车安装使用安全协议书
- T/CCAA 39-2022碳管理体系要求
- 江苏省扬州市广陵区梅岭中学2025届七下数学期末综合测试模拟试题含解析
- 烟筒安装施工合同协议书
- 医院护理投诉课件
- DB62T 3155-2018 兰州市新区回弹法检测泵送混凝土抗压强度技术规程
评论
0/150
提交评论