跳 棋 赖 长 征 查 新

上传人:jkl****17 文档编号:173797070 上传时间:2022-12-12 格式:DOC 页数:8 大小:53.12KB
返回 下载 相关 举报
跳 棋 赖 长 征 查 新_第1页
第1页 / 共8页
跳 棋 赖 长 征 查 新_第2页
第2页 / 共8页
跳 棋 赖 长 征 查 新_第3页
第3页 / 共8页
点击查看更多>>
资源描述
基于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,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标),进行走棋子。 钻石跳棋中,棋子的行动受到了下棋规则的限制,在这个游戏当中,一个棋子只能隔子跳, 并且只能隔一个位置跳,由此我们可以发现通过二维表来解决棋子的行棋中,两个棋子要么同时在同一行,或者在同一列中。因此我们需要判断棋子能否进行移动。第一步:判断选中的棋子能否进行移动,第二步:判断选中棋子的周围有没有可以帮助它跳跃的棋子,第三步:判断跳跃之后的为止是否是空的地方。棋盘的布局通过二维表的网格线来表示,横纵线交纵表达出了棋子的位置和行棋的路径,在游戏界面的另一部分用来设计游戏的图片界面,用来切换图片,切换出自己喜欢的图片,绑定一个变量用来进行切换图片。在界面的上端部分用来设计游戏的菜单栏,菜单栏包括了一下内容,分为4个部分,悔棋部分,图片切换部分,棋子颜色切换部分,帮助部分,每个部分使用菜单栏下拉框,点击即可使用功能,菜单栏使用的是swing的监听鼠标的功能,当鼠标点击了之后,会执行相应的程序代码,调用函数,从而达到实现需求的内容。6 程序结果展示6.1程序前台展示 界面运行的展示图该图片为游戏运行之后首次出现的界面,该界面分为三部分,第一个部分是图片部分,可以进行更换图片,第二个部分是游戏部分,在该图片的右边,可以进行游戏,第三部分在图片的上方,有工具栏,里面有部分功能。这张图片是游戏运行之后,菜单栏上面的功能,这个功能是进行切换图片的功能,可以进行切换的可以根据个人的爱好进行选择,有些人喜欢春天,夏天,或者是秋天和冬天。这张图片展示的该游戏的帮助功能,这个功能的使用就是告诉我们大家这个游戏的玩法是什么,这个游戏是怎么玩的。这张图片展示的游戏的另外一个功能,更换棋子的颜色,有些人喜欢用红色的棋子,有些人喜欢绿色,有些人可能喜欢用红色的棋子。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 娱乐时尚


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!