软件体系结构课程之扫雷游戏Word文件下载.docx

上传人:b****2 文档编号:5591831 上传时间:2023-05-05 格式:DOCX 页数:22 大小:201.01KB
下载 相关 举报
软件体系结构课程之扫雷游戏Word文件下载.docx_第1页
第1页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第2页
第2页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第3页
第3页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第4页
第4页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第5页
第5页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第6页
第6页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第7页
第7页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第8页
第8页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第9页
第9页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第10页
第10页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第11页
第11页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第12页
第12页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第13页
第13页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第14页
第14页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第15页
第15页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第16页
第16页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第17页
第17页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第18页
第18页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第19页
第19页 / 共22页
软件体系结构课程之扫雷游戏Word文件下载.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件体系结构课程之扫雷游戏Word文件下载.docx

《软件体系结构课程之扫雷游戏Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件体系结构课程之扫雷游戏Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。

软件体系结构课程之扫雷游戏Word文件下载.docx

4.3、测试计划...........................................................................................................13

4.4、测试项目...........................................................................................................14

5、工作总结....................................................................................................................17

5.1、工作成果.............................................................................................................17

5.2、过程分析............................................................................................................17

5.3、经验教训及其分析.............................................................................................18

0引言

扫雷游戏是一直以来比较流行的趣味性游戏之一,其开发过程有一定的技巧和方法,其中涉及到软中断、二维数组、鼠标操作以及图形化函数等方面的知识,本游戏的开发者需要掌握部分图形函数的使用,二维数组以及结构体的定义,很多操作系统都会带有这款游戏,它既能锻炼思维的严密性,又有很大的乐趣,我个人也比较喜欢这款游戏,因此,我就借这个机会将这款游戏用C++语言将它实现。

1工作计划

1.1主要工作阶段划分

此项目所有的工作均由代禄礼一人完成。

1.2各阶段工作任务分解

阶段名称

任务名称

任务描述

负责人

协助人

需求分析

确定要实现那些功能

确定不做什么,做什么,以及要实现那些功能

代禄礼

结构设计

对已经确定的功能进行设计

程序设计

对结构设计用代码的形式体现出来

用C++代码将已经确定的设计用代码来体现

测试

测试看项目中有没有错误

2需求分析

2.1概述

此项目的主要任务是开发一款趣味性游戏——扫雷。

该项目是用C++语言来实现的。

首先建立一个名为Mine的项目工程,再根据所要求的进行设计。

要求要实现很多功能,自定义雷区、扫雷英雄榜和胜利后的提示,主要是图形设计也就是窗口绘制、菜单设计和算法。

在这个项目中最关键的也就是如何获取某个小方块区域相邻8个区域的雷个数,如何获取某个小方块区域相邻8个区域的已标志状态数。

2.2用户分析

对于用户来讲,最主要的就是提高软件质量,不能出现太明显的错误,再者就是人机界面的设计,因为每个人都喜欢漂亮的界面,所以界面应该是突出点。

2.3约束条件

1、开发者角度:

对于开发者来说开发项目的时间,人员等因素可能会导致项目的失败。

2、用户的角度:

主要就是需求的确定,最难的就是用户不知道该实现什么,什么才是自己所需要的。

2.4功能需求

1、系统模块设计

本程序包括初始化模块、画图模块和功能控制模块设计。

2、所要实现的功能

如图所示:

该项目主要实现以上功能,自定义雷区、游戏帮助、选择游戏级别。

2.5用户界面需求

用户界面是用户使用该软件是展现在面前的操作窗口。

首先最起码要操作简单,不管懂不计机知识都能够使用,其次就是美观。

如上图所示:

游戏窗口简单,容易操作,功能齐全。

3设计与实现

3.1概述

我觉得在扫雷游戏中只有两个突出点,也可以说是两个关键点,第一,就是绘图,也就是图形设计,第二,算法。

1、绘图主要分五个点。

绘制笑脸按钮、绘制数字、绘制外壳、绘制雷区、绘制按下扫雷后的数字和重新绘制雷区域的某个小方块。

绘制图形所对应的函数:

绘制笑脸按钮:

voidCMineWnd:

:

DrawButton(CPaintDC&

dc)

绘制数字:

DrawNumber(CPaintDC&

绘制外壳:

DrawShell(CPaintDC&

绘制雷区:

DrawMineArea(CPaintDC&

绘制按下扫雷后的数字:

DrawDownNum(MINEWND*mine,UINTnum)

重新绘制雷区域的某个小方块:

DrawSpecialMine(UINTrow,UINTcol)

2、获取某个小方块区域相邻8个区域的雷个数和获取某个小方块区域相邻8个区域的已标志状态数。

3.2体系结构

1、类图分析

上图就是该项目所有类之间的关系,用户直接和扫雷英雄榜、自定义雷区、游戏级别、过关提示相关联。

因为游戏级别分为初级、中级和高级,扫雷英雄榜也分为初级、中级、高级,分别记录信息,每个用户可以直接查看扫雷英雄榜的记录,但是如果用户胜利过关后可以把自己的信息输入系统会自动保存。

2、序列图

(1)、自定义雷区:

当用户打开游戏界面时就会看到“游戏”这个按钮,点击选择自定义雷区就可以了。

用户发送请求,当系统受到请求后会弹出一个对话框,用户可以输入所需要的信息,确定就可以输出一个新的游戏界面。

(2)、扫雷英雄榜

用户发送请求给系统,当系统受到请求之后就会弹出扫雷英雄榜的对话框,当用户胜利过关后输入自己的信息,系统会自动保存。

(3)、选择游戏级别

用户发送请求给游戏菜单,收到请求后系统会自动弹出游戏选择对话框,用户可以按照自己的需要进行选择。

(4)、游戏帮助

用户发送请求给系统,系统接收到用户的请求后会弹出游戏帮助的所有内容。

3、状态图

(1)、自定义雷区

3.3主要程序文件

3.3.1、在此程序中定义了以下几个类:

1、创建窗口类类——Mine

2、游戏主窗口类——MineWnd

3、自定义雷区类——DlgCustom

4、扫雷英雄榜类——DlgHero

5、声音处理类——Sound

6、辅助工具类——Help

3.3.2、数据结构设计

结构体定义:

typedefstruct

{

UINTuRow;

//所在雷区二维数组的行

UINTuCol;

//所在雷区二位数组的列

UINTuState;

//当前状态

UINTuAttrib;

//方块属性

UINTuOldState;

//历史状态

}MINEWND;

//雷方块结构体

3.3.3、函数功能描述

1、CMineWnd:

SaveConfig()功能是保存所获取的信息。

2、CMineWnd:

InitGame()功能为游戏的初始化。

3、CMineWnd:

LayMines(UINTrow,UINTcol)主要用来布雷。

4、CMineWnd:

GetAroundNum(UINTrow,UINTcol)获取某个小方块区域相邻8个区域的雷个数

5、CMineWnd:

GetAroundFlags(UINTrow,UINTcol)获取某个小方块区域相邻8个区域的已标志状态数

6、CMineWnd:

IsMine(UINTrow,UINTcol)判断是否为雷

7、CMineWnd:

IsInMineArea(UINTrow,UINTcol)判断是否在雷区域

8、CMineWnd:

Dead(UINTrow,UINTcol)失败处理

9、CMineWnd:

Victory()胜利判断并处理

10、CMineWnd:

OpenAround(UINTrow,UINTcol)展开拓展周围8个方向

11、CMineWnd:

dc)绘制笑脸按钮图

12、CMineWnd:

dc)绘制数字

13、CMineWnd:

dc)绘制外壳

14、CMineWnd:

dc)绘制雷区

15、CMineWnd:

DrawSpecialMine(UINTrow,UINTcol)重新绘制雷区域的某个方块

3.3.4、代码实现

1、程序预处理

程序预处理部分包括加载头文件、定义全局变量和定义数据结构,并对它们进行初始化工作。

其中加载头文件的代码如下:

#include"

stdafx.h"

Mine.h"

MineWnd.h"

MineDefs.h"

Mmsystem.h"

DlgNewRecord.h"

DlgHero.h"

DlgCustom.h"

2、画图模块

该模块主要用于画图操作,包括绘制笑脸按钮、外壳、绘制雷区、绘制数字、绘制按下扫雷按钮后的数字和重新绘制雷区域的某个小方块等。

该模块主要包括以下几个函数:

dc)绘制笑脸按钮

DrawDownNum(MINEWND*mine,UINTnum)绘制按下扫雷后的数字

3、初始化模块

包括初始化地图和位图的初始化

位图的初始化代码;

InitGame()

//位图的初始化

LoadBitmap();

m_nLeaveNum=m_uMineNum;

m_uSpendTime=0;

m_uBtnState=BUTTON_NORMAL;

m_uGameState=GS_WAIT;

if(m_uTimer)

{

KillTimer(ID_TIMER_EVENT);

m_uTimer=0;

}

m_pNewMine=NULL;

m_pOldMine=NULL;

初始化地图代码:

FreeMines();

//初始化地图

for(UINTi=0;

i<

m_uYNum;

i++)

for(UINTj=0;

j<

m_uXNum;

j++)

{

m_pMines[i][j].uRow=i;

m_pMines[i][j].uCol=j;

m_pMines[i][j].uState=STATE_NORMAL;

m_pMines[i][j].uAttrib=ATTRIB_EMPTY;

m_pMines[i][j].uOldState=STATE_NORMAL;

}

3.4开发环境以及部署环境要求

开发坏境:

VC++6.0+Windowxp

运行环境:

Windowsxp

4测试环境

4.1概述

测试是软件开发所不可少的重要部分,因为只有测试后才能知道软件能不能正常运行,是否达到了预期的效果,是否能实现所有的功能,在此我主要测试有没有逻辑错误,主要是对代码进行测试。

看是否和结构设计阶段的要求一样,是否实现了需求阶段所确定的各功能。

4.2测试环境

操作系统:

Windows2000以上,

内存:

128M以上;

硬盘:

至少5G以上;

计算机必须装有VC++6.0

4.3测试计划

主要分无个阶段进行测设。

1、测试游戏主窗口是否与预期的一样。

2、在程序中所用到的算法是否得当。

3、用户是否能够自定义雷区。

4、当用户过关时是否能弹出对话框“恭喜你过关”等字样。

5、测试是否有扫雷英雄榜.

4.4测试项目

1、测试游戏主窗口是否达到了预期的效果。

经过运行得到的扫雷游戏界面为

,由此可见,与在结构设计当中所预期的完全一样。

2、获取某个小方块区域相邻8个区域的雷个数和获取某个小方块区域相邻8个区域的已标志状态数是否正确。

可见,算法是正确的。

3、用户是要能够自定义雷区的。

点击游戏按钮,在下拉菜单中选择自定义,

打开对话框,输入所需要的高度和宽度还有雷数。

点击确定按钮后显示为

4、当玩家过关后会显示如下对话框,

5、用户必须要看到扫雷英雄榜,因为它记录着以前玩家玩的时候所得分数的信息。

5、工作总结

5.1工作成果

经过了两三周的努力,终于完成了该项目,结果令我很满意,跟我当初所预想的基本上一样,这就是扫雷游戏的主窗口。

5.2过程分析

因为该项目是我一个人完成的,所以对很多东西都比较熟悉,首先当拿到这个项目的时候就开始做准备,把所有在此次项目中遇到的东西都复习了一遍,我感觉最难的就是需求分析的确定,因为以前对扫雷这个游戏没怎么接触过,也不知道算法是什么,也不知该如何确定要实现那些功能,当我看到Windows系统自带的扫雷游戏后终于明白了要实现那些主要的功能。

1、第一阶段:

主要确定要该项目要实现哪些功能,确定那些功能可以实现,那些则不可能实现。

2、第二阶段:

结构设计,也就是用什么模式、什么算法来实现,确定要做哪些,不做那些。

3、程序设计,也就是编码设计,在此阶段主要是进行编码设计,通过用C++语言将所确定的所有功能用代码的形式体现出来。

4、测试,我认为这个工作阶段是很重要的,所以我采取边写代码边测试,最后完成编码设计后再来个总测设,这样就不会出太大的问题,如果最后测试,如何出现错误将会很难发现错误出在哪个地方。

5.3经验教训及其分析

进过了两三周的时间扫雷游戏终于完成了,在这次开发过程中遇到了很多困难,因为是一个人一组,而且时间不够,人员较少,能力的限制致使项目不是很完美,通过这次课程设计我学到了很多,获益颇多。

1、通过本次课程设计,掌握了什么是UML,软件项目开发的基本过程及其各阶段的基本任务,熟悉了UML程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。

通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。

2、通过该课程设计,全面系统的理解了软件的一般原理和基本实现方法。

把死板的课本知识变得生动有趣,激发了学习的积极性。

把学过的UML系统建模的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。

以前对与计算机软件的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了软件是如何处开发的,对系统建模的认识更加深刻。

课程设计中程序比较复杂,在调试时应该仔细,在这次课程设计中,真正认识到了软件开发的精髓。

3、通过本次课程设计了解了如何把所学过的知识统一的结合起来,主要是数据库的设计、UML系统建模、软件工程的充分利用。

为自己以后开发项目奠定了一定的基础和工作经验。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2