资源描述:
《C++俄罗斯方块代码(北邮版).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#include#include#include"colorConsole.h"//老师的文件voidbegin();//开始游戏voidframe();//边框设定int*getblocks();//方块产生voidmove(intline);//移动voiddrawblocks(intline);//方块显示voidclearsquare(intline);//方块擦出voidturn(i
2、ntline);//方块旋转boolisavailable(intline);//判断是否能下落voidremember(intline);//记忆方块位置voiddeleteline(intline);//方块满一行消除boolifgameover();//判断是否游戏结束voidend();//游戏结束#defineup72#definedown80#defineleft75#defineright77#defineesc27HANDLEhandle;inta1[4][4]={{1},{1,1,1}};//七种方块的二维数组inta
3、2[4][4]={{0,1},{1,1,1}};inta3[4][4]={{1,1},{0,1,1}};inta4[4][4]={{0,0,1},{1,1,1}};inta5[4][4]={{0,1,1},{1,1}};inta6[4][4]={{1,1,1,1}};inta7[4][4]={{1,1},{1,1}};introw=0;//列数intscore=0;intlevel=0;int*block1=NULL;int*block2=NULL;int*block3=NULL;intcoordinate[12][18]={0};//
4、坐标数组,边框12*18(最后一行,两边边框计算在)intjudge=0;intscorex=0;inttemp[4][4]={0};voidmain()//主函数{intt=1;handle=initiate();while(t){t=0;begin();sndPlaySound("music.wav",SND_LOOP
5、SND_ASYNC);frame();WORDwColors[1];wColors[0]=FOREGROUND_GREEN
6、FOREGROUND_RED
7、FOREGROUND_INTENSITY;for(intk=1
8、;k<=999999;k++){if(ifgameover())//判断是否结束{textout(handle,34,10,wColors,1,"GameOver");Sleep(800);end();}else{if(k==1)block2=getblocks();block3=block2;//block2指向将出现的方块地址block2=getblocks();//获取下一个新的方块block1=block3;row=52;clearsquare(16);//擦除next的方块block1=block2;drawblocks(15
9、);//在next显示下一块方块图形row=34;block1=block3;for(inti=4;i<=7;i++)//所构建的方块图形最多只有占有两排,所以只用4-7即可对应{if(*(block1+i))textout(handle,26+i*2,4,wColors,1,"■");//方块先露出下面部分}Sleep(500-50*level);for(intline=4;line<=22;line++)//方块自主下落,方块从第四排开始出现{if(isavailable(line))//检验刚产生的方块是否碰壁,碰到已落方块{cl
10、earsquare(line);//消除方块先露初的下面分drawblocks(line);//产生完整的下落方块move(line);}else{remember(line);//落定后将这些位置对应的all数组中元素置1deleteline(line);//消行以及加分if(line==4)judge=1;break;}}}}}}voidbegin(){inti=1;WORDwColors[1];wColors[0]=FOREGROUND_GREEN
11、FOREGROUND_INTENSITY;WORDwColors1[2];wCol
12、ors1[0]=FOREGROUND_RED
13、FOREGROUND_GREEN
14、FOREGROUND_INTENSITY;wColors1[1]=FOREGROUND_RED
15、FOREGROUND_INTE