当前位置:文档之家› 软件工程俄罗斯方块

软件工程俄罗斯方块

软件工程俄罗斯方块
软件工程俄罗斯方块

课程实验报告课程名称:软件工程

计算机科学与技术学院

目录

软件名称:俄罗斯方块

1.软件定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

a)问题定义. . . . . . . . . . . . . . . . . . . . . . . . . . .3

b)可行性研究. . . . . . . . . . . . . . . . . . . . . . . . . .3

c)需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . .4

i.设计棋盘 . . . . . . . . . . . . . . . . . . . . . . . . .5

ii.设计棋子 . . . . . . . . . . . . . . . . . . . . . . . . .6 iii.按键功能设置(上下左右). . . . . . . . . . . . . . . . . . . .7 iv.棋子落下的动画实现以及越界检测. . . . . . . . . . . . . . . .9 v.More functions . . . . . . . . . . . . . . . . . . . . . .11 2.俄罗斯方块的DFD图 . . . . . . . . . . . . . . . . . . . . . . .12 3.需求分析建模–数据字典. . . . . . . . . . . . . . . . . . . . . .13 4.代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

俄罗斯方块

1.编译环境

Codeblocks编译器用C语言在window8下

2.软件定义

a)问题定义

额,俄罗斯方块不用定义了吧。。相信大家都知道。

俄罗斯方块(Tetris, 俄文:Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克

谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移

动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的

一行或多行并且消除得分。由于上手简单、老少皆宜,从而家

喻户晓,风靡世界。

2014年2月22日,英国心理学家发现,减肥者通过玩俄罗斯方块,可以降低对富含脂肪的食物和零食的心理需求;尝

试戒烟者的烟瘾也能得到遏制。

b)可行性研究

俄罗斯方块是曾经风靡全球的一款游戏。如今看来,虽然与其他手游相比,编码简单,但对于现阶段的我们,还是有一

定的难度,因而做出俄罗斯方块的代码,是一个很能锻炼自我

的任务,因此我选择了写俄罗斯方块。

通过大一对C语言和这学期数据结构的学习,已经基本掌握了俄罗斯方块编程的需要,因此是可行的。

c)需求分析

?设计棋盘

?设计棋子

?按键功能设置(上下左右)

?棋子落下的动画实现以及越界检测

软件设计1.设计棋盘

设计出棋盘的高和宽:

#define CHESS_WIDTH 12*2

#define CHESS_HIGHT 1

出来的效果应该是这样的:

2.设计棋子

用一个二维数组表示棋子:

x,y (4,1)

char a[4][4]

a[0][0]=1,a[0][1]=1,a[1][0],a[1][1]=1;

出来的效果:

3.按键功能设置(上下左右,暂停)

按键功能分别由下面几个函数实现:

void ClearChess(chess_data chess) 清屏

void MoveDown(chess_data* Chess) 下移

void MoveLeft(chess_data* Chess) 左移

void MoveRight(chess_data* Chess) 右移

然后这儿呢,会出现一个bug,即出现越界现象,所以需要写函数来判断是否越界。

4.棋子落下的动画实现以及越界检测

越界检测:

int CheckLeftBorder(chess_data Chess)

检查左右边界

int CheckDownBorder(chess_data Chess)

检查下边界

相关主题
文本预览
相关文档 最新文档