西安科技大学
软件工程课程设计报告
题目: “扫雷”游戏开发
班级:
计科 0903 班
学号:
姓名:
电话:
0908030329
高 延 平
15249288643
2012 年 7 月
目录
1. 绪论 ................................................................................................................................................1
1.1. 课题的开发背景................................................................................................................1
1.2. 系统概述............................................................................................................................1
2. 可行性研究报告........................................................................................................................... 2
2.1. 技术可行性分析................................................................................................................2
2.2. 操作可行性分析................................................................................................................2
2.3. 时间和资源可行性分析....................................................................................................2
3. 需求规格说明书........................................................................................................................... 3
3.1. 功能需求............................................................................................................................3
3.2. 性能需求............................................................................................................................3
3.3. 接口需求............................................................................................................................3
3.4. 输入控制需求....................................................................................................................3
3.5. 输出需求............................................................................................................................3
3.6. 其它需求............................................................................................................................3
4. 总体设计说明书........................................................................................................................... 4
4.1. 层次图(模块设计).............................................................................................................4
4.2. 结构图................................................................................................................................4
5. 详细设计说明书........................................................................................................................... 5
5.1. 类定义................................................................................................................................5
5.2. 模块定义............................................................................................................................5
5.3. 类图....................................................................................................................................6
5.4. 程序流程图........................................................................................................................6
6. 系统实现 ........................................................................................................................................7
6.1. 开发环境............................................................................................................................7
6.2. 关键技术............................................................................................................................7
6.3. 运行结果..........................................................................................................................26
7. 测试分析报告 ............................................................................................................................. 31
7.1. 测试项目..........................................................................................................................31
7.2. 测试环境..........................................................................................................................31
7.3. 测试结果..........................................................................................................................31
7.4. 测试结论..........................................................................................................................33
参考文献 ...........................................................................................................................................34
1. 绪论
1.1. 课题的开发背景
扫雷游戏是微软于 1992 年附带在其操作系统中的小游戏,在过去的几年里,Windows
操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏
依然保持原来的容貌。
扫雷游戏的目标是尽快找到雷区中的所有不是地雷的方块,而不许踩到地雷。点开的数
字是几,则说明该数字旁边的 8 个位置中有几个雷,如果挖开的是地雷,则会输掉游戏。
1.2. 系统概述
(1)系统主要实现功能:
1 开始游戏
2 自定义游戏设置
3 挖开格子(挖雷)
4 标记雷区
5 标记疑问
6 快捷操作
7 扫雷成功
8 引爆地雷
9 重新开始游戏
10 退出游戏
(2)运行环境:Java SE 1.6.31 或更高版本
(3)开发环境:Eclipse3.7.2,Java SE Development Kit 6u31
2. 可行性研究报告
2.1. 技术可行性分析
游戏程序是 JRE 1.6.31 平台下的应用程序,Java 是一种可以撰写跨平台应用软件的面
向对象的程序设计语言,Java SE 允许开发和部署在桌面、服务器、嵌入式环境和实时环境
中使用的 Java 应用程序,完全可以实现该项目的各种功能。
项目总体规模较小,适合个人单独完成。开发人员具有软件开发方面的知识基础,而且
具有一定的 Java 语言基础和 Java SE 平台下的开发经验,有能力完成该项目的设计和开发工
作。
2.2. 操作可行性分析
扫雷游戏是 Windows 操作系统自带的一款小游戏,游戏操作简单且具有一定难度,游
戏可玩性强;在过去的几年里,Windows 操作系统历经数次换代更新,变得越来越庞大、复
杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款游戏的经典,值得
深入研究,开发一款基于 Java 的可跨平台的扫雷游戏。
2.3. 时间和资源可行性分析
项目按预定计划进行,有足够的时间完成。
具体时间安排如下:
课程设计之前: 查阅资料,确定题目。
第 1-2 天:
搜集资料,调研分析。
第 3-6 天:
系统分析与设计。
第 7-11 天:
系统实现/测试。
第 12-14 天: 整理文档,成果验收,提交设计报告。
计划中,开发人员可全天候的进行软件开发工作,开发人员拥有个人电脑,可自行安排
时间进行软件开发工作,所以硬件方面的资源可得到满足。
2
3. 需求规格说明书
3.1. 功能需求
(1)开始游戏:双击可执行文件,游戏自动开始。
(2)自定义游戏设置:用户可以根据设置对话框自定义游戏。
(3)挖开格子(挖雷):单击格子即可挖开该格子,如果挖开的是地雷,则输掉游戏;
如果不是,则显示数字,表示在其周围的八个格子中共有多少颗地雷。
(4)标记雷区:右击格子以小红旗标识该格子是雷,之后不可左键点击,但可以右键
点击标识为“?”,同时剩余雷数减 1。
(5)标记疑问:右击格子,如果该格子以小红旗标识,则在格子上重新标识一个“?”,
意味着没有把握判定它是否有雷。标记为“?”的格子可以被挖开,也可以右键单击将标识
取消。
(6)快捷操作:双击数字,如果其周围的八个格子中标识的格子数与数字相等,则自
动挖开其周围其它未挖开的格子。
(7)扫雷成功:赢得游戏(扫雷成功)后,所有有雷的格子自动标识小红旗。
(8)引爆地雷:挖到地雷后,则引爆所有地雷,有简单动画效果。
(9)重新开始游戏:赢得游戏或输掉游戏后,弹出提示,并弹出是否重新开始对话框,
可以实现重新开始游戏。
(10)退出游戏:单击窗口右上角的“X”即可退出游戏。
3.2. 性能需求
(1)响应时间:本程序为实时性游戏,一般响应时间不应超过 0.1s。
(2)运行环境需求:已安装 JRE1.6.31 的电脑即可。
3.3. 接口需求
(1)用户界面:窗口化界面(包括标题图片,雷区,功能区),雷区实现游戏功能,功
能区包括计时器、剩余雷数计数器、帮助按钮和设置按钮;游戏程序还包括帮助对话框和设
置对话框。
(2)软件需求:JDK1.6.31 和 Eclipse3.7.2。
(3)硬件需求:可以运行 JDK1.6.31 和 Eclipse3.7.2 的电脑即可。
3.4. 输入控制需求
使用全鼠标控制。
3.5. 输出需求
(1)计时器:实时记录游戏已运行时间,当用户查看帮助或设置游戏时,暂停计时。
(2)剩余雷数计数器:实时记录游戏中的剩余地雷的数量。
(3)胜利消息对话框:当扫雷成功时,弹出提示消息。
(4)失败消息对话框:当挖到地雷时,弹出提示消息。
(5)动画效果:游戏失败时引爆所有地雷时,使上一个地雷引爆到下一个地雷引爆具
有一定时间间隔。
3.6. 其它需求
保存游戏、记录游戏最高历史记录、连机比赛、3D 效果等功能未实现。
3
4.1. 层次图(模块设计)
4. 总体设计说明书
扫雷游戏
游戏初始化
计
时
器
计
数
器
消
息
处
理
扫
雷
失
败
胜
利
重
新
开
始
帮
助
设
置
退
出
游
戏
4.2. 结构图
图 4-1 系统层次图
扫雷游戏
游戏初始化
计时器
帮助
设置
消息处理
扫雷
计数器
失败
胜利
重新开始
退出游戏
图 4-2 系统结构图
4
5. 详细设计说明书
5.1. 类定义
MS_Main:游戏程序主类。
MS_Mine:存储地雷信息的格子类。
MS_Frame:主窗口类,包含主要功能。
MS_HelpDialog:帮助对话框类。
MS_SetDialog:设置对话框类。
5.2. 模块定义
Initialize():初始化游戏模块。
sweepMine():格子被单击的处理模块。
traverse():遍历对应格子的周围的格子。
diversion1():左键单击消息处理模块。
isDoubleClicked():左键双击数字消息处理模块。
diversion3():右键单击消息处理模块。
timeAdd.actionPerformed():计时器消息处理模块。
gameWin():验证游戏胜利,以及之后的处理模块。
gameOver():点到雷,输掉游戏的处理模块。
restartGame():判断是否重新开始游戏的处理模块。
游戏程序主类
MS_Main
frame
Main()
格子类
MS_Mine
mineCount,
maxMineCount,
count,clicked
isMine(),
isEmpty(),
isClicked(),
getCount(),
setClicked(),
addMine(),
addCount(),
showMine()
1
1
程序主窗口类
MS_Frame
1..*
1
Row,col,WIDTH,
HEIGHT,mine,
timeText,countText
Initialize(),
diversion1(),
diversion3(),
isDoubleClicked(),
sweepMine(),
gameOver(),
gameWin(),
restartGame()
图 5-1 类图
帮助对话框类
MS_HelpDialog
helpText
设置对话框类
MS_HelpDialog
rowText,colText,
mineText
Initialize(),
enter()
5
5.3. 类图
见图 5-1 类图。
5.4. 程序流程图
1
开始
初始化
鼠标消息
左键
右键
单击格子
单击数字
diversion3()
diversion1()
格子是否为空
否
sweepMine()
是否双击
否
是
是
isDoubleClicked()
1
1
traverse()
胜利
失败
gameWin()
gameOver()
是否重新开始
是
退出
图 5-2 程序流程图
6