基于Java的扫雷游戏论文.doc

上传人:仙人指路1688 文档编号:2387380 上传时间:2023-02-17 格式:DOC 页数:57 大小:2.11MB
返回 下载 相关 举报
基于Java的扫雷游戏论文.doc_第1页
第1页 / 共57页
基于Java的扫雷游戏论文.doc_第2页
第2页 / 共57页
基于Java的扫雷游戏论文.doc_第3页
第3页 / 共57页
基于Java的扫雷游戏论文.doc_第4页
第4页 / 共57页
基于Java的扫雷游戏论文.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《基于Java的扫雷游戏论文.doc》由会员分享,可在线阅读,更多相关《基于Java的扫雷游戏论文.doc(57页珍藏版)》请在三一办公上搜索。

1、 分类号_ 密级_ UDC _ 学号 毕业设计(论文)论文题目基于Java的扫雷游戏的设计与实现thesis TopicDesign and Implementation for Mine game based on Java学生姓名学 号所 在 院 系专 业 班 级导师姓名职称完成日期2015年5月18日2015年 5 月 18 日毕业设计(论文)任务书毕业设计(论文)题目:基于java的扫雷游戏设计与实现毕业设计(论文)要求及原始数据(资料):1综述国内外扫雷游戏研究现状;2深入了解扫雷游戏的相关技术;3熟练掌握扫雷游戏的应用与分析;4设计并实现扫雷游戏;5深入分析扫雷游戏中的关键技术与编

2、写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容:1选题的意义及国内外研究现状与发展趋势;2了解扫雷游戏的相关技术;3熟悉扫雷游戏的开发环境; 4. 深入分析扫雷游戏中的关键技术;5熟练掌握基于java的扫雷游戏的程序编写;6设计与实现针对扫雷游戏的程序。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 主要参考文献(资料):1 耿祥义.Java大学实用教程.北京:清华大学出版社,2009.2 王鹏.JavaSwing图形界面开

3、发与案例详解.北京:清华大学出版社,2008.3 丁振凡.Java语言实验教程.北京:北京邮电大学出版社,2005.4 郑莉.Java语言程序设计.北京:清华大学出版社,2006.5 孙全党,王吴迪,赵枫朝.Java程序设计应用教程,电子工业出版社,2006.6 雷之宇.Java项目开发实践-网络篇,中国铁道出版社,2005.7 赵玉阳.Java从入门到精通,清华大学出版社,2006.8 毕广吉.Java程序设计实例教程M. 北京:冶金工业出版社,2007年.9 王保罗.Java面向对象程序设计M. 北京:清华大学出版社,2003年.10 高林,周海燕.Jsp网上书店系统与案例分析M. 北京:

4、人民邮电出版社,2004年.11 刘腾红,孙细明.信息系统分析与设计M. 北京:科学出版社,2003年.12 林邦杰,彻底研究java.北京:电子工业出版社,2002年.13 刘京华. Java Web整合开发王者归来M. 北京:清华大学出版社,2010.14 (美)阿诺德,Ken Arnold,等. Java程序设计语言M. 北京:人民邮电出版社,200615 Joshua Bloch. Effective JavaM. Piscataway, N.J: IEEE Press, 200916 Craig Walls, Ryan BreidenBach. Spring In ActionM.

5、Manning Publications. 2006.17 Bruce Eckel. Thinking in JavaM. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006.18 Holger Eichelberger,Klaus Schhmid.Flexible resource monitoring ofJava programs.J.The Journal of Systems & Software,2014 Elsevier19 Doug Twilleager,Jeff Kesselman,Athomas Goldberg

6、er,Daniel Petersen,Juan Carlos,Soto,Chris Melissinos.Java Technologies for games.J.Computers in Entertainment(CIE),2004,Vol.2(2),pp.18-18 ACM20 Walter Cazzola,Edoardo Vacchi.Java:Bringing a richer annotation model to Java.JComputer Languages,Systems & Structures,2014 Elsevier.专业班级学生要求设计(论文)工作起止日期201

7、5年3月23日2015年7月3日指导教师签字日期教研室主任审查签字日期系主任批准签字日期基于Java的扫雷游戏的设计与实现摘 要随着时代的发展,电脑已经成为家庭必不可少的一种设备,越来越多的人使用电脑进行办公、娱乐、上网,并且促使游戏行业发展一日千里,该行业极大的影响和改变了人们的 生活和娱乐方式, 游戏为消费者提供丰富多彩的虚拟空间,使消费者可以自由自 在的享受虚拟世界的乐趣,实现自己在现实生活着那个可能永远不能实现的梦想,满足了消费者的心理和精神需求。扫雷游戏是 Windows 操作系统自带的一款小游戏,本系统就是要模仿 Windows 系统的扫雷,基于JAVA来对扫雷游戏进行实现。程序的

8、功能是随机生成地雷数,通过鼠标操作玩游戏,当鼠标左键单击到地雷时提示游戏结束。我完成的工作是首先对扫雷游戏进行分析,分析所用到的类以及所用到的算法,从扫雷游戏的玩法以及原理入手,然后进一步对游戏进行编程,从而达到游戏的运行。关键词:Windows系统;扫雷游戏;JavaDesign and Implementation for Mine game based on JavaAbstractWith the development of the times, the computer has become an essential household equipment, more and mo

9、re people use computers for office, entertainment, Internet, and to promote the rapid development of the gaming industry, a great impact on the industry and changed the way people life and entertainment, the game offers a variety of virtual space for consumers, so that consumers can enjoy free fun v

10、irtual world and realize that may never be able to own a dream in real life, to meet the consumer psychology and spiritual needs. Minesweeper is a Windows operating system comes with a small game, this system is to mimic the minesweeping Windows system based on the Minesweeper game JAVA to achieve.

11、Functions of the program are randomly generated number of mines, play games via the mouse, suggesting that the end of the game when the left mouse button to click on to mine. My job is to first complete game of Minesweeper analysis, the analysis used by the classes and algorithms used, starting from

12、 the principle of Minesweeper game play and then further on the game can be programmed to achieve running the game.Key Words:Windows System;Minesweeper game;Java目 录1绪论11.1选题目的与意义11.2程序设计任务及要求11.3本文主要工作21.4本章小结22需求分析32.1扫雷游戏功能描述32.2扫雷游戏用例图42.3扫雷游戏功能需求42.4扫雷游戏界面需求52.5扫雷游戏功能模块62.6本章小结63 概要设计83.1总体设计83.

13、2功能分析93.3功能分配103.4算法思想113.5开发环境113.6本章小结124 详细设计124.1界面设计134.2类设计144.2.1 SaoleiMain类144.2.2 Custom类164.2.3 StaDialog类174.2.4 Brick类184.2.5 BrickWork类184.3类关系图224.4随机布雷流程图224.5本章小结235游戏实现245.1游戏级别自定义245.2扫雷255.2.1玩家通过右键进行扫雷,并显示小红旗255.2.2玩家因触碰到雷而导致游戏结束265.2.3玩家扫雷成功275.3玩家游戏数据显示285.4本章小结286游戏测试296.1游戏级

14、别自定义测试296.2扫雷测试306.3玩家游戏数据显示测试316.4本章小结32总 结33参考文献34致 谢361绪论 扫雷是一款相当大众的小游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。扫雷最初的流行伴随着1992年发布的windows 3.1,之后迅速成为了各种操作系统中必不可少的一款游戏。1.1选题目的与意义经过四年的大学学习,我对理论知识已经有了一定的了解与认知,本次的毕业设计便是将书本上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计使自己在程序的开发和设计上有新的认识并能有所提高。本次毕业设计既锻炼了我们的实际

15、动手能力,又在老师的指导下进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要意义。 扫雷游戏现在正被大量游戏爱好者所享受,为此扫雷游戏现在正被不断的改进和优化,国内外对扫雷游戏研究已经逐步深化,但扫雷界面单一,不够美观,未来的扫雷游戏必然更加完美,其界面一定会更加美观,采取3D界面,游戏的等级可分数个,玩家可根据自己的能力和兴趣调整等级,使玩家融入在更加刺激的游戏氛围中。1.2程序设计任务及要求扫雷游戏是一个很有趣的游戏。本文使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别。单击游戏菜单可以选择“初级”、“中级”和“高级”。

16、 (2)选择级别后将出现相应级别的扫雷区域,当用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。(4)如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即在方块上标记一个图标为小红旗的标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。(5)扫雷胜利后,游戏会弹框并显示“恭喜你,你赢了” (6)如果在扫雷过程中一不小心碰到了雷,游戏会自动将剩余地雷全部找出并显示,并且弹框显示“

17、你输了”,而且会提示退出或者重玩。1.3本文主要工作 本文收集相关文献资料,多次认真玩了windows扫雷游戏,全面了解了游戏的规则,操作方法等。利用大学四年所学知识,首先,充分挖掘游戏的需求,对游戏的开发进行了全面的需求分析;其次,根据需求分析结果,对扫雷程序进行了概要设计,划分了模块以及模块之间的接口等;接着,对游戏的概要设计进行细化,完成了游戏的详细设计;然后,根据详细设计,完成了游戏的编码工作;最后,实现的扫雷游戏进行全面测试,并且对测试过程中发现的bug进行修改。1.4本章小结 本章介绍了本文的选题目的和意义,在详细了解扫雷游戏的玩法以及规则的基础上对总结了本程序设计的任务和要求,最

18、后详细介绍了本文的主要工作内容。2需求分析需求分析的主要任务即详细的找出程序所需要的各种功能实现,是对系统功能进一步分析和抽象,以确定系统应当做什麽的问题,从而完成系统的逻辑设计。 扫雷的规则是尽快找到雷区中的所有不是地雷的方格,而不许踩到地雷。点开的数字是几,则说明该数字旁边的8个位置中有几个地雷,如果挖开的是地雷,则会输掉游戏。本程序为扫雷游戏的实现,首先是要实现扫雷游戏的基本功能,根据扫雷游戏的玩法,设计程序,实现程序的功能。本系统需求分为四个部分:功能描述、功能需求、界面需求、模块划分。2.1扫雷游戏功能描述按功能将游戏区域划分为两个区域:雷区和提示区。提示区包括记雷器、计时器。在游戏

19、过程中当用户用鼠标点击相应的方块,程序就会作出相应的鼠标事件,而鼠标事件的处理都是由扫雷程序完成的。游戏开始时,系统会在雷区的某些小方块中随机布下若干个地雷。安放地雷的方块称为雷方块,其他的称为非雷方块。布完雷后,系统会在其他雷方块中填充一些数字。某一个具体数字表示与其紧邻的8个方块中有多少个雷。用户可以根据这些数字判断是否可以打开某些方块,并把认为有地雷的方块用小红旗来标识。如果某个数字方块周围的地雷全部标记完,可以单击鼠标左键,将其周围剩下的方块挖开。如果数字周围地雷没有全部标记,在同时单击鼠标左右键时,其他隐藏或未标记的方块将被按下一次,当用户将所有地雷挖出后,其余的非雷方块区域都已经打

20、开,此时游戏胜利。在游戏过程中,一旦错误地打开了雷方块则游戏失败,游戏结束;当用户标识的地雷数超过程序的设定值,虽然打开了全部的其余方块,游戏仍然不会结束。2.2扫雷游戏用例图图2-1 扫雷游戏用例图Figure 2-1 Minesweeper Use Case Diagram从上述扫雷游戏功能描述可以看出,整个扫雷游戏中,用户所有的操作只有:设置游戏级别、开始游戏、扫雷和查询统计信息四种操作。2.3扫雷游戏功能需求本程序需要实现的主要功能有:(1)用户可以自由选择扫雷级别点击游戏按钮,然后再点击选项,会弹出一个框,玩家可以选择所玩模式,分为初级,中级,高级三个级别,初级是9*9个方格,中及时

21、16*16个方格,高级是30*30个方格,还有一个自定义,用户可以自己定义M*N方格以及雷数。(2)进行扫雷游戏游戏区包括雷区、地雷计数器(位于右下角,记录剩余地雷数)和计时器(位于左下角,记录游戏时间),确定大小的矩形雷区中随机布置一定数量的地雷,玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。游戏的基本操作包括左键单击(Left Click)、右键单击(Right Click)两种。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断。左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围33区域中的地雷数(一般为8个

22、格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。 右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复一次或两次操作可取消标记(如果在游戏菜单中勾选了“标记(?)”,则需要两次操作来取消标雷)。(3)具有计时功能,显示用户扫雷所用时间当点击任意一个方块时即开始游戏,计时器同时开始计时,时间是一秒增加1,当游戏失败时,自动停止计时,并且在游戏最左下方显示玩家扫雷所用总共时间。(4)用户可以通过右键点击方块来标记自认为是雷的方块当用户在方块上面点击右键时,方块上会显

23、示一个小红旗,并且游戏最右下方的雷数会增加1,当玩家扫雷过程中发现已经有小红旗的方格不是雷可以再次右键点击此方块,点击第一个,方块上面的小红旗会变成一个问号,再点击一次可以将问号去掉,同时游戏最下方雷数会自动减去1。(5)统计功能当玩家完成一次扫雷后,软件能够分级别记录,统计最短完成事件、已玩游戏次数、已胜游戏次数、获胜率、最多连胜次数、最多连败次数等信息,玩家可以打开来进行查看,以及可以跟其他玩家进行比较,可以用来进行对战。(6)退出可以用界面的关闭键结束游戏。2.4扫雷游戏界面需求(1)游戏菜单游戏菜单有开始游戏、游戏模式、信息统计、退出等4个子菜单。设置游戏的级别,分为初中高三个游戏级别

24、,初级是由9*9的方格组成,雷数为10,非雷数71;中级由16*16的方格组成,排有40个雷,非雷数为216;高级是由30*30的方格组成,其中有99个雷,非雷数为381;自定义功能能够让玩家重新定义游戏的布局与雷数;标记功能在排雷的时候来重要作用,通过标记地雷,使客户快速通关,鼠标右键也可标记地雷;信息统计,记录玩家不同级别的最高得分;退出,也可以用界面的关闭键结束游戏。(2)游戏区域游戏区域由雷数、计时器和方块区组成。关于每个雷数,每个级别对应的雷数都不同,初级、中级、高级分别对应10、40、99个雷。在你翻开第一个方块起,计算器就开始计时,直到你成功排除。2.5扫雷游戏功能模块游戏在功能

25、上分为6个模块:(1) 游戏界面(2) 布雷(3) 鼠标事件(4) 地雷判断(5) 游戏胜利(结束)(6) 游戏失败(结束)扫雷游戏系统基本功能如图2-2所示。图2-2 扫雷游戏基本功能Figure 2-2 Minesweeper basic functions2.6本章小结 本章通过多次玩扫雷游戏,熟练掌握游戏规则,认识扫雷游戏,在此基础上综合分析扫雷游戏的功能,根据游戏功能,确定游戏的功能需求和界面需求,然后总结归纳了游戏的功能模块。3 概要设计概要设计的主要任务是把需求分析结果转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关

26、系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。3.1总体设计系统的整体布局为:CardLayout 布局,采用菜单、按钮、面板等组件,菜单项主要有开始,开始游戏,难度选择以及自定义,信息统计,退出,按钮的功能是重新开始游戏。扫雷游戏的布局如图3-1所示。 图3-1 扫雷游戏布局图Figure 3-1 Minesweeper game layout 程序主界面中部为雷区,雷区下面实时显示游戏时间和剩余雷数。雷区为玩家的游戏区域。程序启动后,初始化按钮、菜单,根据用户选择的扫雷级别,生

27、成雷区方格数量,随机布雷的位置,计算每个方格中的雷数,存储在缓存区,在界面中显示雷数,程序总体流程如图3-2所示,图3-2 总体流程图Figure 3-2 Overall flowchart of FIG.3.2功能分析整个游戏可以分为四个功能模块:界面模块,负责接收用户输入,组织和显示方格以及雷等;布雷模块,负责随机布雷,设置并记录哪个方格为雷;计算雷数模块,负责计算非雷方格周围雷数,并且将雷数保存;记录扫雷信息模块,记录用户扫雷的各种信息,并且保存。表3-1模块划分及其功能Table 3-1 module division and function模块功能界面模块设置游戏等级点击方格布雷模

28、块随机布雷保存雷区位置计算雷数模块计算方格周围雷数保存方格周围雷数记录扫雷信息模块记录扫雷信息显示扫雷信息图3-3 模块之间的调用关系Figure 3-3 calls between modules模块之间的调用关系如图3-3所示。界面模块通过接收用户的输入,如:扫雷级别或者雷区大小以及雷的数量等信息,用户点击开始后,布雷模块开始随机布署地雷的位置,记录在缓存区,计算雷数模块计算每个非雷方格的地雷数量,并且记录在缓存区中,初始化完成后,在界面中显示地雷的数量。用户第一次点击雷区方格便开始计时,扫雷游戏正式开始,扫雷结束后,统计最短完成事件、已玩游戏次数、已胜游戏次数、获胜率、最多连胜次数、最多

29、连败次数等信息,以供查询。3.3功能分配整个程序的功能由5个java类实现,5个类的名称以及主要功能见表3-2,类的名称及其功能表。表3-2 类的名称及其功能表Table names and functions Table 3-2 Class序号 名称 功能1SaoleiMain.java该java文件生成的类负责创建扫雷游戏程序主窗口。该类含有main方法,扫雷游戏从该类执行。2Custom.java负责对扫雷难度进行设定,可以设置初级、中级和高级三个难度,也可以对难度进行自定义设置,直接设置方格和雷的数量。3StaDialog.java主要负责将玩家扫雷情况的统计信息以对话框的形式显示。4

30、Brick.java 主要负责在界面上显示方格,可以定义方格的大小、颜色,设置背景图片等。5BrickWork.java主要负责在界面上显示方格和方格上的标记及其翻开后的数字、雷、炸开的雷等,还可以对自己所在位置的行列号进行设置、存储和查询等功能。3.4算法思想(1)随机布雷扫雷游戏要求在M行N列的方格游戏区随机的部署n个雷,且n的取值应小于M和N的乘积。这可以在一张M*N的方格上通过均匀分布的随机算法实现。其中n的方格是雷区,剩下的方格是非雷区。游戏的目标是尽可能快地找到所有的雷区,而不踩到地雷。Java提供了实现随机算法的类Math,通过Math类的random()方法这可以很方便的实现随

31、机布雷的功能。(2)计算方格周围雷数每个方格周围8个方格中雷的数量为方格周围雷数,用户就是根据方格中显示的方格周围雷数综合判断该方格是否为雷,因此,方格周围雷数的计算非常关键。3.5开发环境Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)

32、显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C+语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。常用的java开发环境是Eclipse+JDK+tomacat,因为最重要是Eclipse开发工具是免费开源的,所以这是大家选择Eclipse开发工具大家java开发环境的主要原因,其次还有少部分人使用jbuli

33、d环境等。对java初学者来说,Eclipse使用简单,而且占用电脑资源也比较少。另外,jdk不是版本高了就好,我们要用的是最稳定,不是追求最新最时尚的。大家都知道,新的东西容易出现不稳定的因素,因为技术方面也不是很成熟,容易出错,初学者最应该使用稳定的工具,这样开发的过程才不会出现因为开发环境带来的问题影响我们学习的进程。本论文编写程序时使用的就是Eclipse。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Develop

34、ment Kit,JDK)。3.6本章小结本章根据对扫雷游戏的需求分析,将整个扫雷游戏软件按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性。最后简单介绍了软件的开发环境。4 详细设计4.1界面设计(1)扫雷棋盘的布局设计扫雷棋盘布局为:CardLayout布局, 每个按钮表示一个方格,点击方格即触发按钮的点击事件。图4-1 扫雷游戏主界面Figure 4-1 Minesweeper main game interface(2)雷区的设计Brick类是继承了JPanel实现了MouseListener接口, Bri

35、ckWork类继承于Brick,该类的M*N二维对象代表雷区的方格,并且可以设置方格的背景颜色和方格中的雷数。 mouseClicked就是单击按钮触发的事件,当左击按钮后,如果方格中不是雷,则显示方格中的雷数,否则扫雷失败,整个方格全部翻转。4.2类设计4.2.1 SaoleiMain类 SaoleiMain类继承于javax.swing 包中JFrame类,主要负责游戏主界面的显示、用户的扫雷操作,开始游戏、随机布雷、非雷方格的翻转和统计游戏信息,实现了Runnable接口,负责完成实时判断扫雷是否完成,每隔1秒更新游戏时间和剩余地雷数量。标明该类的主要成员变量和方法的UML图如图4-2所

36、示。图4-2 SaoleiMain类的UML图Figure 4-2 SaoleiMain UML class diagram以下是UML图中有关数据和方法的详细说明。(1) 成员变量bar和menu提供菜单操作,单击游戏菜单中的选项为“初级”、“中级”、“高级”、“自定义”、“扫雷英雄榜”、“退出”、“游戏规则”等。p为方格提供容器。rows和cols表示雷区方格的行数和列数。array二维数组代表方格,负责方格的显示、方格中图片的变化、方格中地雷数量的显示。list中保存在是地雷的方格。shijian负责显示游戏开始的时间。shengyilei负责剩余地雷数量的显示。Statdlg负责显示统

37、计信息。(2)成员方法SaoleiMain()方法是SaoleiMain的构造函数,负责完成窗口的主要功能。TimeNumPanel()方法负责实时计算游戏时间和剩余雷数。mobanmethod()方法创建MXN个BrickWork(方格)添加到SaoleiMain中。lin(Button1 b,int x,int y)方法负责翻开周围八块方格,如果被翻开方格周围的雷是0则执行递归。DuQuShuJu()方法将初级、中级、高级难度的统计信息从文件读入程序。RandomMethod(int x1,int y1)方法负责实现随机布雷,并将是雷的BrickWork加入list中。diaglog()负

38、责输了时弹出对话框。DuiHuaKuanXuanZe()方法负责在游戏输了或赢了就弹出对话框,输赢显示的对话框只是输赢属性和请选择属性不同。XinYouXi()方法负责新游戏需要对已有对象进行属性初始化和重新布雷。main(String args)方法是程序的入口方法。4.2.2 Custom类Custom类是javax.swing包中JDialog对话框的子类,主要负责游戏级别的定义,以及自定义游戏级别,实现雷区行数、列数以及地雷数量等。标明该类的主要成员变量和方法的UML图如图4-3所示。 图4-3 Custom类的UML图Figure 4-3 Custom UML class diagr

39、am以下是UML图中有关数据和方法的详细说明。(1) 成员变量chujiButton、zhongjiButton、gaojiButton和zidingyiButton分别负责接收用户选择游戏级别的初级、中级、高级和自定义的JRadioButton。row、col和num分别负责接收自定义级别中雷区方格的行数、列数和地雷数量的JTextField。s1、s2和s3分别表示自定义级别中雷区方格的行数、列数和地雷数量。(2)成员方法Custom(JFrame f)方法是Custom的构造函数,负责完成窗口的主要功能,JFrame f参数接收SaolaiMain主窗口对象的输入。4.2.3 StaDi

40、alog类StaDialog类是javax.swing包中JDialog对话框的子类,主要负责将对玩家扫雷情况的统计信息以对话框的形式显示。标明该类的主要成员变量和方法的UML图如图4-4所示。图4-4 StaDialog类的UML图Figure 4-4 StaDialog UML class diagram以下是UML图中有关数据和方法的详细说明。(1) 成员变量PareDlg参数接收SaolaiMain主窗口对象的输入。p0、p1、p2、p3和p4分别负责显示已玩游戏次数、已胜游戏次数、获胜率、最多连胜次数和最多连败次数统计信息。(2)成员方法reset()方法将所有统计信息重置为零。ch

41、uji()方法对初级扫雷情况进行统计。zhongji()方法对中级扫雷情况进行统计。gaoji()方法对高级扫雷情况进行统计。setSelection()方法根据方格数量确定级别。setListIndex0()方法设置统计级别为初级。setListIndex1()方法设置统计级别为中级。setListIndex2()方法设置统计级别为高级。4.2.4 Brick类 Brick类是javax.swing包中JPane类的子类,主要负责在界面上显示方格,可以定义方格的大小、颜色,设置背景图片等,实现了MouseListener接口,重载了mouseClicked事件,用于翻开方格;重载了mouse

42、Entered事件,用于鼠标进入方格时,改变该方格的颜色;重载了mouseExited事件,用于鼠标离开方格时,恢复该方格的颜色。标明该类的主要成员变量和方法的UML图如图4-5所示。图4-5 Brick类的UML图Figure 4-5 Brick UML class diagram以下是UML图中有关数据和方法的详细说明。(1)成员方法SetIcon(String s)方法用于设置方格背景图片。4.2.5 BrickWork类 BrickWork类是Brick类的子类,主要负责在界面上显示方格和方格上的标记及其翻开后的数字、雷、炸开的雷等,还可以对自己所在位置的行列号进行设置、存储和查询等功

43、能。实现了Runnable接口,重载了run函数,该函数实现了扫雷失败后的爆炸效果。标明该类的主要成员变量和方法的UML图如图4-6所示。图4-6 BrickWork类的UML图Figure 4-6 BrickWork UML class diagram以下是UML图中有关数据和方法的详细说明。(1) 成员变量wakai为方格翻开标志。fail为扫雷失败标志。lei为是否地雷的标志。biaoji为将方格标记为不确定的标志。wenhao为将方格标记为问号的标志。leinum为地雷的数量。row、col为方格所在行、列号。pingfanghe为平方和。onebao为爆炸标志。(2)成员方法setI

44、conRed()方法设置方格翻开后为红色的雷。setBgIcon16()方法设置方格的背景图片。setrepare()方法设置鼠标进入时方格的颜色。setBao16()方法置扫雷失败后,方格为雷爆炸的图片1。setBao161()方法置扫雷失败后,方格为雷爆炸的图片2。setnumber0()方法设置方格翻开后为空白。setnumber1()方法设置方格翻开后为数字1。setnumber2()方法设置方格翻开后为数字2。setnumber3()方法设置方格翻开后为数字3。setnumber4()方法设置方格翻开后为数字4。setnumber5()方法设置方格翻开后为数字5。setnumber6

45、()方法设置方格翻开后为数字6。setnumber7()方法设置方格翻开后为数字7。setnumber8()方法设置方格翻开后为数字8。setbiaoji()方法设置方格翻开后为标记(小红旗)。sethouqi ()方法设置扫雷失败后,方格为带小红旗的雷。setwakai(boolean wakai)方法设置方格为挖开的标记。getwakai()方法获取方格的开挖状态。setfail(boolean f)方法设置方格开挖失败标志。getfail()方法取方格开挖失败标志。setlei(boolean lei)方法设置方格为地雷。getlei()方法获取方格是否为地雷。setleinum(int leinum)方法设置方格周围八块有多少地雷。getleinum()方法获取方格周围八块有多少地雷。setrow(int row)方法设置方格所在位置的行数。getr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号