<>项目介绍

扫雷这款游戏有着很长的历史,从扫雷被开发出来到现在进行了无数次的优化,这款游戏变得越来越让人爱不释手了,简单的玩法在加上一个好看的游戏界面,每一处的细节都体现了扫雷的魅力。所以本次的毕业设计我将开发一款扫雷游戏。

本次毕业设计是以JAVA语言作为开发环境,使用Eclipse设计并开发一个类似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类是显示扫雷记录的类。

<>效果图

目 录
摘 要 i
Abstract ii
1 绪论 1
1.1 课题背景及意义 1
1.2 开发工具的选用及介绍 1
1.3 选题目的和意义 2
1.4 本文主要研究的内容 2
2 需求分析 3
2.1 可行性分析 3
2.2 扫雷游戏功能描述 3
2.3 扫雷游戏用例图 4
2.4 扫雷游戏功能需求 4
2.5 扫雷游戏界面需求 5
2.6 扫雷游戏功能模块 6
3 游戏的概要分析与设计 7
3.1 设计构想 7
3.2 流程规划 8
3.3 界面规划 9
3.4 算法思想 9
4 游戏的详细设计 11
4.1 游戏初始化 11
4.2 雷区的布置 12
4.3 游戏中主要模块的介绍与使用 13
4.3.1 鼠标事件 13
4.3.2 地雷及雷区表面探测情况 14
4.3.3 清除未靠近地雷的格子 15
4.3.4 游戏难度的选择 16
4.3.5 菜单栏的功能 16
4.4 游戏的判断 16
4.4.1 游戏成功完成 16
4.4.2 游戏失败 16
4.5 类设计 17
4.5.1 MineGame类 17
4.5.2 Block类 18
4.5.3 BlockView类 19
4.5.4 Record类 20
4.5.5 ShowRecord类 21
4.5.6 MineArea类 22
4.5.7 LayMines类 23
5 游戏实现 25
5.1 游戏难度自定义 25
5.2 扫雷 28
5.2.1 玩家通过右键进行扫雷,并显示小红旗 28
5.2.2 玩家因触碰到雷而导致游戏结束 29
5.2.3 玩家扫雷成功 29
5.2.4 玩家游戏数据显示 30
5.3 程序打包发布过程 32
6 游戏测试结果 33
6.1 游戏难度自定义测试 33
6.2 扫雷测试 35
6.3 玩家游戏数据显示测试 37
6.4 游戏数据显示区测试 39
6.5 递归算法测试 43
结 论 44
参考文献 45
致 谢 47
外文原文 48
中文翻译 55

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信