扫雷小游戏课程设计.docx
- 文档编号:3154434
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:17
- 大小:327.71KB
扫雷小游戏课程设计.docx
《扫雷小游戏课程设计.docx》由会员分享,可在线阅读,更多相关《扫雷小游戏课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
扫雷小游戏课程设计
科技大学
软件工程课程设计报告
题目:
扫雷游戏开发
班级:
计科0901班
学号:
xxxxxxxxxxxx
:
xxxxxxx
:
xxxxxxxxxxxxx
2012年7月
1绪论……………………………………………………………………3
1.1选题目的与意义……………………………………………………3
1.2系统概述……………………………………………………………3
2可行性研究报告………………………………………………………4
3需求规格说明书………………………………………………………5
4总体设计说明书………………………………………………………6
5详细设计说明书………………………………………………………7
6系统实现………………………………………………………………16
6.1开发环境……………………………………………………………16
6.2关键技术……………………………………………………………16
6.3运行结果……………………………………………………………16
7测试分析报告……………………………………………………………17
8心得体会…………………………………………………………………19
参考文献
随着现在生活节奏的加快,人们在工作学习之余需要一个轻松娱乐的放松环境。
因此我编写此软件的目的,一方面作为初学者来了解java环境下的小程序开发,另一方面使用户能在娱乐休闲的同时拓展思维能力。
扫雷是单人计算机游戏。
游戏的用户界面由小方格组成的战场构成。
当游戏开始时,计算机将固定的地雷数随机的放到战场的方格。
此游戏还允许玩家指定战场中的地雷数。
参考Windows操作系统提供的扫雷游戏,改良扫雷游戏程序,增加以下功能:
在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规如此和制作人员两个菜单项。
背景说明:
a.软件名称:
扫雷
b.用户:
所有扫雷游戏爱好者
1.2系统概述
Windows2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。
具体要求如下:
(1)扫雷游戏分为初级、中级和高级三个级别。
单击游戏菜单可以选择“初级〞、“中级〞和“高级〞。
(2)选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击‘“开始〞便启动计时器。
(3)用户要揭开某个方块,可左键单击它。
假设所揭方块下有雷,用户便输了这一局,假设所揭方块下无雷,如此显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(4)如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(5)当用户点中雷时,将有“你输了〞的提示出现,胜利时,将有“你赢了〞的提示出现。
1.2.2需实现的主要功能
用户可以自定义级别并且可以任意输入雷数;
具有计时功能,即显示用户完成移动盘子所花费的时间。
2可行性研究报告
2.1技术可行性分析
本程序是java平台下的windows应用程序,总体规模较小适合个人单独完成。
开发人员是和软件专业相关的学生,有软件开发方面的根底,有能力完成该程序的设计与开发工作。
时间和资源可行性分析
〔1〕本程序按预定计划进展,有足够的时间完成
〔2〕预算中的人员可全天候的进展软件开发工作
〔3〕按照课程设计时间与安排,计划如下:
a.课程设计之前:
查阅资料,确定题目;
b.搜集资料,调研分析。
c.系统分析与设计。
d.系统实现/测试。
e.整理文档,成果验收,提交设计报告。
所以有充分的时间进展软件开发工作,所以硬件方面的资源可得到满足。
软件要实现的功能与可行性
详情见需求分析
3需求规格说明书
3.1.1功能需求:
功能
简介
随机布雷
可以由电脑进展随机布雷
自定义雷的数量
可以由用户自定义雷的数量
计时
有计时装置,可以自开始扫雷后自动记时
难度级别选项
各个级别的难度对应雷的数量的不同
游戏完毕提示
在游戏完毕时会出现提示对话框,并停止计时
自定义雷的数量界面
自定义雷的数量界面
程序主界面
程序运行的主界面
3.1.2运行环境需求:
的java程序开发环境
3.2硬件需求:
a.处理器型号:
奔腾III与同等型号以上处理器
b.存容量:
512MB以上存〔可运行数据库管理系统〕
c.外存容量:
5G以上硬盘空间
d.联机或脱机:
脱机
e.输入与输出设备的型号和数量:
鼠标、彩色显示器
3.3软件需求:
编译程序:
3.4控制需求:
使用全鼠标控制
4总体设计说明书
在设计扫雷游戏时,需要编写9个Java源文件:
MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.Java、ShowRecord.java、voiceShow.java、userDefine.java、ruleShow
扫雷游戏除了需要编写上述java源文件所给出的类外,还需要Java系统提供的一些重要的类,如File、utton、和Jlabel等类。
扫雷游戏所用到的一些重要的类以与之间的组合关系如如如下图所示:
图4-1类之间的组合关系
5详细设计说明书
5.1MineGame类
5.1.1UML类图
MineGame类是javax.swing包中Jframe的一人子类,并实现了ActionListener接中,标明该类的主要成员变量和方法的UML图如如如下图所示:
图5-1-1MineGame类的UML图
以下是UML图中有关数据和方法的详细说明。
1)成员变量
·bar和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级〞“中级〞“高级〞“自定义〞“背景声音〞“退出〞“游戏规如此〞等
·MineArea 是扫雷区域,提供有关扫雷的主要功能。
·userdefine负责用户自定义功能
·VoiceShow 负责背景音乐功能
·ruleshow负责显示游戏规如此功能
2〕
·MineGame()是构造方法,负责完成窗口的主要功能
·actionPerformed〔ActionEvent〕方法是MineGame类实现的ActionLister接口中的方法,该方法负责执行菜单发出的有关命令。
用户选择菜单项可以触发ActionEvent事件,导致actionPerformed〔ActionEvent〕方法执行相应的操作,例如将mineAreaw创建的雷区设置为初级,中级,高级等。
·Main〔String[]〕方法是程序的入口方法
5.2MineArea
5.2.1效果图:
图5-2-1MineArea创建的扫雷区域效果图
5.2.2UML图
MineArea类是javax.swing包中JPanel容器的子类,实现了ActionListener和MouserListener接口,所创建的对象:
mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。
标明MineArea类的主要成员变量、方法以与和MineGame类之间组合关系的UML图如下所示:
图5-2-2MineGame类之间组合关系的UML图
以下是UML图中有关数据和方法的详细说明。
1)成员变量
·Block是Block类型的数组,用来确定雷区有多少需进展扫雷的方块。
·blockView是Blockview类型的数组,负责为block数组中的Block对象提供视图。
·Lay是LayMines类型的对象,负责设置block数组中的哪些方块是雷或不是雷。
·reStart是一个按钮对象,用户单击它重新开始游戏。
·time是计时器对象,负责计算用户的用时。
2〕方法
·initMineArea〔int,int,int,int〕方法可根据参数提供的数据设置雷区的宽度,高度,雷的数目以与雷区的级别。
·actionPerformed〔ActionEvent〕是MIneArea类实现ActionListener接口中的方法。
当用户单击blockView中的某个方块时,actionPerformed〔ActionEvent〕方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,假设该方块下有雷,actionPerformed〔ActionEvent〕方法将使用户输掉本局,假设该方块下又雷,actionPerformed〔ActionEvent〕方法将显示BlockView对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的8个方块中总共有多少颗雷
·show〔〕方法是一个递归方法。
actionPerformed〔ActionEvent〕方法执行时将调用show方法进展扫雷。
·mousePress〔MouseEvent〕方法是MineArea类实现的MouseListener接口中的方法,当用户按下鼠标右键时,mousePress〔MouseEvent〕方法负责让方块上显示一个探雷标记。
·inquireWin〔〕方法用来判断用户是否扫雷成功,如果成功该方法负责让record对话框可见。
所谓扫雷成功是指不仅找到了全部的雷而且用时最少。
5.3Block类
Block对象负责封装雷区中方块中的数据以与对这些数据的操作,外观效果由Blockview负责提供〔见后面的BlockView〕。
5.3.2UML图
Block类创建的对象是数组block的单元的对象。
Block型数组block是MineArea类的重要成员之一。
标明Block类的主要成员变量和方法以与和MineArea类之间的组合关系的UML图如如如下图所示:
图5-3-1Block类的UML图
以下是UML图中有关数据的方法的详细说明。
1〕成员变量
·name是方块上的名字。
·aroundMineNumber是方块周围雷的数目。
·mineIcon是方块上雷的图标。
·sMine用来表示方块是否是雷。
·isMark用来表示方块是否被标记。
·isOpen用来表示方块是否被挖开。
2〕方法
·setAroundMineNumber〔int〕方法用来设置aroundMineNumber的值。
·getAroundMineNumber〔〕方法用来获取aroundMineNumber的值。
5.4BlockView类
BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。
BlockView对象使用一个标签和按钮为Block对象提供视图,标签和按钮按着卡片布局层叠在一起,默认状态按钮遮挡住标签。
当用户单击按钮后,如果Block对象时雷,BlockView对象中的标签显示的事雷的图标;如果Block对象不是雷,标签显示的是周围雷的总数。
效果如如如下图所示:
图5-4-1BlockView对象
5.4.2.UML图
BlockView类是javax。
swing包中JPanel类的一个子类,创建的对象是数组blockView的单元中的对象。
BlockView型数组BlockView是MineArea类的重要成员之一。
标明BlockView类的主要成员变量和方法以与和MineArea类之间的组合关系的UML图如如如下图所示:
图5-4-2Mi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扫雷 小游戏 课程设计