扫雷毕业设计

更新时间:2024-06-11 04:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于Java扫雷游戏的设计与实现

院 系:计算机与电子系 专 业 班:计算机应用技术0902班 姓 名:张峥 学 号:20092911052 指导教师:彭 文 艺 2012 年 6月

基于Java扫雷游戏的设计与实现 Design and Implementation of Java

Minesweeper Game

摘 要

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

近年来Java作为一种新的语言,以其简单性,平台无关性和可移植性等优点,得到了广泛的应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。JBuilder是Bonrla公司用于快速开发Java应用的一款优秀的集成开发环境,它以其友好的的开发界面,强大的组件支持等优点,得到了广大程序员的接受与认可。

本论文研究的是以Eclipse为开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法;重点介绍了在游戏过程中各事件的处理。

关键词:Java 扫雷 Eclipse

I

Abstract

Java is a cross-platform application software can write object-oriented programming language, the general term of the Java programming language by Sun Microsystems, Inc. in May 1995 and the Java platform. Hardware or operating system platform to install a Java platform, Java applications can run. Java is a simple, object-oriented, distributed, interpreted, robust security, the structure-neutral, portable, high-performance, multithreaded dynamic language. Has excellent versatility, efficiency, platform portability, and security of Java technology, widely used in personal PC, the data center, game consoles, scientific supercomputers, mobile phones and the Internet, while the world's largest developer of professional community . Global cloud computing and mobile Internet industry environment, Java has significant advantages and broad prospects

Java in recent years as a new language, with its advantages of simplicity, platform independence and portability, get a wide range of applications, especially Java and the World Wide Web perfect binding, making it the network programming and embedded programming the preferred programming language. JBuilder is an excellent integrated development environment Borlan company for rapid development of Java applications, and its friendly development interface, powerful component supports, etc., has been accepted and recognized by the majority of programmers This thesis is based on the Eclipse development environment, design and develop a mine-sweeping game, its function is similar to minesweeper game that comes with Windows operating system. The paper first introduces the idea of making the game as a whole and the entire game design process planning, and randomly generated minefield layout and mine; focuses on the handling of events in the course of the game.

Key words: Java Minesweeping Eclipse

II

目 录

摘要 .................................................................................................................. Ⅰ Abstract ............................................................................................................ Ⅱ 绪论 .................................................................................................................... 1 1 开发环境 ........................................................................................................ 2 1.1 开发工具 ..................................................................................................... 2 1.2 应用环境 ..................................................................................................... 2 1.3 编写意义 ..................................................................................................... 2 1.4 任务设计内容 .............................................................................................. 3 2 可行性分析和需求分析 ................................................................................... 4 2.1 可行性分析 .................................................................................................. 4 2.2 需求分析 ..................................................................................................... 5 3 概要设计 ....................................................................................................... 6 4 详细设计 ........................................................................................................ 8 4.1 MineGame类 ............................................................................................... 8 4.2 MineArea类 ................................................................................................. 9 4.3 Block类 .................................................................................................... 11 4.4 BlockView类 ............................................................................................. 12 4.5 LayMines类 ............................................................................................... 12 4.6 Record类 ................................................................................................... 13 4.7 showRecord类 .............................................................................................. 14 5 系统测试 ...................................................................................................... 16 结论 .................................................................................................................. 20 致谢 .................................................................................................................. 21 参考文献 ........................................................................................................... 22

III

绪 论

扫雷一词有多个意思。扫雷游戏是微软于1992年附带在其操作系统中的小游戏,它通过点击格子并以出现的数字来判断附近地雷的数量,将全部地雷做上标记即可胜利;军事上的扫雷(mine clearing)是指搜索和清除地雷、陆军水雷及其他爆炸物的行动;扫雷又被引作网络用语。

扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏,不久之后,“方块”被改写成了游戏“Rlogic”,在“Rlogic”里,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,汤姆·安德森在“Rlogic”的基础上又编写出了游戏“地雷”,由此奠定了现代扫雷游戏的雏形。

1981年,微软公司的罗伯特·杜尔和卡特·约翰逊两位工程师在Windows 3.1系统上加载了该游戏,扫雷游戏才正式在全世界推广开来。 这款游戏的玩法是在一个9*9(初级),16*16(中级),16*30(高级),或自定义大小的方块矩阵中随机布置一定量的地雷(初级为10个,中级为40个,高级为99个)。由玩家逐个翻开方块,以找出所有地雷为最终游戏目标。如果玩家翻开的方块有地雷,则游戏结束。

扫雷游戏的目标是尽快找到雷区中的所有不是地雷的方块,而不许踩到地雷。游戏区包括雷区、地雷计数器和计时器,在“游戏”菜单上,单击“开局”,计时器就会启动,此时请单击游戏区中的任何方块,点开的数字是几,则说明该数字旁边的8个位置中有几个雷,如果挖开的是地雷,则会输掉游戏,用右键标记您认为可能有地雷的方块。

1

1 开发环境

1.1 开发工具

Sun Microsystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK: Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。

Java源程序编写借助于记事本,Editpuls,UltraEdit等三方编辑工具编写。 所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JDK 是整个Java的核心,包括了Java运行环境(Java RuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。

JDK里面是Java类库和Java的语言规范,它提供的是无论你用何种开发软件写Java程序都必须用到的类库和Java语言规范.没有JDK,你的Java程序根本就不能用。

最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

1.2 应用环境

(1) 操作系统:Windows XP及以上版本 (2) 应用软件:JDK2.0 Eclipse6.0

1.3 编写意义

随着计算机得普及,人们越来越多得接触到计算机,人们得生活工作中无处不有计算机得身影,人们面对长时间的难免会有倦怠的情绪,而人们大多得缓解

2

情绪得网络活动其实并不能起到放松心情得作用,现代人得生活节奏越来越快,有没有一种快速缓解疲倦得游戏呢?我们提出设计一款益智得小游戏,这种游戏不会花太多时间,同时把玩家得思维带动起来,达到一举多得得效果。

随着现在生活节奏的加快,人们在工作之余需要一个轻松娱乐的放松环境。因此我们小组编写此软件的目的,一方面作为初学者来了解扫雷的开发,另一方面开发此软件使用户能在娱乐休闲的同时拓展思维能力。同时进一步拓展研究,做到将扫雷层次升级,能够在多人连机的情况下,一起分工来进行对战 。如 一方放雷,另一方排雷。

1.4 任务设计内容

本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待以后完善。 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下:

(1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。

(2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。

(3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。

(4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。

(5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。

3

2 可行性分析和需求分析

2.1 可行性分析

适用于各种群体,学生、老师、白领,简单却有效地舒缓压力,消磨闲暇时光,一局所需的时间很短,低级的只需十多秒,此软件是以娱乐为主的休闲游戏,开发基于安卓手机操作系统。具有操作方便、便于保存等优点

投资可行性:主要根据市场调查及预测的结果,以及有关的产业政策等因素,论证项目投资建设的必要性。

(1) 财务可行性:主要从项目及投资者的角度,设计合理财务方案,从企业理财的角度进行资本预算,评价项目的财务盈利能力,进行投资决策。 (2) 组织可行性:制定合理的项目实施进度计划、设计合理的组织机构、选择经验丰富的管理人员、建立良好的协作关系、制定合适的培训计划等,保证项目顺利执行。

(3) 经济可行性:主要从资源配置的角度衡量项目的价值,评价项目在实现区域经济发展目标、有效配置经济资源、增加供应、创造就业、改善环境、提高人民生活等方面的效益。

(4) 法律可行性:在开发一个软件之前一定要确定它是否触犯某项法律或与国家的相关规定是否抵触。扫雷游戏系统并不与任何法律或国家相关规定相抵触,所以在法律可行性上是通过的,在进行设计时没有违法任何法律法规,也不对任何企业的系统进行侵权等。系统的研制和开发都选用正版软件,将不会侵犯他人、集体和国家的利益,不会违反相关的国家政策和法律。

(5) 技术可行性评价:在限制条件下,功能目标基本能够实现和达到,利用现有技术,功能目标基本能够达到,开发人员足够 能够满足条件要求,在规定时间内能够完成该项目开发。

4

2.2 需求分析

随着社会的不断进步,人们所承受的压力不断上升,在游戏层出不穷的时刻,扫雷游戏仍受到不少人的青睐,其本身的性质,决定了人们对它的喜爱程度,不需要特殊的技巧,不需要不断地升级,不需要太多的时间进行初步的熟悉,简简单单却乐趣无穷。

2.2.1 理解需求

扫雷游戏系统的建立,需要进行用户需求调查与分析,以确定系统目标,提高解决问题的详细方案,这是系统建设的重要环节。

(1) 系统可以根据需求来设计功能模块,如“开局”、“初级”、“中级”、“高级”“自定义”、“扫雷英雄榜”和“退出”等。

(2) 系统运行在Eclipse平台下,系统应该有一个较好的图形用户界面。 2.2.2 功能需求

需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统(手工系统或计算机系统)工作概况,明确各种需求,然后在此基础上确定新系统的功能。

根据用户的需求,确定本图书管理系统应具有以下功能: (1) 用户可以自定义级别并且可以任意输入雷数;

(2) 具有计时功能,即显示用户完成移动盘子所花费的时间; (3) 自动保存扫雷英雄榜;

(4) 用户可以设计“初级”、“中级”、“高级”三个级别。

5

3 概要设计

在设计扫雷游戏时,需要编写7个Java源程序:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.java、Record.java和ShowRecord.java。

扫雷游戏除了需要编写上述7个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如File、JButton和JLabel等类。扫雷游戏所用到的一些重要的类以及之间的组合关系如图3-1所示。

MineGame File MineArea ShowRecord Block BlockView LayMines Record JLabel JButton

图3-1 类之间的组和关系

(1) MineGame.java(主类)

MineGame类负责创建扫雷游戏机主窗口,该文件含有main方法,扫雷游戏从该类开始执行。MineGame类主要有三种类型的成员:File、MineArea和ShowRecord对象。 (2) MineArea.java

MineArea类创建的对象是MineArea类最重要的成员之一,代表“扫雷区域”。该类的成员变量中有5个重要类型的对象:Block、BlockView、LayMines和Record。

(3) Block.java

Block类是雷区中“方块”的类封装,含有关于“方块”的属性以及操作,即负责为雷区创建代表“方块”的Block对象。

6

(4) BlockView.java

BlockView是JPanel容器的子类,BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。BlockView对象使用一个标签和按钮为Block对象提供视图,标签和按钮按着卡片布局(CardLayout)层叠在一起,默认状态下按钮遮挡住标签。当用户单击按钮后,如果Block对象是雷,BlockView对象中的标签显示的是雷的图标;如果Block对象不是是雷,标签显示的是当前Block对象周围雷的总数。 (5) LayMines.java

LayMines类对象不需要视图,在游戏中不需要看见该对象。LayMines对象使用随机算法指定MineArea对象中的哪些Block对象是雷,哪些Block对象不是雷。

(6) Record.java

Record类是JDialog对话框的子类,当用户扫雷成功时,Record对象负责保存用户的成绩到文件。 (7) ShowRecord.java

ShowRecord类是JDialog对话框的子类,当用户查看扫雷的最好成功时,ShowRecord对象负责读取文件数据的界面。

7

4 详细设计

扫雷系统流程图如图4-1所示。

图4-1 流程图

4.1 MineGame类

MineGame类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口,标明该类的主要成员变量和方法的UML图如图4-2所示。

8

MineGame bar:JMenuBar; fileMenu:JMnu图2 流程图 初级,中级,高级,扫雷英雄榜: JMenuItem mineArea:MineArea 英雄榜:File showHeroRecord:ShowRecord MineGame(): actionPerformed(ActionEvent) main(String[]):void 图4-2 MineGame类的UML图

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

① bar 和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级”、“中级”和“高级”或“扫雷英雄榜”。

②mineArea是扫雷区域,提供有关扫雷的主要功能。 ③“英雄榜”负责存放三个级别的扫雷最好的成绩。 ④showHeroRecord负责显示英雄榜中的数据。 (2) 方法

①MineGame( )是构造方法,负责完成窗口的初始化。 ②actionPerformed(ActionEvent)方法是

MineGame

类实现的

ActionListener接口中的方法,该方法负责执行菜单发出的有关命令。用户选择菜单中项可触发ActionListener事件,导致actionPerformed(ActionEvent)方法执行相应的操作,例如将创建的雷区设置为初级、中级或高级等。

③main(String[])方法是程序运行的入口方法。

4.2 MineArea类

MineArea类是javax.swing包中JPanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象:mineArea是MineArea类中最重要的成员之一,作为一个容器添加到窗口的中心。标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图4-3所示。

9

JPanel ActionListener MouseListener MineArea row,colum,mineCount,markMount:int lay:LayMines block:Block[][] record:Record blockView:BlockView[][] reStart:JButton showTime:JTextField time:Timer showMarkedMineCount:JTextField initMineArea(int,int,int):void show(int m,itn n):void actionPerformed(ActionEvent):void inquireWin():void mousePressde(MouseEvent):void MineGame mineArea MineArea

图4-3 MineArea类的UML图

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

①block是Block类型的数组,用来确定雷区有多少需进行扫雷的方块。 ②blockView是BlockView类型的数组,负责为block数组中的Block对象提供视图。

③lay是LayMines类型的对象,负责设置block数组中的哪些方块是雷或不是雷。

④record负责提供保存成绩的界面,是一个对话框,默认不可见。用户只有扫雷成功后(用时最少者),才可以看见该对话框。

⑤reStart是一个按钮对象,用户单击它重新开始游戏。 ⑥time是计时器对象,负责计算用户的用时。 (2) 方法

①initMineArea(int,int,int,int)方法可根据参数提供的数据设置雷区的宽度、高度、雷的数量以及雷区的级别。

②actionPerformed(ActionEvent)是MineArea类实现的ActionListener接口中的方法。当用户单击blockView中的某个方块时,actionPerformed(ActionEvent)方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,若方块下有雷,actionPerformed(ActionEvent)方法将使用

10

户输掉本局,若该方块下无雷,actionPerformed(ActionEvent)方法将显示BlockView对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的8个方块中共有多少颗雷。

③Show( )方法是一个递归方法。actionPerformed(ActionEvent)方法执行时将调用方法进行扫雷。

④mousePressed(MouseEvent)方法是MineArea类实现的MouseListener接口中的方法,当用户按下鼠标右键时,actionPerformed(ActionEvent)方法负责让方块上线是一个探雷标记。

⑤inquireWin( )方法用来判断用户是否扫雷成功,如果成功该方法负责让record对话框可见。所谓扫雷成功是指不仅找到全部的雷而且用时最少。

4.3 Block类

Block类创建的对象是数组block的单元中的对象。Block型数组block是MineArea类的重要成员之一。标明Block类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如图4-4所示。

Block name:String isMine:boolean aroundMineNumber:int isMine:boolean mineIcon:ImageIcon isOpenboolean setAroundMineNumber(int):void get AroundMineNumber():int 图4-4 Block类的UML图

MineArea block:Block[][]

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

①name是方块上的名字。

②aroundMineNumber是方块周围雷的数目。 ③mineIcon是方块上雷的图标。 ④isMine用来表示方块是否是雷。 ⑤isMark用来表示方块是否被标记。 ⑥isOpen用来表示方块是否被挖开。 (2) 方法

11

①setAroundMineNumber(int)方法用来设置aroundMineNumber的值。 ②getAroundMineNumber()方法用来获取aroundMineNumber的值。

4.4 BlockView类

BlockView类是javax.swing包中JPanel类的子类,创建的对象是数组blockView的单元中的对象。blockView是BlockView类的最重要的成员之一。标明BlockView类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如图4-5所示。

JPanel BlockView blockNameOrIcon:JLabel blockCover:JButton card:Cardlayout setAroundMineNumber(Block block):void seeBlockNameOrIcon();void 图4-5 BlockView类的UML图

MineArea blockView:BlockView[][]

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

①blockNameOrIcon用来显示Block对象的name、number和mineIcon属性。 ②blockCover用来遮挡card卡片式布局。 (2) 方法

①giveView(Block block)方法给参数指定的Block对象提供视图,如果Block对象的isMine属性为true,即方块是雷,那么blockNameOrIcon标签上设置的文本就是Block对象的name属性的值,同时blockNameOrIcon标签上设置的图标就是Block对象的mineIcon制定的图标。如果Block对象的isMine属性为false,blockNameOrIcon标签上设置的文本是Block对象的aroundMineNumber属性的值,即周围雷的数目。

②seeBlockNameOrIcon( )方法让用户看见视图中的标签,无法看见按钮。 ③seeBlockCover( )方法让用户看见视图中的按钮,无法看见标签。

4.5 LayMines类

12

LayMines类创建的对象lay是MineArea中最重要的成员。标明该类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如图4-6所示。

LayMines mineIconImageIcon layMinesForBlock(Block[][],int) MineArea lay:LayMines 图4-6 LayMines类的UML图

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

mineIcon用来存放一个格式gif的图像。 (2) 方法

layMinesForBlock(Block[][],int)方法对参数指定的Block数组进行设置,其中int参数制定雷的数目。当指定Block数组中某个单元中的方块是雷时,就将该方块上的图标设置为mineIcon。当指定Block数组中某个单元中的方块不是雷时,就将该方块上的名字设置为周围的雷的数目。

4.6 Record类

Record是javax.swing包中JDialog对话框的子类,并实现了ActionListener接口。Record创建的对象:record是MineArea类的成员之一,当用户扫雷成功时,该对象提供了保存成绩到文件的界面。标明Record类的主要成员变量、方法以及和MineArea类之间组合关系的UML图如图4-7所示。

JDialog ActionListener Record textName:JTextField 确定:JButton actionPerformed(ActionEvent):void writeRecord(String,String):void MineArea record:Record

图4-7 Record类的UML图

以下是UML图中有关数据和方法的详细说明。

13

(1) 成员变量

①textName提供用户扫雷优胜者输出姓名。 ②用户单击“确定”按钮,可以保存成绩。 (2) 方法

①actionPerformed(ActionEvent)方法是Record类实现的ActionListener接口中的方法,当用户单击“确定”按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时,然后调用writeRecord(String,String)方法将信息写入到“英雄榜”中。

②writeRecord(String,String)负责将有关信息,例如扫雷的用时、扫雷的级别以及扫雷优胜者的姓名等信息写入到“英雄榜”文件。

4.7 ShowRecord类

ShowRecord是javax.swing包中JDialog对话框的子类,并实现了ActionListener接口。ShowRecord创建的对象showHeroRecord是MineGame类(主类)的成员之一,当用户查看“英雄榜”菜单项时,该对画框可见,提供了查看扫雷的最好成绩的界面。标明ShowRecord类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图4-8所示。

JDialog ActionListener ShowRecord file:Fild 显示成绩,重新记分:JButton actionPerformed(ActionEvent):void readAndShow():void MineArea showHeroRecord:ShowRecord

图4-8 ShowRecord类的UML图

以下是UML图中有关数据和方法的详细说明。 (1) 成员变量

①File存放文件的引用。

②用户单击“显示成绩”按钮,可以查看各个级别扫雷的最好成绩。 ③用户单击“重新记分”按钮,可以将“英雄榜”中的成绩恢复为初始值。 (2) 方法

14

①actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击“显示成绩”按钮后,该方法被执行,所执行的操作就是调用readAndShow( )方法。

②readAndShow( )方法负责读取存放在文件中的各个级别的扫雷最好成绩以及扫雷者姓名,并显示这些先关信息。

15

5 系统测试

(1) 程序运行后,界面上有一个菜单和一个按钮,分别是“游戏”和“重新开始”;当玩家踩雷时候可以点击“重新开始”。如图5-1所示

图5-1 主界面

(2) 当玩家点击“游戏”菜单时会出现7个子菜单,分别是“开局”、“初级”、“中级”、“高级”“自定义”、“扫雷英雄榜”和“退出”。当玩家开始游戏时可以点击“开局”进行游戏,玩家还可以通过选择“初级”、“中级”和“高级”按钮来选择游戏级别;玩家还可以通过“自定义”来进行设置“行数”、“列数”、“雷数”和“级别”;游戏结束后玩家还可以通过“扫雷英雄榜”查询成绩;玩家可以通过“退出”退出游戏框。

(3) 点击“游戏”出现的界面如图5-2所示。

16

图5-2 游戏界面

(4) 点击“初级”选择初级游戏时出现界面如图5-3所示。

图5-3 初级窗口界面

(5) 开局后进行游戏时出现界面如图5-4所示。

17

图5-4 扫雷进行中的效果

(6) 踩雷时候游戏就结束了,踩雷时出现界面如图5-5所示。

图5-5 扫雷失败效果

(7) 游戏结束后点击“扫雷英雄榜”显示成绩的界面,效果如图5-6所示。

18

图5-6 成绩界面

19

结 论

Java是一个完全面向对象的语言,Java的命名规则是很容易让人接受的。而且容易被编程人员记住。经过实践训练,对Java的综合应用能力有了较大的提高,另外对Java的特点有了更深层次的认识。

通过这次的毕业论文,我对Java这门语言有了更深刻的理解。其中包括类、对象、接口、继承、方法以及Java语言中的常用包等的使用方法,特别是图形用户界面里各种组件的创建,事件处理等相关知识。还学会了很多在这个学期《Java课程设计基础》课上没有学会和没有学懂的东西,使我对Java语言是一种非常难懂的语言的思想有了极大的改观。

这次的毕业论文是用Java语言及相关知识设计一个扫雷游戏系统,能实现选择游戏级别,记录游戏时间和保存游戏成绩等功能。虽然整个设计的时间才短短两个月,我还是对JDK等Java语言开发工具有了深层次的认知,并熟练掌握了它们的使用方法。而且这次的毕业设计,也使我的编程能力有了明显的提高。

通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。此外,我认为这次毕业设计最大的收获就是:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

这次毕业设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。通过对此课题的开发,使我对用Eclipse开发平台有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,还请老师见谅。

20

致 谢

通过这两个月来的忙碌和学习,本次毕业论文设计已接近尾声,作为一个大专生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,在这里衷心感谢指导老师的督促指导,以及一起学习的同学们的支持,让我按时完成了这次毕业设计。

在本次毕业扫雷游戏设计过程中,首先得感谢的是指导老师彭文艺老师,他给予了我悉心指导和大力支持,对于我顺利完成这次毕业设计起到了关键性的作用。同时感谢我院、系领导对我们的教导和关注;感谢大学三年传授我们专业知识的所有老师,谢谢你们呕心沥血的教导。还有谢谢我周围的同窗朋友,如果没有他们的帮助,此次毕业论文的完成将变得困难。最后,感谢生我养我的父母。谢谢他们给了我无私的爱,为我求学所付出的巨大牺牲和努力。

21

参考文献

[1] 朱福喜,尹为民,余振坤.Java语言与面向对象程序设计.武汉:武汉大学出

版社,2008.

[2] 陈国君,陈磊.Java 2从入门到精通.北京:清华大学出版社,2008. [3] 王梅,Java并发编程—设计原则与模式.北京:中国电力出版社,2009. [4] 尹伟民,Java程序设计之网络编程.北京:清华大学出版社,2008. [5] 印昊.Java与面向对象程序设计.北京:高等教育出版社,2008. [6] 耿祥义.Java课程设计.北京:清华大学出版社,2009.

[7] 赵生慧.Java面向对象程序设计.北京:高等教育出版社,2009. [8] 甘仞初.信息系统开发.北京:北京经济科学出版社,2008. [9] 李宣东,李存珠.软件工程概论.北京:清华大学出版社,2008.

22

本文来源:https://www.bwwdw.com/article/e486.html

Top