软件工程俄罗斯方块

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

计算机科学与技术学院

目录

软件名称:俄罗斯方块

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)

检查下边界

5.More functions

•游戏难度控制

•添加声音效果

•还未研发出来….

俄罗斯方块的DFD图第0层:

第1层:

需求分析建模–数据字典

数据流名:玩家可用键

说明:玩家在玩游戏是可以用到的键

数据流来源:玩家

数据流去向:系统处理

数据流组成:Y/N + 上下左右

数据元素词条

Y/N= “Y”“N”

上下左右= “↑”“↓”“←”“→”

程序代码

#include

#include

#include

#include

#include

#include

#include "hello.h"

#include

#include

#include "gameproc.h"

//#define var 333;

//移动光标位置

void gotoxy(int x,int y)

{

COORD xy;

HANDLE hstdout;

hstdout=GetStdHandle(STD_OUTPUT_HANDLE);

xy.X=x;

xy.Y=y;

SetConsoleCursorPosition(hstdout,xy);

//CloseHandle(hstdout);

}

void fillchar(char a,int charlen)

{

COORD xy={0};

HANDLE hstdout;

long byw;

hstdout=GetStdHandle(STD_OUTPUT_HANDLE);

FillConsoleOutputCharacter(hstdout,a,charlen,xy,&byw);

相关文档
最新文档