软件体系结构课程之扫雷游戏_第1页
软件体系结构课程之扫雷游戏_第2页
软件体系结构课程之扫雷游戏_第3页
软件体系结构课程之扫雷游戏_第4页
软件体系结构课程之扫雷游戏_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、扫雷游戏开发成员: 代 禄 礼 学 号: 4007428 开发时刻: 2010-7-5 目录0、引言.1、工作打算.2 1.1、要紧工作时期划分.2 1.2、各时期工作任务分解.2、需求分析.2 2.1、概述.2 .2、用户分析.3 3、约束条件.3 .4、功能需求.3 25、用户界面需求.4、设计与实现.5 31、概述.5 3.2、体系结构.53、要紧程序文件.11 34、开发坏境以及部署环境要求.14、测试坏境.1 4.、概述.13 4.、测试坏境.13 43、测试打算.13 44、测试项目.145、工作总结.17 .、工作成果.17 .2、过程分析.7 5.3、经验教训及其分析.180引

2、言 扫雷游戏是一直以来比较流行的趣味性游戏之一,其开发过程有一定的技巧和方法,其中涉及到软中断、二维数组、鼠标操作以及图形化函数等方面的知识,本游戏的开发者需要掌握部分图形函数的使用,二维数组以及结构体的定义,专门多操作系统都会带有这款游戏,它既能锻炼思维的严密性,又有专门大的乐趣,我个人也比较喜爱这款游戏,因此,我就借那个机会将这款游戏用+语言将它实现。1 工作打算1.1要紧工作时期划分此项目所有的工作均由代禄礼一人完成。12各时期工作任务分解时期名称任务名称任务描述负责人协助人 需求分析确定要实现那些功能确定不做什么,做什么,以及要实现那些功能代禄礼代禄礼结构设计对差不多确定的功能进行设计

3、对差不多确定的功能进行设计代禄礼代禄礼程序设计对结构设计用代码的形式体现出来用代码将差不多确定的设计用代码来体现代禄礼代禄礼测试测试测试看项目中有没有错误代禄礼代禄礼2需求分析.1概述 此项目的要紧任务是开发一款趣味性游戏扫雷。该项目是用C+语言来实现的。首先建立一个名为Mine的项目工程,再依照所要求的进行设计。要求要实现专门多功能,自定义雷区、扫雷英雄榜和胜利后的提示,要紧是图形设计也确实是窗口绘制、菜单设计和算法。在那个项目中最关键的也确实是如何猎取某个小方块区域相邻个区域的雷个数,如何猎取某个小方块区域相邻8个区域的已标志状态数。.2用户分析关于用户来讲,最要紧的确实是提高软件质量,不

4、能出现太明显的错误,再者确实是人机界面的设计,因为每个人都喜爱漂亮的界面,因此界面应该是突出点。23 约束条件、开发者角度:关于开发者来讲开发项目的时刻,人员等因素可能会导致项目的失败。2、用户的角度:要紧确实是需求的确定,最难的确实是用户不明白该实现什么,什么才是自己所需要的。功能需求1、系统模块设计本程序包括初始化模块、画图模块和功能操纵模块设计。 2、所要实现的功能如图所示:该项目要紧实现以上功能,自定义雷区、游戏关心、选择游戏级不。.5用户界面需求用户界面是用户使用该软件是展现在面前的操作窗口。首先最起码要操作简单,不管明白不计机知识都能够使用,其次确实是美观。如上图所示:游戏窗口简单

5、,容易操作,功能齐全。3设计与实现3.1概述我觉得在扫雷游戏中只有两个突出点,也能够讲是两个关键点,第一,确实是绘图,也确实是图形设计,第二,算法。绘图要紧分五个点。绘制笑脸按钮、绘制数字、绘制外壳、绘制雷区、绘制按下扫雷后的数字和重新绘制雷区域的某个小方块。绘制图形所对应的函数:绘制笑脸按钮:voi CieW::DrwBtton(CPint &dc)绘制数字:void CMied:Dmber(CPintD &dc)绘制外壳:void CMineWnd:DrawShell(CPintD &dc)绘制雷区:void CMineWd::DrawineArea(CPntDC&dc)绘制按下扫雷后的数

6、字:vod CMineWnd:Dawwnum(INEWN* mine, NTnm)重新绘制雷区域的某个小方块:d CMnWnd:DrwSecialMne(IT row,INT) 2、猎取某个小方块区域相邻8个区域的雷个数和猎取某个小方块区域相邻8个区域的已标志状态数。3.2体系结构、类图分析上图确实是该项目所有类之间的关系,用户直接和扫雷英雄榜、自定义雷区、游戏级不、过关提示相关联。因为游戏级不分为初级、中级和高级,扫雷英雄榜也分为初级、中级、高级,分不记录信息,每个用户能够直接查看扫雷英雄榜的记录,然而假如用户胜利过关后能够把自己的信息输入系统会自动保存。序列图(1)、自定义雷区:当用户打开

7、游戏界面时就会看到“游戏”那个按钮,点击选择自定义雷区就能够了。用户发送请求,当系统受到请求后会弹出一个对话框,用户能够输入所需要的信息,确定就能够输出一个新的游戏界面。(2)、扫雷英雄榜用户发送请求给系统,当系统受到请求之后就会弹出扫雷英雄榜的对话框,当用户胜利过关后输入自己的信息,系统会自动保存。(3)、选择游戏级不用户发送请求给游戏菜单,收到请求后系统会自动弹出游戏选择对话框,用户能够按照自己的需要进行选择。(4)、游戏关心用户发送请求给系统,系统接收到用户的请求后会弹出游戏关心的所有内容。状态图(1)、自定义雷区(2)、扫雷英雄榜(3)、选择游戏级不()、游戏关心3.要紧程序文件3.3

8、.1、在此程序中定义了以下几个类:1、创建窗口类类Me2、游戏主窗口类MinWnd 3、自定义雷区类DlCuso 4、扫雷英雄榜类DlgHro 、声音处理类und6、辅助工具类Hel3.3.2、数据结构设计 结构体定义:typedestrct INT uRow; /所在雷区二维数组的行UNTuCol; /所在雷区二位数组的列UINT uState; /当前状态UIT uArib; /方块属性N uldState; /历史状态 MINEWN;/ 雷方块结构体3.3.3、函数功能描述1、CinWd:SaeConfi()功能是保存所猎取的信息。 、CinWnd:Initm()功能为游戏的初始化。、C

9、Mend:Laies(UIN ow, UINT col)要紧用来布雷。4、CMineWnd:GeArounum(NTro, UINT col)猎取某个小方块区域相邻8个区域的雷个数 5、MieWnd::etroudFlags(UINT ro, UINT col)猎取某个小方块区域相邻8个区域的已标志状态数 6、CMineWnd:IsMe(UINT ro, UNT col)推断是否为雷 7、MineWnd::IsIMineArea(UT r, UT cl)推断是否在雷区域 8、CMinWnd::Dead(UNT rw,UNT col)失败处理 、CMineWnd:Vctory()胜利推断并处理

10、0、CnWnd:OpenArou(UIT row, UT ol)展开拓展周围8个方向 11、CMed:DawBto(PintDC &dc)绘制笑脸按钮图1、MnWnd:Drawumber(CaintDC&dc)绘制数字13、CMineWnd:rwShell(PaintC &c)绘制外壳 14、CMineWnd:DrawineAe(CPaiC &c)绘制雷区 5、CineWn:DrawSeclne(ITrw, INcl)重新绘制雷区域的某个方块 3.3.4、代码实现、程序预处理 程序预处理部分包括加载头文件、定义全局变量和定义数据结构,并对它们进行初始化工作。其中加载头文件的代码如下: #inc

11、ude stdafx.h #iclue Mine.h #inud MiWnh #includ MDes.h nclue Mmsy.h #nclue DlgNeRecd. nclude DlgHer #includ DlgCustom.h 2、画图模块 该模块要紧用于画图操作,包括绘制笑脸按钮、外壳、绘制雷区、绘制数字、绘制按下扫雷按钮后的数字和重新绘制雷区域的某个小方块等。该模块要紧包括以下几个函数: voi CMineWn:DaBo(CPaintC &dc)绘制笑脸按钮oid CMnWn::DraNumber(CPaintDC&)绘制数字void CMineWnd:DawShel(CPint

12、C &dc)绘制外壳 oid CMinWn:DrawMineAe(CPaiDC &c)绘制雷区 void CMinWd:DrawDwnum(MINND* n,NT num)绘制按下扫雷后的数字 void Mind:DrwScialMine(UINT row, INT l)重新绘制雷区域的某个方块 初始化模块包括初始化地图和位图的初始化位图的初始化代码;od MnWnd::ntame()/位图的初始化aditap();m_nLavNum m_Minm;m_uSpedTme = 0;m_uBtnSta = BUTTON_NORMA;m_uGmSate =GSAIT;if (m_me) ilTmr(

13、IDTIER_EVEN);m_uTime=0;mpNewine =NULL;m_pOMi NLL;初始化地图代码:FreMes();/初始化地图for(UI i =; imuYNum; i+) fo (UIN = 0; m_uXNum; +)_pMnij.uRow = ;_pMsij.uCl j;mMieij.uSatSTAT_NORMAL;mMesij.uAttib TTRIB_EMY;m_pMesi.uOldStat = TAT_NOMA;3.4开发环境以及部署环境要求开发坏境:V+6.0Wdowxp运行环境:ndows xp4 测试环境.1概述 测试是软件开发所不可少的重要部分,因为只有

14、测试后才能明白软件能不能正常运行,是否达到了预期的效果,是否能实现所有的功能,在此我要紧测试有没有逻辑错误,要紧是对代码进行测试。看是否和结构设计时期的要求一样,是否实现了需求时期所确定的各功能。4.测试环境操作系统:Winos200以上,内存:18以上;硬盘:至少5G以上;计算机必须装有VC+60 43测试打算 要紧分无个时期进行测设。测试游戏主窗口是否与预期的一样。在程序中所用到的算法是否得当。用户是否能够自定义雷区。当用户过关时是否能弹出对话框“恭喜你过关”等字样。测试是否有扫雷英雄榜.4.4测试项目1、测试游戏主窗口是否达到了预期的效果。通过运行得到的扫雷游戏界面为,由此可见,与在结构

15、设计当中所预期的完全一样。、猎取某个小方块区域相邻个区域的雷个数和猎取某个小方块区域相邻8个区域的已标志状态数是否正确。可见,算法是正确的。3、用户是要能够自定义雷区的。点击游戏按钮,在下拉菜单中选择自定义,打开对话框,输入所需要的高度和宽度还有雷数。点击确定按钮后显示为当玩家过关后会显示如下对话框,5、用户必须要看到扫雷英雄榜,因为它记录着往常玩家玩的时候所得分数的信息。5、工作总结51工作成果通过了两三周的努力,终于完成了该项目,结果令我专门中意,跟我当初所预想的差不多上一样,这确实是扫雷游戏的主窗口。5.2过程分析因为该项目是我一个人完成的,因此对专门多东西都比较熟悉,首先当拿到那个项目

16、的时候就开始做预备,把所有在此次项目中遇到的东西都复习了一遍,我感受最难的确实是需求分析的确定,因为往常对扫雷那个游戏没如何接触过,也不明白算法是什么,也不知该如何确定要实现那些功能,当我看到Wws系统自带的扫雷游戏后终于明白了要实现那些要紧的功能。第一时期:要紧确定要该项目要实现哪些功能,确定那些功能能够实现,那些则不可能实现。第二时期:结构设计,也确实是用什么模式、什么算法来实现,确定要做哪些,不做那些。程序设计,也确实是编码设计,在现在期要紧是进行编码设计,通过用语言将所确定的所有功能用代码的形式体现出来。测试,我认为那个工作时期是专门重要的,因此我采取边写代码边测试,最后完成编码设计后

17、再来个总测设,如此就可不能出太大的问题,假如最后测试,如何出现错误将会专门难发觉错误出在哪个地点。53经验教训及其分析进过了两三周的时刻扫雷游戏终于完成了,在这次开发过程中遇到了专门多困难,因为是一个人一组,而且时刻不够,人员较少,能力的限制致使项目不是专门完美,通过这次课程设计我学到了专门多,获益颇多。通过本次课程设计,掌握了什么是UM,软件项目开发的差不多过程及其各时期的差不多任务,熟悉了UL程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为专门深奥的书本知识变的更为简单,对实验原理有更深的理解。通过该课程设计,全面系统的理解了软件的一般原理和差不

温馨提示

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

评论

0/150

提交评论