网站建设 大公司,定制开发一个网站多少钱,微信公众号关联网站,北京瑞浩信息管理咨询有限公司一、介绍
1.1 背景
在1964年 有一个叫“方 块”的游戏#xff0c;这是扫雷最原始的版本。后来#xff0c;这个游戏被改成了另一种游戏#xff0c;叫做“Rlogic”。在这个游戏中#xff0c;玩家扮演了一名军队的军人#xff0c;接受了一项艰难的任务#xff1a;为指挥中…一、介绍
1.1 背景
在1964年 有一个叫“方 块”的游戏这是扫雷最原始的版本。后来这个游戏被改成了另一种游戏叫做“Rlogic”。在这个游戏中玩家扮演了一名军队的军人接受了一项艰难的任务为指挥中心探路。当然游戏不会这么简单这条路上充满了地雷玩家需要小心翼翼的探索出一条没有地雷的安全的道路如果被雷炸死游戏就会结束。一年后汤姆·安德森Tom Anderson在之前游戏的基础上又编写了一款新的游戏这就是扫雷游戏。1979年 两名工程师在计算机的操作系统上搭载了这款小游戏从此以后扫雷游戏开始风靡全球。如今越来越多的人喜爱上了这款简单易上手的小游戏这个小游戏可以在任何时间在任何平台上进行游戏让人可以在游戏中享受到乐趣并且还能在一定程度上锻炼玩家的思维能力。 扫雷这款游戏有着很长的历史从扫雷被开发出来到现在进行了无数次的优化这款游戏变得越来越让人爱不释手了简单的玩法在加上一个好看的游戏界面每一处的细节都体现了扫雷的魅力。所以本次的毕业设计我将开发一款扫雷游戏。 扫雷游戏深受大家的喜爱本次的毕业设计也是迎合大家的喜欢开发一款扫雷小游戏同时也可以提高自己编程水平。
开发工具的选用及介绍
Eclipse是一款非常好用的编译软件它也经历了很长时间的发展并且是由许多公司联合开发的免费软件。2011年5月公布稳 定版4.22012年4月公布代号为Ganymeode的4.3版2013年5月公布代号为Galieleo的4.4版2013年7月公布代号为Helomios的4.5版2013年11月公布代号为Indigon的4.6版2014年3月公布代号为Jiuno的5.1版2014年7月公布代号为Keplere的5.2版2015年3月公布代号为Lunam的5.3版2015年8月公布代号为Marse的5.4版。 Eclipse是目前主流的编写代码的软件可以支持预编译在写代码的同时就能知道是否书写错误而不用等到运行的时候才发现。原本这个软件只能编写Java语言但是经过多年的开发设计出了许多的插件将这些插件安装进去以后就可以编写其他语言了这也就是他被大部分人所喜爱的原因。正是由于插件的使用Eclipse变得很灵活可以通过安装插件来实现原本没有的功能让软件更加的便利。 Eclipse一开始是由两个团队联合设计开发出来的由于该软件的强大功能使得许多公司纷纷加盟该项目联合开发。而且这个项目是开源的任何人都能对其进行开发修改这让Eclipse的名气愈来愈大后来连甲骨文这种大公司都加入这个项目之中。这种免费的开发软件也很受许多公司的喜爱通过安装插件可以使用各种语言。 Java语言是一种深受大家喜爱的语言因为它是面向对象的所以在理解了这种语言之后就会在代码的设计上有更深刻的理解。 如果没有JDK你编写的Java代码是无法运行的这是因为我们需要使用他自带的类库来帮助我们设计由于不同的软件都可以编写代码语言规范也就显得尤为重要所以在开始编写代码之前一定要安装好JDK。 现在在网上是有着许许多多的JDK版本其中以Sun公司发布的最好其他公司也有开发并发布出来。有的在性能上甚至超过了Sun公司的JDK有的则在在执行的效率上高于Sun公司的JDK。但是我们还是选择使用它的原因是因为它是最稳定的JDK经过多年的开发和完善是其他JDK所不能相比的。所以我们要熟练的运用它。
1.3 选题目的和意义
经历了大学四年的学习之后我已经学习了一些关于设计和编程的理论知识本次的毕业设计运用学过的知识编写一个扫雷小游戏是对我平时学习成果的一次检验。在设计当中让我的知识在实践中融会贯通并得到提升并且能发现许多平常发现不了的问题期望能通过本次的毕业设计让我的能力再一次提高。这次毕设一定会让我收获许多在今后的工作生涯中能轻松的胜任任何任务。
1.4 本文主要研究的内容
扫雷游戏风靡全球受到很多人的喜爱。我研究了这个扫雷游戏之后发现有两个关键点 第一点是鼠标事件的处理包括鼠标点击菜单项中按钮的事件点击雷区中任意一格的事件点击界面上按钮的事件等。 第二点是初始化雷区包括随机生成雷的位置界面的初始化计算周围雷数等。 具体要求如下 1扫雷游戏分为三种难度分别是初、中、高级点击游戏左上角的“游戏”菜单后会出现“初级”、“中级”、“高级”三种选项。除此之外玩家还可以自定义难度。 2在玩家选择难度之后游戏将会改变界面大小并改变雷的总数。当玩家点开第一个格子时雷区开始布雷同时计时开始。 3若玩家想放弃本局游戏并重新开始的话可以通过点击扫雷信息统计区中的按钮来结束当前的游戏并开始新的游戏。 4当玩家认为某个格没有雷可以直接用鼠标单击这个格或者把鼠标放在该格子上按下空格键。如果玩家的判断是正确的则会显示周围8个格子中地雷的总数如果玩家判断错误该格子下藏着雷的话游戏就好结束系统自动弹框提示玩家失败。 5若玩家认为某个格下有雷在该格子上鼠标右键就可以标记一个玩家认为该格是雷的图标也就是在格子上标记一个小红旗的图案。玩家每标记一个红旗不管玩家的判断正确与否界面上的计数区都会把雷数减一。 6当所有的雷都标记正确后游戏会自动弹框显示“您真厉害请输入您的名字记录上榜”。 7若玩家在游戏过程中单击了有雷的格子游戏失败并且记时停止游戏会将剩余的雷全部显示出来自动弹框显示“你输了请继续努力”之后玩家可以开始一局新的游戏。 8如果玩家不清楚游戏玩法可以点击菜单栏上的帮助来获取游戏玩法及游戏窍门。 9对于自定义难度系统会有一个阈值行数在9到16之间列数在9到30之间地雷数在10到99之间。如果玩家设置的值超过该阈值系统会自动将超过的数值变成阈值。
二、需求分析
2.1 可行性分析
扫雷游戏是一款玩法简单的小游戏无论是孩子还是老人都可以在休息的时候玩上一局从而轻松而有效地舒缓压力。而且真正的扫雷高手还可以通过竞速在最短的时间内完成扫雷来感受乐趣。 1投资可行性扫雷游戏所占内存少可以搭载在任意平台有投资的价值。 2财务可行性从受益者的角度来看不需太多的经费就能开发这款扫雷小游戏。 3组织可行性制度可行的项目规划做好人员的配给保持组员间的良好沟通定期开会讨论确保项目能够准时交付。 4 经济可行性可以给开发的企业创造效益给社会增加工作岗位并且提高人们的生活质量。 5 法律可行性任何的产品都需要确保它没有触犯法律才能开始设计。但是扫雷游戏并不会触犯任何法律而且不会和企业之间发生冲突。游戏的开发不会侵犯任何人的利益也不会违法。 6 技术可行性扫雷游戏的功能简单只需稍有经验的开发人员就能轻易开发出来所以技术方面不是太大的问题主要需要明白扫雷的玩法才能更好的设计与实现该游戏。
2.2 扫雷游戏功能描述
游戏界面可以分为三个模块菜单栏游戏数据显示区域以及雷区。菜单栏包括游戏难度的选择和排行榜的查询以及游戏帮助。游戏数据显示区域包括地雷计数区、计时区和重新开始按钮。雷区就是玩家的游戏区域当玩家在游戏过程中用鼠标点击某一模块系统会自动作出相应的响应这就是游戏中的鼠标事件。 当玩家点开第一个格子时雷区开始布雷同时计时开始。然后会在该格子上显示周围8个格子的雷数如果没有雷则自动点开周围的格子玩家就需要通过这些数字来判断雷的位置将是雷的格子标记为小红旗。 若玩家认为已标记的格子时错误的可以再次右击该格子来取消标记。当某一格子被标记时对于该格子的单击操作是无效的防止玩家误点击导致游戏失败。 如果玩家将某一格周围8个格子中的雷标记了出来双击该格子会自动将周围的格子点击一遍这样可以简化玩家的操作。 当玩家将全部的地雷标记出来并且其他的格子点开时游戏结束。但是如果玩家不小心点到了地雷就会游戏失败系统自动显示出所有的地雷。如果玩家标识的地雷数量超过了该难度下规定的雷数计数区会以负数显示超出的雷数并且游戏不会结束。
2.3 扫雷游戏用例图 2.4 扫雷游戏功能需求
本次扫雷设计需要实现的主要功能有:
(1)玩家可以选择合适的游戏难度
点击游戏界面左上角菜单栏中的“游戏”菜单会出现出现“初级”、“中级”、“高级”、“自定义”四种选项。在玩家选择难度之后游戏将会改变界面尺寸并改变雷的总数。前三种雷数和尺寸都是固定的无需玩家设置而自定义则是玩家自己定义的。
(2)进行扫雷游戏
游戏界面包括菜单栏游戏数据显示区域以及雷区当玩家点击雷区中的任意一格的时候游戏开始雷区开始随机布雷玩家需要在最短的时间内找出雷区中所有的地雷并加以标识。
扫雷的基本操作包括鼠标左键单击和右键单击两种。其中左键用来点开玩家认为不是雷的格子右键标记玩家认为是雷的格子。
左键单击玩家在判断出该格子下没有雷时单击该格子可以将该格子点开。如果该格子周围有雷就会显示周围雷的数目由于周围最多只有8个格子所以最多只能显示8如果格子上什么也不显示也就是为空系统就会自动调用递归的方法打开附近的格子。如果点到了有地雷的格子那么游戏结束系统显示所有雷的位置。
右键单击玩家可以通过使用鼠标右键单击来标记自己认为是雷的格子通过标记可以有效的提高扫雷游戏的效率。再次右击该格子可以取消标记且格子被标记的时候鼠标单击无效防止玩家误操作导致游戏失败。
(3)游戏计时
当点击雷区任意一个格子的时候雷区开始布雷同时计时开始计时标准是一秒增加1。如果游戏失败时则计时停止。如果玩家开始了新游戏计时也会重新开始。
(4)标记地雷
当玩家认为格子下有雷时可以右击格子来标记该格子被标记的格子显示小红旗。再次右击可以取消标记且格子被标记的时候鼠标单击无效防止玩家误操作导致游戏失败。如果玩家标识的地雷的数量超过了该难度下规定的雷数计数区会以负数来显示超过的雷数并且游戏不会结束。
(5)统计功能
当玩家游戏胜利后会弹框提示并可以输入玩家的名字确认后本次游戏的记录会被保存。玩家可以点击菜单栏上的“游戏”菜单再点击其中的“扫雷榜”即可查看游戏的最佳记录。
(6)退出
点击关闭按钮可以结束游戏。
2.5 扫雷游戏界面需求
(1)游戏菜单
玩家有5项可以选择玩家在点击初级时游戏界面的尺寸会变为初级的大小雷区重新初始化变为一共99的格子其中有10颗是地雷中级一共有1616个格子其中有40颗是地雷高级一共有16*30个格子其中有99颗是雷。除此之外玩家还可以自定义难度在弹框中填写雷数与尺寸。
玩家通过点击鼠标右键来标记自己认为是雷的格子通过标记可以有效的提高扫雷游戏的效率再次点击右键可以取消标记。
扫雷榜记录玩家不同难度的最短时间。
(2)游戏区域
游戏区域由扫雷信息统计区和雷区组成其中扫雷信息统计区又分为计数区、计时区、重新开始按钮。
雷区的雷数每个难度对应的雷数都不同初级、中级、高级分别对应10、40、99个雷。
计数区初始显示的雷数由难度而定每次标记地雷雷数均减1如果玩家标记的地雷的数量超过了该难度下规定的雷数计数区会以负数显示超过的雷数。
当玩家点开第一个格子雷区开始布雷同时计时开始一秒加1直到游戏胜利或者游戏失败的时候停止计时。 2.6 扫雷游戏功能模块 游戏在功能上分为6个模块:
(1) 游戏界面
(2) 布雷
(3) 鼠标事件
(4) 地雷判断
(5) 游戏胜利(结束)
(6) 游戏失败(结束)
三、游戏的概要分析与设计
3.1 设计构想
如今世界上很多人都在使用Windows操作系统所以人们也对系统自带的小游戏了如指掌。扫雷游戏的玩法简单只要玩家进行一定的判断就可以轻松的游戏所以玩扫雷的时候可以很轻松的玩。除了游戏本身带给人们的乐趣以外游戏的玩法也在锻炼玩家的思维如今大部分人都是依赖脑力劳动这就可以通过在闲暇的时候玩玩扫雷来锻炼一下自己。所以就可以理解为什么在各种电子产品上都搭载这个小游戏了。 虽然游戏比较简单但是还是需要熟悉一下规则。 玩家需要在最短的时间内找出雷区中所有的地雷并加以标识其他没有雷的格子全部点开后游戏胜利。但是如果点到了地雷则游戏失败。 游戏的操作很简单当玩家用鼠标左键点击自己认为不是地雷的格子会点开该格子用鼠标右键点击格子会标记该格子再次右击可以取消标记。玩家可以通过雷区中被点开的格子上显示的数字来判断该格子周围8个格子所隐藏的地雷例如点开的格子显示数字“2”则表示该格子周边的8个格子里隐藏着2颗地雷。 如果点开的格子下没有雷且周围8个格子里也没有雷则系统会自动点开那8个格子然后递归判断这些格子周围有没有雷。 本次的扫雷游戏设计需要编写7个Java类MineaGamae.java类、MineAra.java类、Block.jaav类、BlockVaiw.java类、LayMinas.java类、Record.java类和ShowRecrd.java类。
(1) MineGame.java MineGame类是游戏的入口用来初始化游戏资源比如界面尺寸和雷数等。同时也负责难度的转换。 (2) MineArea.java MineArea类是布置雷区的雷除了初始化雷区以外还可以响应玩家的鼠标操作。 (3) Block.java Block类是一个POJO类主要记录了雷区一个个格子的属性比如名字周围雷的数目等等。 (4) BlockView.java BlockView类用来显示块的属性并且使用卡片布局来使格子分为了上下两层当玩家点击格子后会使下面的属性浮现出来。 (5) LayMines.java LayMines类是计算不是雷的格周围雷个数的类以及设置点选之后的图片样式。创建的对象lay是MineArea中最重要的成员。 (6) Record.java Record类是通过IO流将游戏记录储存在本地的文件中主要实现通关后弹窗提示通关的窗口以及记录成绩。 (7) ShowRecord.java ShowRecord类是显示扫雷记录的类。
3.2 流程规划
有三个部分分别是游戏选择难度后、玩家第一次点击格子和为不是地雷的格子自动点开。 游戏选择难度后获取该难度设定的雷数与界面尺寸显示界面但是还没有布雷。当玩家第一次点开格子的时候系统随机布雷并启动定时器为什么要在点过一次格子之后才布雷呢这就是要让玩家第一次不会点到地雷要不然玩家该多郁闷这样才能提高玩家的游戏欲。之后是最重要的一步就是如何将格子周围没有雷的格子自动点开我们可以使用递归的方法来巧妙的判断并点开周围的格子。 整体规划如图3-2所示
3.3 界面规划
界面规划如图3-3所示 说明如下 ①游戏主界面Interface。 ②菜单Menu。 ③地雷数显示区MineNumberArea ④重新开始Restart。 ⑤扫雷用时显示区(TimeArea)。 ⑥地雷区(MineArea)。 四、联系与交流
q:969060742 完整代码、报告