ZL ){ gtxy(i,j); printf(" "); } } }}void mkfk( ) //制作俄罗斯方块{ a[x][ y]=b[0]; //方块中心位置状态: 1-有 , 0-无 switch(flag) //共6大类 , 19种小类型 { case 1: { a[x][y-1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //田字方块 case 2: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x+4][y]=b[3]; break; } //直线方块:---- case 3: { a[x][y-1]=b[1]; a[x][y-2]=b[2]; a[x][y+1]=b[3]; break; } //直线方块: | case 4: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x][y+1]=b[3]; break; } //T字方块 case 5: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y]=b[3]; break; } //T字顺时针转90度 case 6: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x+2][y]=b[3]; break; } //T字顺转180度 case 7: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y]=b[3]; break; } //T字顺转270度 case 8: { a[x][y+1]=b[1]; a[x-2][y]=b[2]; a[x+2][y+1]=b[3]; break; } //Z字方块 case 9: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x-2][y+1]=b[3]; break; } //Z字顺转90度 case 10: { a[x][y-1]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; } //Z字顺转180度 case 11: { a[x][y+1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][ y]=b[3]; break; } //Z字顺转270度 case 12: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y-1]=b[3]; break; } //7字方块 case 13: {a[x-2][y]=b[1]; a[x 。
4.用c语言编写俄罗斯方块程序 求详解1、用C语言绘制图形界面 EasyX图形库()即TC的图形库在VC下的移植 。
包含库#include 先初始化图形窗口 initgraph(WINDOW_WIDTH, WINDOW_HIGH) ;WINDOW_WIDTH为窗口的宽带 , WINDOW_HIGH为窗口的高度 。清空绘图设备 cleardevice(); 设置画笔颜色 setcolor(RED) ; 设置线条风格 setlinestyle(PS_SOLID, NULL, 0); 画矩形 rectangle 还有画线、显示文字等函数 , 可以参照其帮助文档 。
注意:由于我们用的是EasyX图形库 , 故源文件后缀要为.cpp , 但其中内容都是C的语法 。2、存储表示出俄罗斯方块的形状 一、我们可以用编号 , 不同的编号代表不同的俄罗斯方块 , 根据编号把不同方块的画法写在代码中 , 这样19种 方块就得有19种相应的代码来描绘 。
而且这样扩展性不好 , 若以后设计了新的方块 , 则需要更改大量源代码 。二、我们很自然的想到可用字模点阵的形式来表示 , 即设置一个4行4列的数组 , 元素置1即代表这个位置有小 方块 , 元素置0即代表这个位置无小方块 , 这个整个的4*4的数组组成俄罗斯方块的形状 。