# 基于JAVA在LINUX系统上实现扫雷游戏
# 1、设计题目
简单扫雷游戏的实现。
# 2、步骤与内容
## 2.1 运行环境
- LIUNX系统(Ubuntu18.04)
- jdk1.8
## 2.2 扫雷程序主要功能框架图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/b6a32ea6834fca761c5a64b83b933211.writebug)
## 2.3 程序设计主要算法思路
- 计算按钮周围雷数
- 随机分布。扫雷游戏要求在M行N列的网格游戏区随即的不大于b个雷,且b的取值应小于M和N的乘积。这可以在一张M\*N的网格上通过均匀分布的随即算法实现。其中b的网格是雷区,剩下的网格是非雷区。游戏的目标是尽可能快地找到所有的雷区,而不踩到地雷。Java提供了实现随即算法的类Math,通过Math类的random()方法这可以很方便的实现随即布雷的功能
- 判断游戏是否获胜只需将所有雷的位置保存到已访问数组visitsd中,只有在其中所有的元素到被访问到了之后,游戏才判为赢,否则为输
## 2.4 程序技巧
**运用二维数组来判断雷区的每一个按钮是否有雷**
当单击blockView中的某个方块时,actionPerformed(ActionEvent)方法负责执行有关算法。isWin()方法用来判断用户是否扫雷成功,如果成功open()方法负责让record对话框可见。ActionListener用来监听整个事件
**使用JAVA GUI进行界面设计**
图形界面简称GUI,是用图形的方式,借助菜单、按纽等标准界面元素和鼠标操作,帮助用户方便地想计算机系统发出指令、启动操作,并将系统的运行结果同样以图形方式显示给用户的技术。JAVA的图形界面技术既为使用java.awt包来创建图形界面的方法,包括AWT组件、窗口和菜单设计、布局管理器以及绘图操作等。
## 2.5 模块流程图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/02c35115216853b8ef161a18ca9a7b70.writebug)
# 3、结果与分析
## 3.1 在Linux(Ubuntu 18.04)环境下的运行结果
![](http://www.writebug.com/myres/static/uploads/2021/10/19/5d8b82d536fb6244ffb6a0451640580e.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/7a3639a1465a8c11b4bcd24b94e27d17.writebug)
## 3.2 游戏存在的问题及改进之处
在花费了较多的时间和精力,经过了多次调试和改进下,这个扫雷游戏终于可以完成某些特定的功能了,但是,此扫雷游戏还是存在一些可以改进的地方:
- 雷的颜色可以设置高亮颜色,踩雷后更醒目
- 添加可控难度的按钮,可以放到菜单栏
- 设置插旗子的功能
# 4、总结
这是我第一次做课程设计,扫雷游戏我平常也会玩,所以对于做这个扫雷游戏的课程设计我也是很兴奋,虽然这设计过程中遇到很多困难,但我都在尽力的克服,对于这个程序我还是比较满意的,基本功能基本都实现了,图形界面虽然不能说是非常友好,但也至少能看的过去,通过这个课程设计我学到了很多的东西,把以前所学的课本知识很好的用到了实践当中,并且通过实践,重新发现了很多问题和很多以前不理解的没掌握的知识点,重新的理解并掌握了各种有关LINUX系统和JAVA的知识,更好地了解了LINUX系统的操作方法,这对以后我的学习和工作都有着巨大的帮助。