ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:92.54KB ,
资源ID:4572051      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4572051.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Java扫雷游戏的设计与实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于Java扫雷游戏的设计与实现毕业设计(论文)题目:基于Java扫雷游戏的设计与实现学 生 姓 名 _ _学 号 _ 201022030220_班 级 _ 计算机102202H_所属院(系)_计算机科学与技术系_指 导 教 师 _ _ 2014 年 6 月 1日基于Java扫雷游戏的设计与实现摘要Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,

2、结构中立的,可移植的,性能优异、多线程的动态语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。关键词:Java,扫雷,游戏Design and Implementation of Java Minesweeper GameAbstractJava is a cross-platform application software can write object-oriented programmi

3、ng 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 s

4、tructure-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

5、 worlds largest developer of professional community . Global cloud computing and mobile Internet industry environment, Java has significant advantages and broad prospectsKeywords:Java ,Minesweeping ,Eclipse第一章 系统概述1.1 绪论扫雷一词有多个意思。扫雷游戏是微软于1992年附带在其操作系统中的小游戏,它通过点击格子并以出现的数字来判断附近地雷的数量,将全部地雷做上标记即可胜利;军事上的

6、扫雷(mine clearing)是指搜索和清除地雷、陆军水雷及其他爆炸物的行动;扫雷又被引作网络用语。扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏,不久之后,“方块”被改写成了游戏“Rlogic”,在“Rlogic”里,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,汤姆安德森在“Rlogic”的基础上又编写出了游戏“地雷”,由此奠定了现代扫雷游戏的雏形。 1981年,微软公司的罗伯特杜尔和卡特约翰逊两位工程师在Windows 3.1系统上加载了该游戏,扫雷游戏才正式在全世界推广开来。 这款游戏的玩法是在一个9*9(初

7、级),16*16(中级),16*30(高级),或自定义大小的方块矩阵中随机布置一定量的地雷(初级为10个,中级为40个,高级为99个)。由玩家逐个翻开方块,以找出所有地雷为最终游戏目标。如果玩家翻开的方块有地雷,则游戏结束。 扫雷游戏的目标是尽快找到雷区中的所有不是地雷的方块,而不许踩到地雷。游戏区包括雷区、地雷计数器和计时器,在“游戏”菜单上,单击“开局”,计时器就会启动,此时请单击游戏区中的任何方块,点开的数字是几,则说明该数字旁边的8个位置中有几个雷,如果挖开的是地雷,则会输掉游戏,用右键标记您认为可能有地雷的方块。1.2 开发工具Sun Microsystems公司在推出Java语言的

8、同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK: Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。 Java源程序编写借助于记事本,Editpuls,UltraEdit等三方编辑工具编写。 所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JDK 是整个Java的核心,包括了J

9、ava运行环境(JavaRuntimeEnvirnment),一堆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(J

10、ava Virtual Machine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。1.3 应用环境(1) 操作系统:Windows XP及以上版本(2) 应用软件:JDK Eclipse1.4 编写意义随着计算机得普及,人们越来越多得接触到计算机,人们得生活工作中无处不有计算机得身影,人们面对长时间的难免会有倦怠的情绪,而人们大多得缓解情绪得网络活动其实并不能起到放松心情得作用,现代人得生活节奏越来越快,有没有一种快速缓解疲倦得游戏呢?我们提出设计一款益智得小

11、游戏,这种游戏不会花太多时间,同时把玩家得思维带动起来,达到一举多得得效果。随着现在生活节奏的加快,人们在工作之余需要一个轻松娱乐的放松环境。因此我们小组编写此软件的目的,一方面作为初学者来了解扫雷的开发,另一方面开发此软件使用户能在娱乐休闲的同时拓展思维能力。同时进一步拓展研究,做到将扫雷层次升级,能够在多人连机的情况下,一起分工来进行对战 。如 一方放雷,另一方排雷。1.5 任务设计内容本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待以后完善。Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下:(

12、1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。(2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。(3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。(4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩

13、余雷数减少一个。(5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。第二章 可行性分析和需求分析2.1 可行性分析适用于各种群体,学生、老师、白领,简单却有效地舒缓压力,消磨闲暇时光,一局所需的时间很短,低级的只需十多秒,此软件是以娱乐为主的休闲游戏,开发基于安卓手机操作系统。具有操作方便、便于保存等优点投资可行性:主要根据市场调查及预测的结果,以及有关的产业政策等因素,论证项目投资建设的必要性。(1) 财务可行性:主要从项目及投资者的角度,设计合理财务方案,从企业理财的角度进行资本预算,评价项目的财务盈利能力,进行投资决策。 (2) 组织可行性:制定合理的项目实施进度计划、设计合理的

14、组织机构、选择经验丰富的管理人员、建立良好的协作关系与、制定合适的培训计划等,保证项目顺利执行。(3) 经济可行性:主要从资源配置的角度衡量项目的价值,评价项目在实现区域经济发展目标、有效配置经济资源、增加供应、创造就业、改善环境、提高人民生活等方面的效益。(4) 法律可行性:在开发一个软件之前一定要确定它是否触犯某项法律或与国家的相关规定是否抵触。扫雷游戏系统并不任何法律或国家相关规定相抵触,所以在法律可行性上是通过的,在进行设计时没有违法任何法律法规,也不对任何企业的系统进行侵权等。系统的研制和开发都选用正版软件,将不会侵犯他人、集体和国家的利益,不会违反相关的国家政策和法律。(5) 技术

15、可行性评价:在限制条件下,功能目标基本能够实现和达到,利用现有技术,功能目标基本能够达到,开发人员足够 能够满足条件要求,在规定时间内能够完成该项目开发。2.2 需求分析随着社会的不断进步,人们所承受的压力不断上升,在游戏层出不穷的时刻,扫雷游戏仍受到不少人的青睐,其本身的性质,决定了人们对它的喜爱程度,不需要特殊的技巧,不需要不断地升级,不需要太多的时间进行初步的熟悉,简简单单却乐趣无穷。2.2.1 理解需求扫雷游戏系统的建立,需要进行用户需求调查与分析,以确定系统目标,提高解决问题的详细方案,这是系统建设的重要环节。(1) 系统可以根据需求来设计功能模块,如“开局”、“初级”、“中级”、“

16、高级”“自定义”、“扫雷英雄榜”和“退出”等。(2) 系统运行在Eclipse平台下,系统应该有一个较好的图形用户界面。2.2.2功能需求需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统(手工系统或计算机系统)工作概况,明确各种需求,然后在此基础上确定新系统的功能。根据用户的需求,确定本扫雷游戏应具有以下功能:(1) 用户可以自行选择难度界别;(2) 自动保存扫雷英雄榜;(3) 用户可以设计“初级”、“中级”、“高级”三个级别。第三章 详细设计在设计扫雷游戏时,需要编写4个Java源程序:ArrayPane.java,JavaMineSweeping.java,JavaMine

17、SweepingFrame.java,RandomNumber.java。扫雷游戏除了需要编写上述4个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如File、JButton和JLabel等类。扫雷系统流程图如图3-1所示:图3-1 流程图3.1 JavaMineSweepingFrame类JavaMineSweepingFrame类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口。主要控制“选择”菜单栏里的选项和状态栏的名称。如图3-2所示:图3-2 菜单栏3.2ArrayPane类ArrayPane类是javax.swing包

18、中JPanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象:ArrayPane是ArrayPane类中最重要的成员之一,作为一个容器添加到窗口的中心。3.3javaMineSweeping类javaMineSweeping类负责创建扫雷游戏机主窗口,该文件含有main方法,扫雷游戏从该类开始执行。3.4RandomNumber类RandomNumber类是雷区中“方块”的类封装,含有关于“方块”的属性以及操作,即负责为雷区创建代表“方块”的对象。3.5 具体内容3.5.1 菜单栏内容的生成通过创建多个对象实现菜单栏里项目的生成JMenuBarme

19、nuBar = new JMenuBar();JMenumenuFile = new JMenu(选择);JMenuItemmenuLevelOne = new JMenuItem(初级);JMenuItemmenuLevelTwo = new JMenuItem(中级);JMenuItemmenuLevelThree = new JMenuItem(高级);JMenuItemmenuFileExit = new JMenuItem(退出);JButtonbutReset = new JButton(重来);3.5.2 雷的生成通过在不同难度下的固定格数指定雷数然后通过随机数生成雷的位置,每次

20、生成雷的位置不同publicArrayPane(introw,int col) this.row = row;/接受定制的行 this.col = col;/接受定制的列 if(row=9 & col=9) totleNumber=10; else if(row=16 & col=16) totleNumber=40; else if(row=16 & col=30) totleNumber=99; 3.5.3 单机非雷块后数字显示首先,在单击每块方块后会记录此次单击的位置坐标。private static intclickRow;/当点击后,记住行坐标 private static intc

21、lickCol;/当点击后,记住列坐标 然后会调用一个递归的循环来处理雷块周围有多少雷显示数字的问题。b = new JButtonrowcol; /设置按钮 for(i=0;irow;i+) /初始化按钮组 for(j=0;jcol;j+) bij = new JButton(); bij.addActionListener(this); bij.addMouseListener(this); p2.add(bij); this.setBorder(BorderFactory.createTitledBorder(row*col+格); this.setLayout(new BorderLa

22、yout(); this.add(p1,BorderLayout.NORTH); this.add(p2,BorderLayout.CENTER); 第四章 系统测试(1) 程序运行后,界面上有一个菜单和一个按钮,分别是“选择”和“重来”;当玩家踩雷时候可以点击“重新开始来”。如图4-1所示:图4-1 程序运行图(2) 当玩家点击“游戏”菜单时会出现4个子菜单,分别是“初级”、“中级”、“高级”和“退出”。,玩家可以通过选择“初级”、“中级”和“高级”按钮来选择游戏级别;游戏结束后玩家可以通过“退出”退出游戏框。图4-2 难度级别选择图4-3 中级难度界面图4-4 高级难度界面图4-5 扫雷失

23、败界面结束语通过这一阶段的毕业设计,我设计的教务系统终于基本完成。系统基本实现了老师的要求。期间出现过很多的问题,比如对数据库认识不够、功能优越性没得到充分发挥、对软件和一些类库的操作不足等,但在老师和同学的帮助下这些问题都得到了基本解决。在该系统制作的全过程中,我学会了如何去获取知识,如何去认真的做事情。由于时间和能力等各方面的限制,系统的设计和功能方面还存在着很多不足,没有达到预期想象,还需要不断改进和完善。毕业设计的结束大学也就结束了,但我会努力的提高自己,用在大学学到的技术和本领在社会上做出自己的贡献。参考文献1 朱福喜,尹为民,余振坤.Java语言与面向对象程序设计.武汉:武汉大学出

24、版社,2008.2 陈国君,陈磊.Java 2从入门到精通.北京:清华大学出版社,2008.3 王梅,Java并发编程设计原则与模式.北京:中国电力出版社,2009.4 尹伟民,Java程序设计之网络编程.北京:清华大学出版社,2008.5 印昊.Java与面向对象程序设计.北京:高等教育出版社,2008.6 耿祥义.Java课程设计.北京:清华大学出版社,2009.7 赵生慧.Java面向对象程序设计.北京:高等教育出版社,2009. 致谢毕业设计即将结束,大学的生活也就要要随之结束了。在毕业设计期间,我得到了老师很多的帮助和支持。,在程序制作方面,我吸收到许多有价值的技术知识,并且学会了如

25、何自己学习,自己钻研,在我编写论文期间,老师给了我很多建设性意见,尤其是在数据流图、数据字典,程序流程图方面,并督促我多查阅资料。一遍一遍的帮我检查,指导我修改,使得我能最终顺利的完成了毕业设计。再次向一直支持鼓励我、关心我的老师、父母、同学和朋友们致以最诚挚的谢意!附录程序源代码JavaMineSweeping.java/* * Swing扫雷游戏 * * author liu * version 1.00 2005/12/5 */importjavax.swing.*;public class JavaMineSweeping public static void main(String

26、args) /try /这是获取当前系统所运行的平台的程序外观。 / UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); /catch(Exception e) / e.printStackTrace();/打印异常的堆栈信息 / JavaMineSweepingFrame frame = new JavaMineSweepingFrame(9,9);frame.setVisible(true); JavaMineSweepingFrame.javaimportjava.awt.*;importjava.awt

27、.event.*;importjavax.swing.*;/* * Sample application using Frame. * * author XieFei * version 1.00 04/11/28 */public class JavaMineSweepingFrame extends JFrame implements ActionListener JMenuBarmenuBar = new JMenuBar();JMenumenuFile = new JMenu(选择);JMenuItemmenuLevelOne = new JMenuItem(初级);JMenuItem

28、menuLevelTwo = new JMenuItem(中级);JMenuItemmenuLevelThree = new JMenuItem(高级);JMenuItemmenuFileExit = new JMenuItem(退出);JButtonbutReset = new JButton(重来);JToolBartoolBar = new JToolBar(); Container con = this.getContentPane();JPanel p1 = new JPanel(); Dimension d = new Dimension(400,350);int row;/行in

29、t col;/列ArrayPaneap; publicJavaMineSweepingFrame(introw,int col) super(扫雷谢非); menuLevelOne.addActionListener(this); menuLevelTwo.addActionListener(this); menuLevelThree.addActionListener(this); this.row=row; this.col=col; ap = new ArrayPane(row,col); /加载菜单this.setJMenuBar(menuBar);menuBar.add(menuFi

30、le);menuFile.add(menuLevelOne);menuFile.add(menuLevelTwo);menuFile.add(menuLevelThree); menuFile.add(menuFileExit);butReset.addActionListener(this);toolBar.add(butReset);con.setLayout(new BorderLayout();con.add(toolBar,BorderLayout.NORTH); /北面 menuLevelOne.addActionListener(this);menuLevelTwo.addActionListener(this);menuLevelThree.addActionListener(this);menuFileExit.addActionListener(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);con.add(p1,BorderLayout.CENTER);/中间p1.setLayout(new GridLayout(1,1);p1.add(ap);this.setSize(400, 400)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1