Java 程序设计课程设计
设计(论文)题目:
扫雷游戏的设计与实现
所 在
院:
信息工程学院
专 业 班 级: 15 计算机科学与技术 2 班
学 生 姓 名:
学
号:
201515054
指 导 教 师:
杜远坤
2018 年 9 月 14 日
扫雷游戏的设计与实现
郑州科技学院
课程设计(论文)任务书
设计题目:
扫雷游戏的设计与实现
专业班级:
15 计算机科学与技术 2 班
学号: 201515054 姓名:
主要内容:
设计这个扫雷游戏,基本功能模块包括:游戏开始、帮助、
暂停和继续运行操作的功能等。采用字符用户界面,通过菜单选
择相应的操作,直观且操作简单。
基本要求:
按照内容要求,设计完整的扫雷游戏。要求调试通过,不存
在漏洞,方便用户操作。功能的实现上力求容错能力要强且提示
信息完备。
完成期限: 2018 年 9 月 14 日
指导教师签名:
扫雷游戏的设计与实现
课程设计成绩评定
评定项目
内容
满
分
评
分
备注
学习态度
学习认真、态度端正、遵守纪律。 10
认真查阅资料,勤学好问,独立思
40
设计情况
考,分析解决问题的能力较强。
说
明
书
质
量
设计方案正确,表述清楚;设计思
40
路、实验(论证)方法科学合理;
工作量等达到课程设计任务规定
的要求;图、表、文字表达准确规
范,内容完善。
回答问题准确,基本概念清楚,有
10
答辩情况
理有据,有一定深度。
总成绩:采用五级分制:优(90 分以上)、良(80-89)、中
(70-79)、及格(60-69)、不及格(60 分以下)。
指导教师评语:
签名:
年
月
日
扫雷游戏的设计与实现
目录
1.引言........................................................................ 1
2.需求分析................................................................ 2
3.设计方法及设计方案.............................................3
3.1.扫雷的整体布局.............................................3
4.系统设计................................................................ 5
5.系统的开发和运行环境......................................... 6
6.系统实现................................................................ 7
6.2 运行实现.............................................................. 9
7.源代码.................................................................. 14
8.课程设计总结.......................................................25
9.参考文献.............................................................. 26
扫雷游戏的设计与实现
1.引言
扫雷游戏最初是由微软公司 xp 系统自带的一种小
游戏,整个游戏界面简单而且容易操作,深受各位玩家
的喜爱。这个游戏一共分为 4 个等级,分别为初级、中
级、高级和超高级等几个等级,在代码中定义了一个公
共 函 数 public void 级 别 雷 布 局 (int row1,int
co1,int 雷数 1),各种级别的实现只需要改变实参的大
小就能实现级别的差异,操作简单,节省了大量的代码,
加快了程序的运行速度。
扫雷的整体布局采用了 GridLayout 布局,整体布
局 都 是 用 JButton 按 钮 组 成 , 再 分 别 设 置
MouseListener 监视器,分别通过鼠标左键或者右键对
其进行控制。通过继承 JFrame 窗口来进行窗口的实现。
并且通过 public void 创建图形界面()方法来实现窗
口的其他布局。雷数的判断是采用八个 if( )语句对周
围八个按钮进行判断,并调用相应雷数的图片显示在该
按钮上,对于周围无雷地按钮,也将会使用八个 if( )
语句,把其周围的八个雷给翻开。最后在插旗的控制上,
采用对每一个按钮添加一个 flag 变量,来对自己进行
加锁与解锁,如果一旦该按钮加了锁,再左击该按钮将
不会有任何反应,只有解锁后才能将其翻开。
1
扫雷游戏的设计与实现
2.需求分析
2.1.扫雷游戏概述
扫雷游戏,是 Windows 操作系统自带的一款经典
游戏。其规则简单,上手容易,不论男女老少皆可娱乐。
扫雷的目的就是要把所有非地雷的格子揭开即胜利。踩
到地雷格子就算失败。扫雷是一款非常经典的游戏,到
现在为止还是有许多人玩这款游戏。扫雷游戏过程就是
排除布在面板上的所有地雷,在左击面板上按钮的时
候,可能有三种情况出现:1.点的是地雷,游戏挑战失
败,2.点的是空白区域,将会将周围的一些按钮炸开,3.
点的那个按钮有数字,那数字是显示,该按钮周围八个
按钮中有多少个地雷。
2.2.扫雷的操作方法
游戏主区域由很多个方格组成。使用鼠标随机点击
一个方格,方格即被打开并显示出方格中的数字;方格
中数字则表示其周围的 8 个方格隐藏了几颗雷;如果点
开的格子为空白格,即其周围有 0 颗雷,则其周围格子
自动打开。
例如,方格中出现 1,说明上下左右及斜角合计有
一颗雷,依次类推,2 则有 2 颗,3 则有 3 颗。在确实
是地雷的方格上点了旗子,就安全了,不是地雷的被点
了旗子,后面会被炸死。在不确定是否是地雷的方格上
用右键标示"?"符号,表示怀疑这个格子是地雷。这样
2
扫雷游戏的设计与实现
格子在自动打开时,被标示的格子就不会被打开,导致
游戏结束。
2.3.扫雷游戏的基本规则
在游戏中,当玩家不小心踩到地雷格子就算失败。
而当地雷计数器中的数字变成 0 时,说明地雷全部被查
到,游戏结束,玩家胜利。
2.4.有背景音乐支持
在游戏中,我添加了适当的背景音乐以便扫雷的时
候能够轻松应对,另外,我还在碰到雷区的时候能够以
音乐的时候提示。
2.5.游戏的帮助
在游戏界面中需要提供游戏使用说明等帮助提示,
以方便对本游戏不了解的玩家对游戏进行操作和使用。
3.设计方法及设计方案
3.1.扫雷的整体布局
系统的整体布局为:BordLayout 布局, 总共设置了
4 个面板 JPanel,其中有两个 P1,P3 一起嵌套在 P 面板
中,在 P 面板中设置了 BordLayout 布局,接下来就是
扫雷区的整体布局,采用了 GridLayout 布局,在上面
依次添加了 n*nd 的按钮构成了扫雷的重要组成部分。
(1).开始一栏:其中有开局、暂停、继续、退出、初
级、中级、高级、超高级、自定义、标记、颜色、声音、
打雷英雄榜、开局。定义了 Jmenu,JmenuBar,JmenuItem,
之后分别将选项一次添加即可。对可选项里面的每一项
3
扫雷游戏的设计与实现
分别设置监视器来监控 ActionEvent 事件。
(2)帮助一栏:目录、查找帮组主题、使用帮助、关
于扫雷
(3)暂停:暂停,通过新建一个线程 Thread,调用 stop()
方法停止。
(4)继续:继续开始线程,根据判断条件重新调用 run()
方法。
(5)退出:退出,通过实现 WindowApater 适配器中
的方法 windowclosing()来完成界面退出界面。
3.2.雷区的整体设置
在整个代码设置中总共用到了两个类,分别是
public class 扫 雷 程 序 和 实 现 鼠 标 接 口 的
NormoreMouseEvent 类,其中 NormoreMouseEvent 类的
作用就是控制鼠标点击按钮是能触发的事件。主要的雷
区的布局就掌握在“扫雷程序”这个类上面。
3.3.音效的设计
AudioStream 是 sun.audio.AudioPlayer 包中一个流类;
AudioPlayer 是 sun.audio.AudioPlayer 包中的一个类。通过构
造音效声音方法,在“扫雷程序”主类中,通过 ActionListener
来监视是否已开始游戏,来决定播放计时声,之后又通过
ActionListener 来监视是否踩到雷和是否完成来决定,播放相应
的音乐。
4