俄罗斯方块详细设计说明.docx
《俄罗斯方块详细设计说明.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块详细设计说明.docx(9页珍藏版)》请在冰豆网上搜索。
俄罗斯方块详细设计说明
文件名称
俄罗斯方块软件概要说明书
项目名称
俄罗斯方块
修改记录
版本
ECN/修改内容
制定/日期
审核/日期
批准/日期
1.0
1.1
1.2
1.3
1.4
2.1
画小方块
随机生成方块
方块的控制、预览
消行,得分,重新游戏
添加图片,添加音乐
美化界面,消除BUG
2015-11-26
2015-11-27
2015-11-28
2015-11-29
2015-11-30
2015-12-6
存档方式
电子文档纸文档□其它:
拟制
审核
批准
日期
日期
日期
摘要
设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式根据其目的可分为三种类型:
创建型模式、结构型模式和行为型模式,共有23种。
本文将结合其中的几个设计模式阐述俄罗斯方块游戏的基本设计思想。
俄罗斯方块(Tetris,俄文:
Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。
俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。
由于上手简单、老少皆宜,从而家喻户晓,风靡世界。
一.绪论
1.俄罗斯方块游戏简介
原本是前苏联科学家阿列克谢·帕基特诺夫所开发的教育用软件,之后开始提供授权给各个游戏公司,造成各平台上软件大量发行的现象。
GameBoy版的俄罗斯方块在日本卖出424万套,是GameBoy史上卖最好的游戏。
海湾战争时,也是前线美军最常拿消磨时间的游戏之一。
由于俄罗斯方块具有的数学性、动态性与知名度,也经常拿来作为游戏程序设计的练习题材。
俄罗斯方块曾经造成的轰动与带来的经济价值,可以说是世界游戏史上的一个奇迹。
它看似简单却又变化无穷,令人上瘾。
相信大多数用户都还记得为它痴迷得“茶不思饭不想”的那个俄罗斯方块时代。
俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与摆放技巧,难度却不低。
作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。
2.俄罗斯方块游戏规则
1.游戏主画面在一个用于摆放方块的面板上
2.
(1)一组由4个小型正方形组成的规则图形(即方块)共有7种形状,分别为一字形、田字形、7字形、反7形、Z形、反Z形、T形。
(2)一字形:
一次最多消除四层
田字形:
消除一至二层
7字形:
最多消除三层,或消除二层
反7形:
最多消除三层,或消除二层
Z形:
最多二层,容易造成孔洞
反Z形:
最多二层,容易造成孔洞
T形:
最多二层
3.方块从区域上方开始下落,玩者可以按指定按钮左右移动方块、逆时针旋转方块,以及让方块加速落下。
4.方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的方块出现在区域上方开始落下。
5.当区域中某一行横向格子全部由方块填满,则该列会消失,玩家得分。
6.当固定的方块累积堆到一定层数(设计游戏时设置)时,游戏结束。
7.游戏分为初级、中级、高级三关。
8.游戏会提示下一个要落下的方块形状,并随着游戏的进行而加速提高难度。
二.需求分析与游戏设计
1.游戏界面
良好的用户界面设计。
本游戏主要有三个界面,一是主游戏区的面板,显示变化和下落的方块;二是用于放置按钮以及显现游戏信息的面板,三是双人对战时用以显示对方游戏信息的面板。
2.方块控制
方块下落时,可通过特定按钮对该方块进行翻转、加速,以及向左、向右移动等操作。
3.图形显示
随机给出不同的形状(一字形、田字形、7字形、反7形、Z形、反Z形、T形),下落填充给定的区域,填满一行则消掉记分,当达到一定的分数时过关,共设置五关。
每关方块下落的速度不同,方块累积到一定层数无法再消去行时游戏结束。
三、模块设计
1.开始模块
a.文件导入
序号
文件名
描述
备注
1
graphics.h
头文件
b.结构定义
序号
结构名
描述
备注
1
Block
坐标、方向、类型、颜色
c.变量定义
序号
变量名
类型
描述
备注
1
Color、Type、Dirct
整形
联系人的信息
2
IMAGE、MOUSE等
整形
图片、鼠标
3
GAME_WIDTH、GAME_HIGHT等
整形
游戏区域
d.函数定义
序号
函数名
返回值
参数
描述
备注
1
main
void
无
主函数
2
isOver
void
无
判断是否结束
3
initGame
void
无
游戏区域
2.方块的生成
a.文件导入
序号
文件名
描述
备注
1
graphics.h
头文件
2
conio.h
头文件
3
time.h
头文件
b.变量定义
序号
变量名
类型
描述
备注
1
BlockType
字符型
方块的类型
2
BLOCKSIZE
整形
小方块的大小
c.函数定义
序号
函数名
返回值
参数
描述
备注
1
DispSmallBlock
void
无
画一个小方块
2
GetNewBlock
void
无
新方块的属性
3
GetBlock
void
无
画一个方块
3.方块的控制
d.文件导入
序号
文件名
描述
备注
1
graphics.h
头文件
2
conio.h
头文件
3
time.h
头文件
e.变量定义
序号
变量名
类型
描述
备注
1
Clock
长整型
时间函数
2
key
整形
控制参数
f.函数定义
序号
函数名
返回值
参数
描述
备注
1
AutoDown
void
无
自动下落
2
isBlockPos
void
无
判断叠加
3
GameMain
void
无
总体控制
4
Getch
void
无
读取键值
4.方块的预览
g.文件导入
序号
文件名
描述
备注
1
graphics.h
头文件
2
conio.h
头文件
3
time.h
头文件
h.变量定义
序号
变量名
类型
描述
备注
1
Clock
长整型
时间函数
2
key
整形
控制参数
i.函数定义
序号
函数名
返回值
参数
描述
备注
1
initGame
void
无
预览区域
2
initNextGame
void
无
预览方块的属性
5.消行、计分
a.文件导入
序号
文件名
描述
备注
1
dos.h
头文件
2
stdlib.h
头文件
3
math.h
头文件
b.变量定义
序号
变量名
类型
描述
备注
1
Score
整形
分数
2
GameAre
整形
区域赋值
3
Line
整形
暂存行数
c.函数定义
序号
函数名
返回值
参数
描述
备注
1
isRemove
void
无
判断是否消行
2
Remove
void
无
消行
3
Score
void
无
计分