火影忍者俄罗斯方块》程序综合设计.docx
《火影忍者俄罗斯方块》程序综合设计.docx》由会员分享,可在线阅读,更多相关《火影忍者俄罗斯方块》程序综合设计.docx(16页珍藏版)》请在冰豆网上搜索。
火影忍者俄罗斯方块》程序综合设计
《火影忍者俄罗斯方块》
系统设计分析报告
目录
‘
一、简介……………………………….2
二、需求分析………………………….2
1.主要功能列表…………………………2
2.用例模型………………………………2
三、概要设计………………………….2
四、详细设计及编码………………….4
五、系统功能测试………………….…5
1.测试环境………………………………5
2.测试用例………………………………5
3.测试总结………………………………5
机器视觉团队班
专业班级:
姓名:
学号:
手机:
电子邮件:
‘
简介
俄罗斯方块(Tetris,俄文:
Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。
俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。
由于上手简单、老少皆宜,从而家喻户晓,风靡世界。
本程序用C和OPENCV结合面向对象的形式写出的游戏!
需求分析
1.主要功能列表
表1.主要功能列表
序号
功能名称
功能说明
用例图编号
1
W反转图形功能
W进行当前图形的顺时针反转
1
2
A图形左移功能
A进行当前图形的左移
1
3
消行功能
当方块在某一行满的时候就进行消行
2
4
音乐效果
当程序运行时调用音乐播放
3
5
暂停功能
暂停游戏
4
6
游戏功能介绍
游戏功能介绍
4
7
游戏退出功能
退出游戏
4
2.用例模型
1、W反转图形功能用例图
2、A图形左移功能用例图
图1.W反转图形功能和A图形左移功用例图
3、图形消行功能用例图
图2.W反转图形功能和A图形左移功用例图
4、音乐效果用例图
图3.W反转图形功能和A图形左移功用例图
5.游戏的暂停,游戏介绍,游戏退出功能图
图4.游戏暂停、介绍、退出功能例图
概要设计
根据需求共抽象出___3__个实体,每个实体的名称是__游戏主体____,__方块_____,___图形___。
。
。
实体间的关系。
根据实体共设计出___3__个类,类与实体的对应关系,如表所示。
表2.实体与类的对应表
序号
实体
类
1
游戏主体
_Cfungame
2
方块
_Cnaturo
3
图形(由4个方块构成的图形)
Ctux
类的关系图(如继承,聚合等),如下图所示
图3.类图
界面设计:
系统设计3个功能界面。
游戏开始界面:
运行界面:
图4.系统运行界面
游戏结束界面:
图5.游戏结束界面
详细设计及编码
系统共设计出____3_个类,每个类的成员变量及成员函数如表示。
___Cfungame_(游戏主体)_类成员变量,成员函数说明如表所示。
表3.Cfungame(游戏主体)类成员变量说明列表
序号
成员变量
成员变量说明
访问属性
1
IplImage*m_Gameover
游戏结束图片
public
2
Ctuxm_nexttux
在该类中调用图形类里的下一个图形
public
3
IplImage*m_items[7]
指针指向小块图案的数组(包含了7个图案,实际只用了5个图案)
public
4
IplImage*m_startImage
游戏开始图片
public
5
IplImage*m_functionImage
游戏功能介绍图片
public
6
Ctuxm_tux;
当前图形
public
7
IplImage*m_pShowImage;
显示图片
public
8
IplImage*m_pBackmage;
背景图片
public
表4.Cfungame(游戏主体)类成员函数说明列表
序号
成员函数
成员函数说明
访问属性
1
voidGameover();
显示游戏结束
public
2
voidDelete();
满行时消行
public
3
voidrundown();
向下运行是否产生新图判定
public
4
boolcanright();
右移函数
public
5
voidcreateNext();
创造下一个图形
public
6
voidstoreTeam();
存储图片位置
public
7
voidrun(intkey);
操作键的修改函数
public
8
boolcandown();
向下函数
public
9
voidreleaseGame();
释放创建指针
public
10
voidinitGame();
初始化
public
11
voiddraw();
绘制到窗口
public
12
boolcanleft();
向左函数
public
13
voidonMouse();
鼠标函数
public
___Ctux_(游戏图形)_类成员变量,成员函数说明如表所示。
表3.Ctux(游戏图形)类成员变量说明列表
序号
成员变量
成员变量说明
访问属性
1
intm_subType;
游戏图片类型
public
2
Cnaturom_items[4];
小块数组
public
3
intm_type;
图形类型
public
4
intm_height;
图形高
public
5
intm_width;
图形宽
public
6
CvPointm_pos;
图形位置
public
表4.Ctux(游戏图形)类成员函数说明列表
序号
成员函数
成员函数说明
访问属性
1
voidsetNextIType();
游戏图形I型
public
2
voidsetNextSType();
游戏图形S型
public
3
voidsetNextLType();
游戏图形L型
public
4
voidnextSubType();
游戏图形类型选择
public
5
voidsetNextTType();
游戏图形T型
public
6
voiddrawnext(IplImage*pResizeImage);
图形下一个
public
7
voidmoveright(intfoot=1);
向右移动
public
8
voidmoveleft(intfoot=1);
向左移动
public
9
voidmovedown(intfoot=1)
向下移动
public
10
voidsetPos(intx,inty);
设置位置
public
11
voidsetType();
设置随机类型
public
12
voidsetColour(IplImage*colourImage[5]);
设置随机颜色
public
___Cnaturo_(游戏小块)_类成员变量,成员函数说明如表所示。
表3.Cnaturo(游戏小块)类成员变量说明列表
序号
成员变量
成员变量说明
访问属性
1
boolm_isShow;
显示变量
public
2
CvPointm_pos
小块坐标
public
3
IplImage*m_image;
小块图片指针
public
表4.Cnaturo(游戏小块)类成员函数说明列表
序号
成员函数
成员函数说明
访问属性
1
voiddrawNext(intx,inty,IplImage*bking);
游戏下一块小块
public
2
voidmoveleft(intfoot=1);
小块向左
public
3
voidmoveright(intfoot=1);
小块向右
public
4
voidmovedown(intfoot=1);
小块向下
public
5
voidsetImage(inti,IplImage*items[7]);
小块图形数组
public
6
voidsetPos(intx,inty);
小块位置
public
7
voiddrawBack(IplImage*bkImage);
小块绘入背景
public
核心函数实现流程图,如下(至少给出3<包含main函数>个主要函数的流程图)
voidGameover();函数流程图
voidDelete();函数流程图
IntMain();函数流程图
图6.流程图
系统功能测试
1.测试环境
硬件环境:
Intel(R)Core(TM)i3CPU,2.00GB的内存,电信网络环境
软件环境:
Windows7操作系统
2.测试用例
表5..功能测试用例列表
序号
功能描述
操作
备注
预期输出
测试结果
1
W进行当前图形的顺时针反转
按下“W”
(开始时执行此程序)
图形功能
与预期结果相同
2
A进行当前图形的左移
按下“A”
(开始时执行此程序)
图形左移功能
与预期结果相同
3
当方块在某一行满的时候就进行消行
让某一行满行
(开始时执行此程序)
满行消行功能
与预期结果相同
4
当程序运行时调用音乐播放
运行程序
(开始时执行此程序)
音乐效果
与预期结果相同
5
暂停功能
点击暂停游戏
(开始时执行此程序)
游戏暂停
与预期结果相同
6
游戏功能介绍
点击游戏功能介绍
(开始时执行此程序)
显示介绍界面
与预期结果相同
7
游戏退出功能
点击退出游戏
(开始时执行此程序)
游戏退出
与预期结果相同
3.测试总结
经过测试,本软件已达到需求说明书的要求。
虽然还存在一定的不足,但是不影响软件的正常运行,现给出以下意见和建议
1、增强升级功能
2、界面的细化丰富
3、代码的优化
忽略此处..