扫雷规格说明文档_第1页
扫雷规格说明文档_第2页
扫雷规格说明文档_第3页
扫雷规格说明文档_第4页
扫雷规格说明文档_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

扫雷规格说明1绪论1.1背景说明1.2系统概述2可行性研究报告3需求规格说明书4总体设计说明书5详细设计说明书6系统实现6.1开发环境6.2关键技术6.3运行结果7测试分析报告8心得体会参考文献1.绪论1.1背景说明:软件名称:扫雷用户:所有扫雷游戏爱好者1.2系统概述1.2.1扫雷游戏的基本要求扫雷游戏分为初级、中级和高级三个级别。单击游戏菜单可以选择“初级”、“中级”和“高级”。选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击“开始”便启动计时器。用户要揭开某个方块,可左键单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。(5)当用户点中雷时,将有“你输了”的提示出现,胜利时,将有“你赢了”的提示出现。1.2.2需实现的主要功能用户可以自定义级别并且可以任意输入雷数;具有计时功能,即显示用户完成移动盘子所花费的时间。2可行性研究报告2.1技术可行性分析本程序是java平台下的windows应用程序,总体规模较小适合个人单独完成。开发人员是和软件专业相关的学生,有软件开发方面的基础,有能力完成该程序的设计及开发工作。2.2时间和资源可行性分析本程序按预定计划进行,有足够的时间完成预算中的人员可全天候的进行软件开发工作按照课程设计时间及安排,计划如下:课程设计之前:查阅资料,确定题目;搜集资料,调研分析。系统分析与设计。系统实现/测试。整理文档,成果验收,提交设计报告。所以有充分的时间进行软件开发工作,所以硬件方面的资源可得到满足。2.3软件要实现的功能及可行性详情见需求分析3需求规格说明书3.1需求分析3.1.1功能需求:功能简介随机布雷可以由电脑进行随机布雷自定义雷的数量可以由用户自定义雷的数量计时有计时装置,可以自开始扫雷后自动记时难度级别选项各个级别的难度对应雷的数量的不同游戏结束提示在游戏结束时会出现提示对话框,并停止计时自定义雷的数量界面自定义雷的数量界面程序主界面程序运行的主界面3.1.2运行环境需求:基于J2SE平台的SDK1.6版本jdk1.6.0_31的java程序开发环境3.2硬件需求:处理器型号:奔腾III及同等型号以上处理器内存容量:512MB以上内存(可运行数据库管理系统)外存容量:5G以上硬盘空间联机或脱机:脱机e-输入及输出设备的型号和数量:鼠标、彩色显示器3.3软件需求:编译程序:jdk1.6.0_313.4控制需求:使用全鼠标控制4总体设计说明书在设计扫雷游戏时,需要编写9个Java源文件:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.Java、ShowRecord.java、voiceShow.java、userDefine.java、ruleShow

扫雷游戏除了需要编写上述java源文件所给出的类外,还需要Java系统提供的一些重要的类,如File、JButton、和Jlabel等类。扫雷游戏所用到的一些重要的类以及之间的组合关系如下图所示:5详细设计说明书5.1MineGame类UML类图MineGame类是javax.swing包中Jframe的一人子类,并实现了ActionListener接中,标明该类的主要成员变量和方法的UML图如下图所示:以下是UML图中有关数据和方法的详细说明。成员变量-bar和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级”“中级”“高级”“自定义”“背景声音”“退出”“游戏规则”等-MineArea是扫雷区域,提供有关扫雷的主要功能。userdefine负责用户自定义功能-VoiceShow负责背景音乐功能ruleshow负责显示游戏规则功能2)MineGame()是构造方法,负责完成窗口的主要功能•actionPerformedCActionEvent)方法是MineGame类实现的ActionLister接口中的方法,该方法负责执行菜单发出的有关命令。用户选择菜单项可以触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作,例如将mineAreaw创建的雷区设置为初级,中级,高级等。Main(String[])方法是程序的入口方法MineArea5.2.1效果图:UML图MineArea类是javax.swing包中JPanel容器的子类,实现了ActionListener和MouserListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如下所示:以下是UML图中有关数据和方法的详细说明。成员变量-Block是Block类型的数组,用来确定雷区有多少需进行扫雷的方块。blockView是Blockview类型的数组,负责为block数组中的Block对象提供视图。-Lay是LayMines类型的对象,负责设置block数组中的哪些方块是雷或不是雷。reStart是一个按钮对象,用户单击它重新开始游戏。time是计时器对象,负责计算用户的用时。方法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对话框可见。所谓扫雷成功是指不仅找到了全部的雷而且用时最少。Block类效果图Block对象负责封装雷区中方块中的数据以及对这些数据的操作,外观效果由Blockview负责提供(见后面的BlockView)。5.3.2UML图Block类创建的对象是数组block的单元的对象°Block型数组block是MineArea类的重要成员之一。标明Block类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如下图所示:Block *MiueAreaname:String ' isMine:booleanaroundMineNumber:int l isMark: booleanmineicon:Imageicon 1 isOpen: booleansetArouridXIineNuinber(int):voidgetAroundMineNumber^:intblock:BLock[][]以下是UML图中有关数据的方法的详细说明。成员变量,name是方块上的名字。aroundMineNumber是方块周围雷的数目。mineicon是方块上雷的图标。sMine用来表示方块是否是雷。isMark用来表示方块是否被标记。isOpen用来表示方块是否被挖开。方法setAroundMineNumber(int)方法用来设置aroundMineNumber的值。getAroundMineNumber()方法用来获取aroundMineNumber的值。BlockView类5.4.1效果图BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。BlockView对象使用一个标签和按钮为Block对象提供视图,标签和按钮按着卡片布局层叠在一起,默认状态按钮遮挡住标签。当用户单击按钮后,如果Block对象时雷,BlockView对象中的标签显示的事雷的图标;如果Block对象不是雷,标签显示的是周围雷的总数。效果如下图所示:UML图BlockView类是javax。swing包中JPanel类的一个子类,创建的对象是数组blockView的单元中的对象。BlockView型数组BlockView是MineArea类的重要成员之一。标明BlockView类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如下图所示:以下是UML图中有关数据的方法的详细说明。1) 成员变量blockNameOrlcon用来显示Block对象的name,number和mineicon属性。blockCover用来遮挡blockNameOrlcon。card卡片布局2) 方法,giveViewCBlockblock)方法给参数指定的Block对象提供视图,如果Block对象的isMine属性为true,即方块是雷,那么blockNameOrlcon标签上设置的文本就是Block对象的name属性的值,同时blockNameOrlcon标签上设置的图标就是Block对象的mineicon指定的图标。如果Block对象的isMine属性为false,blockNameOrlcon标签上设置的图标就是Block对象的aroundMineNumber属性的值,及周围雷的数目seeblockNameOricon()方法让用户看见视图中的标签,无法看见按钮。seeblockNameOricon(0方法让用户看见视图中的按钮,无法看见标签。LayMines类效果图LayMines对象使用随机算法制定MineArea对象中的哪些Block对象是雷,哪些对象不是雷,没有可现实的效果图。UML图LayMines创建的对象Lay是MineArea中的重要成员,表明该类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如下图:LayMiues ►MiueAreamineicon:ImagelGOD_kyMinesForBlock(Bluck[][]?int)lay:LayMiues以下是UML图中有关数据的方法的详细说明。1)成员变量mineicon用来存放一个格式为gif的图像。2)方法layMinesForBlock(Block[][],in)方法对参数指定的Block数组进行设置,其中int参数指定雷的数目,当指定Block数组中每个单元中的方块是雷时,就将该房快上的图标设置为mineicon,当指定Block数组中每个单元中的方块不是雷时,就将该方块的名字设置为周围的雷的数目。userDefine类5.6.1效果图UML图userDefine是java.awt包中Rame框架的子类,并实现了ActionListener接口。userDefine创建的对像:usedefine是MineArea类的成员之一,当用户点击菜单栏中的游戏->自定义时,弹出界面,在界面的文本框中输入相应的数字。然后单击确定即可,或者单击取消退出界面。标明userDefine类的主要成员变量、方法以及和MineArea类之间的组合itwyDefineacticiiiPeffbiiiied(ActJonrYent)iseT\isiljle(lKio:eani-:itwyDefineacticiiiPeffbiiiied(ActJonrYent)iseT\isiljle(lKio:eani-:void行敝.河雷就给教:Ubel说明L说明N说朗土说明hUUel行教「列敏1雷iT曲Fi州苔器1,目器2容器驰P1M1魂定黑消:如岫1[inttwrDffjnpActionLisfenerFrsnie以下是UML图中有关数据和方法的详细说明。成员变量•行数,列数,雷数,分数:分别用来显示行数,列数,雷数,分数•行数1,列数1,雷数1,分数1:用来自定义雷区的长度值,宽度值,所有的雷数值以及每赢一局所得的分数•说明1,说明2说明3,说明4:用来说明上述内容•容器1,容器2,容器3:用来装Label和TextFiled,以方便布局•确定,取消;单击“确定”后,如果输入的内容合法,就会实现自定义的雷区,如果不合法的话,就会弹出一个警告框,提示输入有误;单击“取消”退出自定义窗口。方法actionPerformrd(ActonEvent)方法是userDefine类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,将用户输入的信息传入程序,实验自定义雷区的难度级别。当用户单击界面的“取消”,该方法被执行,所执行的操作就是,退出用户自定义界面。ruleShow类5.7.1效果图

UML图ruleShow是javax.swing包中JRame框架的子类,并实现了ActionListener接口。ruleShow创建的对像:ruleshow是MineArea类的成员之一,当用户点击菜单栏中的帮助->游戏规则时,弹出界面,说明游戏MineArea类之间的组合关系的UML图如下图所示:以下是UML图中有关数据和方法的详细说明。1)成员变量-la1:用来显示扫雷游戏的规则如下-la2,la2 ;用来显示下面几条游戏规则•Con1,Con2,Con3;用来装la1,la2以实现在JFrame中布局;-bu1;用记单击bu1,关闭窗口;2)方法actionPerformrd(ActonEvent)方法是ruleShow类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,并关闭界面。6系统实现6.1开发环境:本系统的设计采用的是java语言开发6.2关键技术:在Windows操作系统支持下,jdk1.6.0_316.3运行结果6.3.1初始界面6.3.2单击游戏->自定义->确定II°IIx57重新开始36II°IIx57重新开始36自定认界面自定义游戏难度6.3.4单击帮助->游戏规则7测试分析报告程序调试是指对程序的查错和排错。为了便于查错、阅读,在设计该程序的过程中我们采用了结构化程序方法编辑,添加了尽可能多的注释,这就为接下来的调试过程带来了很多方便。经过仔细检查之后进行上机调试。进行编译,如果在编译(javac命令)和连接(java命令)过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译……如此反复,直到顺利通过编译和连接为止。在本次实习过程中碰到的编译、连接的错误主要有:缺少变量定义,定义位置不正确、语法错误、注释的位置,粗心少写大括号等。错误解决方法:(1)缺少变量定义,定义位置不正确;由于该程序相对来讲稍有些长,前后有些变量不容易联系起来,但是在错误信息的提示下一般还是很容易找到。不过需要注意的是在定义的时候有些方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论