《扫雷游戏软件设计与实现.doc》由会员分享,可在线阅读,更多相关《扫雷游戏软件设计与实现.doc(19页珍藏版)》请在三一办公上搜索。
1、扫雷游戏的设计与开发摘 要本论文研究的是以eclipse 3.4.2为开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法;重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归”这个概念而使其简单化。本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待以后完善。关键词:扫雷;eclipse 3.4.2;事件;jav
2、aThe design and development of mine clearance gameAbstractWhat my thesis research for is basic on the develop environment of eclipse 3.4.2 , design and develop a mine clearance game,its function is similar to the mine clearance games of the Windows Operating System .The thesis has introduced the lay
3、out of mined areas and the method of how to create the mines at random.Its mainly through the use of vairies of components in Visual Basic 6.0 and the combination of some simple calculations ;the thesis lays emphasis on introducing the processing of each event in the game .Among these events ,the mo
4、use event and the event of clearance of the area which isnt close to the mine field are much more important.The theory of mouse event is that the intention of user is learned by the information sent out by the mouse and then the program runs according to the information .The other event is simplifie
5、d by the introduction of the concept of recursion.This design just completed the basic function of mine clearance game.The details still need to be perfect.Key words: Mine clearance, eclipse 3.4.2, Affairs, java 目 录1引言.11.1 课题背景及意义.11.2开发工具的选用及介绍.22.游戏软件的设计与实现.52.1软件功能需求分析.52.2游戏初始化.82.3雷区的布置.92.4主要
6、功能模块实现.102.4.1 鼠标事件.112.4.2 地雷及雷区表面探测情况.112.4.3 清除未靠近地雷的方块.122.5界面实现. 123游戏软件测试.144 结论与展望.16参考文献.17 1引言1.1 课题背景及意义 随着不断发展的社会,科学也一步步的提升,而计算机也成为了当今社会不可或缺的一部分,今天,人们用计算机工作、通讯、聊天、视频、游戏、娱乐。我们每天都在使用着计算机。在如此快速的社会里,每一个人都有着重大的压力。而此刻游戏也就成了我们没一个人用于释放压力的首选。 近年来,随着网络的发展,游戏便成为了许多人关注的焦点。与传统的影音产业一样,游戏产业也是娱乐行业的一个重要组成
7、部分,基于数字化的网络游戏更让人们找到了前所未有的感受,并已经成为全球互联产业的热点。就在我们所熟悉的windows7系统中就携带了不少这样的游戏。扫雷游戏就是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。不过还是有很多人对这款游戏不太了解。本次的毕业设计我将利用eclipse 3.4.2作为开发工具,开发一款类似的“扫雷游戏”。从而对这款游戏能够有进一步的了解,熟悉此游戏的后台运行情况。并且此次毕业设计能将书本上所学的理论知识与实际相
8、结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计能使自己在程序的开发和设计上有新的认识和提高。本次毕业设计既锻炼了我们的实际动手能力,又在老师的指导下进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要意义。通过研究Windows操作系统自带的扫雷游戏,我们可以发现在这个游戏中主要有以下几个关键的地方: 1.初始化问题,关于产生雷数的问题,即随机产生本局游戏中雷的总数,游戏的每一个级别产生的雷数不同,如何做到在不同的级别中产生不同的雷数。关于类的分布问题,在游戏中雷的分布对于每一个小区域是不同的,如何获取周围地区分布的雷数,在雷随机分布之后,如何获取每个区域周围累的个数。
9、 2.对鼠标事件的处理问题,既在游戏过程中对鼠标事件应如何做出反应。当单击鼠标左键时,软件对该事件的处理,是雷的处理和不是雷的处理。当单击鼠标右键时,系统做出的处理。 3.游戏中的另一个难点是,在游戏过程中,左右键同时点击数字,会有一个提示,这里的做法是如果是数字的格子,监听到左右键同时点击数字事件,查找这个格子周围的8个格子的红旗数,如果周围的红旗数正好是格子上的数字,那么就将除红旗之外的所有内容都显示出来。4.游戏规则、胜负判断方法,关于时间的计算。经过四年的大学学习,我对程序开发和设计、JAVA语言等几种语言及eclipse等多个开发平台已经有了一定的了解与认知,本次的毕业设计便是将书本
10、上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计使自己在程序的开发和设计上有新的认识并能有所提高。1.2开发工具的选用及介绍 通过在大学的学习,对多种语言及多个程序开发平台、软件有了初步的了解,例如:C语言、C+、VB、JAVA、HTML等。VC+、Visual Basic 、Microsoft.NET、Eclipse SDK等软件。 而eclipse 是一个被人们熟知的优秀Java集成开发环境(IDE),eclipse是众多Java程序员的首选。和NetBeans一样,eclipse也是一个完全免费的软件,而且还是开源的。同时,eclipse不需要安装,解压
11、出来即可使用,相当方便。故此选择Eclipse作为此次毕设所用的开发工具。 但Eclipse是使用Java语言编写的。所以要运行eclipse必须在机器中安装JDK,遗憾的是,eclipse官方没有提供简体中文版的下载,只有英文版的,不过,经常使用eclipse习惯了之后就不会过于依赖于软件界面的语言了。Eclipse不仅能开发Java程序,还能开发JSP,C+等程序。Eclipse官方将软件分成了普通Java版,JEE版,C+版。每个版本都针对相应的语言各司其职,其中JEE版包括Java的全部功能。 Java Development Kit (JDK) 是Sun公司针对Java开发员的软件开
12、发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Ec
13、lipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Ec
14、lipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础
15、上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclip
16、se 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。 Eclipse的主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Ecli
17、pse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些
18、部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 CPL发布,第三方组件有各自自身的许可协议。2.游戏软件的设计与实现2.1软件功能需求分析 在设计之前,先来了解这款游戏的流程。流程规划大致上可以分为三个部分:画面初始、游戏者按下第一个方块和为非地雷方块时展开。 图2.1扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开
19、并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键以打开其周围剩余的无雷格。 1代表1的上下左右及斜角合计有一颗雷,依次轮推,2则有2颗,3则有3颗.在确实是地雷的方格上点了标记,就安全了,不是炸弹的被点了标记,后面会被炸死。问号就是不确定这里有没有雷,不会存在点错了被炸死的状况。游戏的操作方法主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方
20、块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键则方块会以未标示取消疑似二者关系不断循环。本程序为扫雷游戏的实现,首先是要实现扫雷游戏的基本功能,根据扫雷游戏的上述玩法,下面对该游戏的功能做个简单的介绍。扫雷游戏的基本功能 : 点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止并显示,这其实是一个递归过程。 点击鼠标右键于未知区域,则将其置为有雷而不管是否真的有雷。可选择初、中、高三级,以及帮助用于介绍扫雷游戏的玩法。雷区上部左侧显示总雷数减被标明有雷区域雷的数目。雷区上
21、部中间位置显示一按钮用于开局。雷区上部右侧显示扫雷的时间。将雷全部扫清后,则显示胜利界面。 通过亲身体验或其它交流手段,可获知这个游戏是在屏幕显示的一个雷区范围内(如图2-2所示),系统预先埋设了一定数目的地雷(图2-3中开始左侧小窗显示的数字),游戏者在游戏过程中通过判断,若能正确标记出雷区中的所有地雷,则游戏胜利(如图2-3所示),图2中开始右侧表示游戏所用时间;否则踩雷,游戏失败(如图2-4所示)。具体的游戏规则如下:1) 单击“开始”,出现图2-2,其中包括地雷计数器窗口、计时器窗口和雷区。开局后,计时器便启动,每标记一个地雷,地雷计数器减1;2) 用鼠标左键单击某个方块,可挖开它。若
22、所揭方块下有雷,则踩雷,即所有含地雷的块都标记,这局游戏失败;如果方块上出现数字,它代表在它周围的八个方块中共有多少颗地雷;3) 用鼠标右键单击某个方块,则标记此块下埋着地雷(也有可能是误标),每标记一个地雷,地雷计数器减1;4) 用鼠标右键击打某个方块两次,则取消标记。 图2.2 初始界面 图2.3 胜利界面 图2.4 失败界面软件功能架构图如下:鼠标左键鼠标右键显示周围雷数标记此处是雷取消标记你赢了!你输了!初级按钮中级按钮高级按钮 图2.5 软件功能架构图2.2游戏初始化 我们可以清楚的看到,游戏界面主要分为两个主要部分:1. 计数及状态区;2.地雷区。 设计整个游戏
23、的结构,一般采用MVC作为整个游戏的结构,结构清晰又容易理解。 一般来说,做这些游戏的时候,我们先从底层的model开始做起。在这里,model部分就是由两张二维数组表组成,其中一张是mine,他上面放的就是一些最底层的数据,也就是说雷得分布情况。另外一张表是界面表chess,就是记录一些显示给用户的数据。 然后要做的是对两张表的初始化,这一步非常重要,对于第一张表mine的的初始化的方法为先随机n个不重复的雷,分布到mine表中,然后,对雷周围的格子进行赋值。这里我用到方法为:遍历所有的雷,将雷周围的格子加一,这样就能达到赋数值这个工作了。其中,这里有一个难点,就是如何判定雷周围的八个格子,
24、其实方法很多,但是大多代码繁琐,或者处理边界困难。这里我用到的方法是,计算两个格子之间的距离,如果与雷的距离为1或者根号2的话,就能确定该格子在雷的周围。然后是对chess进行初始化,chess就是界面表,也就是说,这里的数据是直接显示给用户看的。当然,初始化部分就是直接将赋值为板,就是等待去扫雷的状态。 其次,就是扫雷部分,点击一个格子,利用jlabel的触发器将格子坐标传送到controller中去,controller中根据mine表判断点击的是什么,分三种情况,如果是雷,那就将底层的所有数据都赋到chess中,然后gameover。如果是数字,那就直接把数字赋值到chess中去。如果是
25、0,那就非常麻烦了,这也是这个游戏中的一个难点,玩过扫雷的同学应该都知道,点击0时,会散开周围所有的0.我这边的解决方法是,将点到的0的坐标加到list里面去,在遍历这个list,取出里面的坐标,查找他周围的8个格子,如果是0,且坐标不与list中的坐标重复,就将第二次查找到的坐标放到list里面,然后取list的下一个值,点击这个点,然后就是循环上面的语句。 游戏中的另一个难点是,在游戏过程中,左右键同时点击数字,会有一个提示,这里的做法是如果是数字的格子,监听到左右键同时点击数字事件,查找这个格子周围的8个格子的红旗数,如果周围的红旗数正好是格子上的数字,那么就将除红旗之外的所有内容都显示
26、出来。这样,游戏界面的初始化工作就基本完成了,下面就是地雷的随机产生。2.3雷区的布置设置初始雷区大小的代码是:setSize(297,377);this.setBounds(400, 100, 400, 500);具体实现如下所示:for(int i=0;ibon;i+) int p=1;int m=(int)(Math.random()*row*col);while(p=1) int l=1; int j;for( j=0;ji&l=1;j+) if(a1j=m) m=(int)(Math.random()*row*col); l=0; if(j=i)a1i=m;p=0;b1.setTex
27、t(bon+);b2.setText(0);2.4主要功能模块实现程序设计共设计了BorderLayout、Container、Font、GridLayout、Insets、ActionEvent、ActionListener、MouseAdapter、MouseEvent、JButton、JFrame、JLabel、JMenu、JMenuBarJMenuItem、JPanel、Timer等类。 以下是个别类的介绍:(1) BorderLayout类:用于设置边缘布局,设置边界大小。 p.add(p3,BorderLayout.NORTH);p.add(p1,BorderLayout.CENT
28、ER);(2) Container类:该类设置容器大小,存放内容,包括按钮,标签,计时器。 private static final long serialVersionUID = 1L;private Container contentPane;private JButton btn;private JButton btns;private JLabel b1;private JLabel b2;private JLabel b3;private Timer timer;private int row=9;private int col=9;private int bon=10;(3) Fo
29、nt类:该类用于设置字体大小、颜色、形状。btnsi.setFont(new Font(null,Font.BOLD,25);(4) GridLayout类:该类设置扫雷中方格布局。将网格按钮上的内容设计为空。 p2.setLayout(new GridLayout(row,col,0,0);for(int i=0;irow*col;i+)btnsi=new JButton();(5) ActionEvent类和ActionListener类:该类为游戏中活动事件和活动监听。mi1.addActionListener(this);menu1.add(mi1);mi2.addActionList
30、ener(this);menu1.add(mi2);mi3.addActionListener(this);menu1.add(mi3);(6) MouseAdapter类和MouseEvent类:该类为鼠标事件和鼠标适配器。对应鼠标操作,以及鼠标点击操作,如单机、松开。(7) Timer类:该类为时间类,包括计时器开始,清零等。2.4.1 鼠标事件在游戏过程中,我们利用鼠标所发出的信息了解游戏者的意图,进而作出相对应的动作。 class NormoreMouseEvent extends MouseAdapterpublic void mouseClicked(MouseEvent e) S
31、ystem.out.println(b);for(int i=0;icol*row;i+) int x1=i/col+1; int y1=i%col+1; 在窗口的软件中,鼠标的应用是不可或缺的,但鼠标固然好用,如果程序设计不当,也可能造成使用者的不便。游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块。2.4.2 地雷及雷区表面探测情况布雷 b1.setText(bon+);b2.setText(0);判断是否为雷if(am1n1!=10&btnsk.getText()=) btnsk.setText(*o*); 失败处理if(amn=100) btnsj.se
32、tText(); btnsj.setEnabled(false); b3.setText(你输了 !); 胜利判断并处理 if(flag=bon) timer.stop(); b3.setText(你赢了!); 该程序代码完成如下具体功能:判断是否有雷,首先判断是否在雷区域,如果在雷区域:记时器停止全部雷区域出现,显示你输了;如果不在,则显示附近雷区域个数并继续直到胜利或。2.4.3 清除未靠近地雷的方块当点击方块不靠近地雷是进行雷方块扩展其具体方法为: for(int i=0;icol*row;i+) if(btnsi.getText()!=) int x=i/col+1; int y=i%
33、col+1; if(e.getSource()=btnsi&axy=100) btnsi.setText(); btnsi.setEnabled(false); axy=10; for(int k=0;kcol*row;k+) int m1=k/col+1; int n1=k%col+1; if(am1n1!=10&btnsk.getText()=) btnsk.setText(*o*); 其中包含有递归思想,对周围没有一个雷的空白区域如果可以扩展则进行扩展,并对扩展区域进行重绘。2.5界面实现对照windows自带扫雷游戏,对此,在程序中界面设计运用JPanel定义了JButton,JMen
34、u,JMenuItem三个面板。(1) 在Jbutton里包含了放置了总雷数、剩余雷数及时间;(2) 在Jmenu里包含了游戏和帮助;(3) 在JmenuItem里包含了游戏级别。游戏界面的设计导入Swing包如下:import javax.swing.*实现代码如下:public void initGUI() p3=new JPanel();b=bon;JMenuBar menuBar=new JMenuBar();JMenu menu1=new JMenu(游戏);JMenu menu2=new JMenu(帮助);JMenuItem mi1=new JMenuItem(初级);JMenu
35、Item mi2 = new JMenuItem(中级);JMenuItem mi3 =new JMenuItem(高级);mi1.addActionListener(this);menu1.add(mi1);mi2.addActionListener(this);menu1.add(mi2);mi3.addActionListener(this);menu1.add(mi3);menuBar.add(menu1);menuBar.add(menu2);p3.add(menuBar);b1=new JLabel(bon+);a1=new intbon;btn =new JButton(开始);
36、btn.addActionListener(this);b2=new JLabel(0);b3=new JLabel();btns=new JButtonrow*col; p=new JPanel();p.setLayout(new BorderLayout();contentPane.add(p);p.add(p3,BorderLayout.NORTH);游戏界面如下: 图2.6 游戏界面3游戏软件测试游戏软件测试主要方向为测试软件是否满足功能要求。及(黑盒测试)。典型的测试数据的构建由于本程序为扫雷游戏,测试的对象如下:(1) 开始界面是否正确(2)周围显示的雷数是否正确(3)右键标志雷的
37、剩余雷数是否正确(4)能否正确翻开周围无雷的格。(5)各功能,难度系数级别按钮实现是否能正确(6)第二次再进行游戏时能否正确清空之前的数据和初始化以及正常运行。(7) 软件是否有遗漏功能各功能以及数值计算与预计结果相同。均正常。 图3.1 开始界面及初级画面 图3.2 左右键点击的两个功能 图3.3 高级画面 图3.4 中级画面 图3.5 踩雷画面 图3.6 胜利画面4 结论与展望在程序代码基本完成后,经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在基本功能与画面上与Windows自带的扫雷游戏没有太大差别,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,比如在游戏
38、中可以加入一些声音的提示,在游戏完成和失败的时候可以弹出一些小的Flash动画,还有就是可以加入一个扫雷英雄榜等等。总的来说本次设计在功能上已经基本达到要求,其他细节方面有待以后完善。毕业设计是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的一个程序的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行毕业设计的目的所在。虽然毕
39、业设计内容繁多,过程繁琐但我的收获却更加丰富。各种组件的运用,各种算法的应用,各种控件的利用我都是随着设计的不断深入而不断熟悉并逐步掌握的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识也对自己提出了新的要求。提高是有限的但提高也是全面的,正是这一次设计让我积累了许多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。顺利如期的完成本次毕业设计给了我很大的信心,但是也让我看到了自己许多不足的地方,学习其实就是一个不断完善的过程,正视自己的不足之处,在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断的完善自己。我课程设计选这个题
40、目原因是我一直比较喜欢这个游戏,对这款游戏的操作以及玩法度比较了解,所以做起来比较容易点,同时我也想玩玩自己亲手做出这个小游戏,所以选了这个题目,扫雷游戏是一款智力游戏,这款游戏将一定的地雷分布在小格子里,最终胜利是玩家将所有的地雷都找出。Java是我们这个学期新学的语言,通过这个课程设计,我对以前学的知识有了更深一步的了解,这次设计的时间有限,所以我做了一个自己比较喜欢的小游戏,刚开始做时,虽然知道主要思想但把它要表示出来真的很不容易,通过查资料,请教同学,上网,知道了知识可能是自己一个人要花很长时间知道的,经过这段时间的努力,终于做出了这款游戏,虽然还有很多不足,但做出来后还是很开心的,测试这个游戏的功能时,感觉很不错,通过这个课程设计我对以前java有了一个更深一步的认识。所以这次的设计相对来说还是很成功的。