77范文网 - 专业文章范例文档资料分享平台

C语言俄罗斯方块1

来源:网络收集 时间:2020-05-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

#include #include #include #include //游戏窗口

#define FrameX 4 //游戏窗口左上角的X轴坐标 #define FrameY 4 //游戏窗口左上角的Y轴坐标 #define Frame_height 20 //游戏窗口的高度 #define Frame_width 18 //游戏窗口的宽度 //定义全局变量

int i,j,temp,temp1,temp2; //temp,temp1,temp2用于记住和转换方块变量的值

int a[80][80]={0}; //标记游戏屏幕的图案:2,1,0分别表示该位置为游戏边框、方块、无图案;初始化为无图案

int b[4]; //标记4个\口\方块:1表示有方块,0表示无方块

//声明俄罗斯方块的结构体 struct Tetris {

int x; //中心方块的x轴坐标 int y; //中心方块的y轴坐标 int flag; //标记方块类型的序号

int next; //下一个俄罗斯方块类型的序号 int speed; //俄罗斯方块移动的速度 int count; //产生俄罗斯方块的个数 int score; //游戏的分数 int level; //游戏的等级 };

//函数原型声明 //光标移到指定位置

void gotoxy(HANDLE hOut, int x, int y); //制作游戏窗口 void make_frame(); //随机产生方块类型的序号 void get_flag(struct Tetris *); //制作俄罗斯方块

void make_tetris(struct Tetris *); //打印俄罗斯方块

void print_tetris(HANDLE hOut,struct Tetris *); //清除俄罗斯方块的痕迹

void clear_tetris(HANDLE hOut,struct Tetris *); //判断是否能移动,返回值为1,能移动,否则,不动 int if_moveable(struct Tetris *);

//判断是否满行,并删除满行的俄罗斯方块 void del_full(HANDLE hOut,struct Tetris *); //开始游戏 void start_game();

void main() {

//制作游戏窗口 make_frame(); //开始游戏 start_game(); }

/******光标移到指定位置**************************************************************/ void gotoxy(HANDLE hOut, int x, int y) {

COORD pos; pos.X = x; //横坐标 pos.Y = y; //纵坐标

SetConsoleCursorPosition(hOut, pos); }

/******制作游戏窗口******************************************************************/ void make_frame() {

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //定义显示器句柄变量 gotoxy(hOut,FrameX+Frame_width-5,FrameY-2); //打印游戏名称 printf(\俄罗斯方块\

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+7); //打印选择菜单 printf(\下一个方块:\

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+13); printf(\

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+17); printf(\键:变体\

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+19); printf(\空格:暂停游戏\

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+15); printf(\:退出游戏\

gotoxy(hOut,FrameX,FrameY); //打印框角并记住该处已有图案 printf(\

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY); printf(\

gotoxy(hOut,FrameX,FrameY+Frame_height); printf(\

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+Frame_height); printf(\

a[FrameX][FrameY+Frame_height]=2;

a[FrameX+2*Frame_width-2][FrameY+Frame_height]=2; for(i=2;i<2*Frame_width-2;i+=2) {

gotoxy(hOut,FrameX+i,FrameY); printf(\ //打印上横框 }

for(i=2;i<2*Frame_width-2;i+=2) {

gotoxy(hOut,FrameX+i,FrameY+Frame_height); printf(\ //打印下横框

a[FrameX+i][FrameY+Frame_height]=2; //记住下横框有图案 }

for(i=1;i

gotoxy(hOut,FrameX,FrameY+i); printf(\ //打印左竖框

a[FrameX][FrameY+i]=2; //记住左竖框有图案 }

for(i=1;i

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+i); printf(\ //打印右竖框

a[FrameX+2*Frame_width-2][FrameY+i]=2; //记住右竖框有图案 } }

/******制作俄罗斯方块********************************************************************/ void make_tetris(struct Tetris *tetris) {

a[tetris->x][tetris->y]=b[0]; //中心方块位置的图形状态:1-有,0-无 switch(tetris->flag) //共6大类,19种类型 {

case 1: //田字方块 {

a[tetris->x][tetris->y-1]=b[1]; a[tetris->x+2][tetris->y-1]=b[2]; a[tetris->x+2][tetris->y]=b[3]; break; }

case 2: //直线方块:---- {

a[tetris->x-2][tetris->y]=b[1]; a[tetris->x+2][tetris->y]=b[2]; a[tetris->x+4][tetris->y]=b[3]; break; }

case 3: //直线方块: | {

a[tetris->x][tetris->y-1]=b[1]; a[tetris->x][tetris->y-2]=b[2]; a[tetris->x][tetris->y+1]=b[3]; break; }

case 4: //T字方块

{

a[tetris->x-2][tetris->y]=b[1]; a[tetris->x+2][tetris->y]=b[2]; a[tetris->x][tetris->y+1]=b[3]; break; }

case 5: //T字顺时针转90度方块 {

a[tetris->x][tetris->y-1]=b[1]; a[tetris->x][tetris->y+1]=b[2]; a[tetris->x-2][tetris->y]=b[3]; break; }

case 6: //T字顺时针转180度方块 {

a[tetris->x][tetris->y-1]=b[1]; a[tetris->x-2][tetris->y]=b[2]; a[tetris->x+2][tetris->y]=b[3]; break; }

case 7: //T字顺时针转270度方块 {

a[tetris->x][tetris->y-1]=b[1]; a[tetris->x][tetris->y+1]=b[2]; a[tetris->x+2][tetris->y]=b[3]; break; }

case 8: //Z字方块 {

a[tetris->x][tetris->y+1]=b[1]; a[tetris->x-2][tetris->y]=b[2]; a[tetris->x+2][tetris->y+1]=b[3]; break; }

case 9: //Z字顺时针转90度方块

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言俄罗斯方块1在线全文阅读。

C语言俄罗斯方块1.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1054198.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: