.
PAGE
. .
C语言之游戏俄罗斯方块课程设计报告 专
C语言之游戏
俄罗斯方块课程设计报告
专业: [软件工程]
学生姓名: [未猛猛]
指导教师: [王星]
完成时间: Time \@ "yyyy年M月d日"2019年7月20日
目录
TOC \o "1-3" \h \z \u 一、需求分析 2
二、概要设计 2
三、详细设计 4
四、调试分析 8
五、用户手册 9
六、测试数据 9
七、附录 10
一、需求分析格式:黑体,四号字,英文用times new roman,以下的标题格式均采用该格式。行距为多倍行距,设置值为1.73
格式:黑体,四号字,英文用times new roman,以下的标题格式均采用该格式。行距为多倍行距,设置值为1.73
该程序是完成一个简易的俄罗斯方块的任务,其要完成几个重要的功能:界面,方块下落,旋转,判断是否还能下落,左右移动,分数,速度设置,清楚满的每行,下个方块的预览等;
可用#include 的头文件来实用几个函数来控制并完成游戏的界面;
可用7个二维5*5数组去实现下落方块的全部类型,再用随机函数使其随机下落;
用#include 的头文件去使用按键的控制,以保证用户能够合理操作;并用#include 的头文件来使用rand函数来随机出示七种方块;完成正常的显示和下个方块的预览;
用 #include 来运用时针去控制时间;
程序执行过程:然后加上几个基本的头文件来执行函数,首先设置按键操作,用:w,a,d,s控制,然后进行界面的初始化设置,启动,时针参数设置,开始新游戏,开始随机下落方块,显示下一个方块,再行旋转,移动,清除,加分,速度参数,最后判断是否已满,停止游戏,打出分数,结束的画面设置,游戏终止...
二、概要设计格式:黑体、四号字,同标题一
格式:黑体、四号字,同标题一
该程序中的函数设置总体主要功能大致如下
1.找到合适的方块盒子(7种)使其一一下落 box[MAX_C][5][5] = { /*MAX_C(7)种预定义的盒子*/ 这样用类似的7个5*5二维数组来实现每个盒子方块的形状,自此就引荐两个作为介绍, {
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,1,0,0},
{0,1,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{1,1,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
},如此中用1代表显示的格子,0代表空。
设置时间指针,实现旋转,移动,消去,显示加分,改变速度分别用下面函数表示
int setTimer(Timer *t, unsigned int intv, BOOL en);
/*设置时钟t,参数分别为时钟指针,时间间隔,是否活动*/
void rotateBox(int box1[5][5], int box2[5][5])
/*旋转box1输出到box2*/
int move(int dir) /*实现移动,返回成功与否*/
void clear() /*清除掉满行*/
void prscore() /*打印现在的分数*/
void spe()/*显示速度的改变*/
益智游戏 俄罗斯方块3.外部函数功能如下图
益智游戏
俄罗斯方块
判断最后,游戏结束的操作;用
判断最后,游戏结束的操作;用prscore()和界面设置完成
界面设置
void initMap函数和void render绘图函数
分数的改变与速度设置;用prscore()与spe()来完成判断是否能继续下落;用int test()函数来完成;
分数的改变与速度设置;用prscore()与spe()来完成
判断是否能继续下落;用int test()函数来完成;
方块的旋转和移动下落;用rorate()move()与drop()来实现
随机显示方块,并建立下一个;用rand() 与void rebuidNext
开始界面4.建立整个函数的流程图如下:
开始界面
时间指针设定
随机出示方块, 并显示下个方块
随机出示方块,
并显示下个方块
实现方块的旋转,移动
实现方块的旋转,移动
判断是否到底
判断是否到底
N
Y
加分,速度设置
加分,速度设置