基于VC++6.0开发俄罗斯方块(一)

俄罗斯方块游戏开发

一.功能结构模块

在这里插入图片描述
功能界面共分为5部分:游戏欢迎界面,游戏主窗体,游戏规则界面,按键说明界面,游戏结束界面

业务流程图
在这里插入图片描述

二.头文件引用

为了程序更好的运行,程序之中需要引入一些库文件,对程序的一些基本函数进行支持,在引用函数时需要#include命令

在这里插入图片描述
在这里插入图片描述

/*******头   文  件*******/
#include <stdio.h>			//标准输入输出函数库(printf、scanf)
#include <windows.h>		//控制dos界面(获取控制台上坐标位置、设置字体颜色)
#include <conio.h>			//接收键盘输入输出(kbhit()、getch())
#include <time.h>			//用于获得随机数

三.宏定义

宏定义是以#define开头,提供了一种可以替换源代码之中字符串的机制
注意:宏定义并不是C语句,不能在行末加上分号,会引错

/宏 定 义/
#define FrameX 13 //游戏窗口左上角的X轴坐标为13
#define FrameY 3 //游戏窗口左上角的Y轴坐标为13
#define Frame_height 20 //游戏窗口的高度为20
#define Frame_width 18 //游戏窗口的宽度为18

四.定义全局变量

注意:
1)变量根据作用范围可以分为局部变量和全局变量,
2)在一个函数内部定义的变量就是局部变量,它只会在本函数范围内部有效,也就是只在本函数内部才可以使用它,
3)而在函数外部定义的变量就是全局变量,可以为此文件之中所用函数公用,其有效范围是从定义变量的位置开始到本源文件结束

/*******定  义  全  局  变  量 *******/
int i,j,Temp,Temp1,Temp2; 	//temp,temp1,temp2用于记住和转换方块变量的值
//标记游戏屏幕的图案:2,1,0分别表示该位置为游戏边框、方块、无图案;初始化为无图案
int a[80][80]={0};   			
int b[4];     					//标记4个"口"方块:1表示有方块,0表示无方块
struct Tetris					//声明俄罗斯方块的结构体
{
 	int x;     					//中心方块的x轴坐标
 	int y;     					//中心方块的y轴坐标
 	int flag;    				//标记方块类型的序号
 	int next;    				//下一个俄罗斯方块类型的序号
 	int speed;    				//俄罗斯方块移动的速度
 	int number;    			//产生俄罗斯方块的个数
 	int score;    				//游戏的分数
 	int level;    				//游戏的等级
};
HANDLE hOut;					//控制台句柄

五.函数声明

注意:在程序开发时,常常将一些常用功能的功能模块编写成函数,放在公共函数库之中,程序设计人员要善于利用函数,以减少重复编写程序段的工作量

/*******函  数  声  明 *******/
int color(int c);					//设置文字颜色
void gotoxy(int x, int y);				//光标移到指定位置
void DrwaGameframe();						//绘制游戏边框
void Flag(struct Tetris *);				//随机产生方块类型的序号
void MakeTetris(struct Tetris *);		//制作俄罗斯方块
void PrintTetris(struct Tetris *);	//打印俄罗斯方块
void CleanTetris(struct Tetris *);	//清除俄罗斯方块的痕迹
int  ifMove(struct Tetris *);				//判断是否能移动,返回值为1,能移动,否则,不能移动
void Del_Fullline(struct Tetris *);	//判断是否满行,并删除满行的俄罗斯方块
void Gameplay();							//开始游戏
void regulation();                  	//游戏规则
void explation();                   	//按键说明
void welcom();                    			//欢迎界面
void Replay(struct Tetris * tetris);  	//重新开始游戏
void title();                       		//欢迎界面上方的标题
void flower();                     		//欢迎界面上的字符装饰花
void close();                      		//关闭游戏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值