由不会IT的it个人制作,未经过作者同意,禁止私自转载
如需转载,联系作者qq:2437401610
程序:
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
int block00[4][4]={{10,0,0,0},{1,1,1,1},{0,0,0,0},{0,0,0,0}};
int block01[4][4]={{11,0,1,0},{0,0,1,0},{0,0,1,0},{0,0,1,0}};
int block02[4][4]={{12,0,0,0},{0,0,0,0},{1,1,1,0},{0,1,0,0}};
int block03[4][4]={{13,0,0,0},{0,1,0,0},{1,1,0,0},{0,1,0,0}};
int block04[4][4]={{14,0,0,0},{0,0,0,0},{0,1,0,0},{1,1,1,0}};
int block05[4][4]={{15,0,0,0},{0,1,0,0},{0,1,1,0},{0,1,0,0}};
int block06[4][4]={{16,0,0,0},{0,0,0,0},{1,1,1,0},{1,0,0,0}};
int block07[4][4]={{17,0,0,0},{1,1,0,0},{0,1,0,0},{0,1,0,0}};
int block08[4][4]={{18,0,0,0},{0,0,0,0},{0,0,1,0},{1,1,1,0}};
int block09[4][4]={{19,0,0,0},{0,1,0,0},{0,1,0,0},{0,1,1,0}};
int block10[4][4]={{20,0,0,0},{0,0,0,0},{1,1,1,0},{0,0,1,0}};
int block11[4][4]={{21,0,0,0},{0,1,0,0},{0,1,0,0},{1,1,0,0}};
int block12[4][4]={{22,0,0,0},{0,0,0,0},{1,0,0,0},{1,1,1,0}};
int block13[4][4]={{23,0,0,0},{0,1,1,0},{0,1,0,0},{0,1,0,0}};
int block14[4][4]={{24,0,0,0},{0,0,0,0},{0,1,1,0},{1,1,0,0}};
int block15[4][4]={{25,0,0,0},{1,0,0,0},{1,1,0,0},{0,1,0,0}};
int block16[4][4]={{26,0,0,0},{0,0,0,0},{1,1,0,0},{0,1,1,0}};
int block17[4][4]={{27,0,0,0},{0,0,1,0},{0,1,1,0},{0,1,0,0}};
int block18[4][4]={{28,0,0,0},{0,0,0,0},{1,1,0,0},{1,1,0,0}};
void gotoXY(HANDLE hOut,int x,int y)
{
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(hOut,pos);
}
void clearBlock(HANDLE hOut,int block[4][4],int x,int y)
{
for(int i=0;i<4;++i)
if(i+x>=0)
for(int j=0;j<4;++j)
if(block[i][j]==1)
{
gotoXY(hOut,2*(y+j),x+i);
cout<<" ";
}
}
void initialWindow(HANDLE hOut)
{
SetConsoleTitle(" ˹ ");
COORD size={80,25};
SetConsoleScreenBufferSize(hOut,size);
SMALL_RECT rc={0,0,79,24};
SetConsoleWindowInfo(hOut,true,&rc);
CONSOLE_CURSOR_INFO cursor_info={1,0};
SetConsoleCursorInfo(hOut,&cursor_info);
}
void initialPrint(HANDLE hOut)
{
SetConsoleTextAttribute(hOut,FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
for(int i=0;i<20;++i)cout<<" " <<endl;
gotoXY(hOut,26,0);
cout<<" ";
gotoXY(hOut,0,20);
cout<<" ";
gotoXY(hOut,26,1);
cout<<" ";
gotoXY(hOut, 26, 2);
cout<<" ";
gotoXY(hOut, 26, 4);
cout<<" һ 飺";
gotoXY(hOut, 26, 9);
cout << " ";
gotoXY(hOut, 30, 11);
cout << " ת ٽ ";
gotoXY(hOut, 30, 12);
cout << " ";
gotoXY(hOut, 30, 13);
cout << " ո ʼ/ ͣ";
gotoXY(hOut, 30, 14);
cout << "Esc ˳ ";
gotoXY(hOut, 26, 16);
cout << " ڣ ";
gotoXY(hOut, 30, 18);
cout << " ˹ ";
gotoXY(hOut, 35, 19);
}
bool collisionDetection(int block[4][4],int map[21][12],int x,int y)
{
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
if (x+i>=0&&y+j>=0&&map[x+i][y+j]==1&&block[i][j]==1)
return false;
return true;
}
void printBlock(HANDLE hOut,int block[4][4],int x,int y)
{
switch(block[0][0])
{
case 10:
case 11:
SetConsoleTextAttribute(hOut,FOREGROUND_GREEN);
break;
case 12:
case 13:
case 14:
case 15:
SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
break;
case 16:
case 17:
case 18:
case 19:
SetConsoleTextAttribute(hOut,FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
break;
case 20:
case 21:
case 22:
case 23:
SetConsoleTextAttribute(hOut,FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
break;
case 24:
case 25:
SetConsoleTextAttribute(hOut,FOREGROUND_GREEN|FOREGROUND_INTENSITY);
break;
case 26:
case 27:
SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
break;
case 28:
SetConsoleTextAttribute(hOut,FOREGROUND_RED|FOREGROUND_INTENSITY);
break;
default:
break;
}
for(int i=0;i<4;++i)
if(i+x>=0)
for(int j=0;j<4;++j)
if(block[i][j]==1)
{
gotoXY(hOut,2*(y+j),x+i);
cout<<" ";
}
}
void roundBlock(HANDLE hOut,int block[4][4])
{
clearBlock(hOut, block,5,15);
switch (rand()%19)
{
case 0:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
break;
case 1:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block01[i][j];
break;
case 2:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block02[i][j];
break;
case 3:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block03[i][j];
break;
case 4:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
break;
case 5:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block05[i][j];
break;
case 6:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block06[i][j];
break;
case 7:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block07[i][j];
break;
case 8:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block08[i][j];
break;
case 9:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block09[i][j];
break;
case 10:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block10[i][j];
break;
case 11:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block11[i][j];
break;
case 12:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block12[i][j];
break;
case 13:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block13[i][j];
break;
case 14:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block14[i][j];
break;
case 15:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block15[i][j];
break;
case 16:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block16[i][j];
break;
case 17:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block17[i][j];
break;
case 18:
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block18[i][j];
break;
default:
break;
}
printBlock(hOut,block,5,15);
}
void gameOver(HANDLE hOut,int block[4][4],int map[21][12])
{
SetConsoleTextAttribute(hOut, FOREGROUND_RED|FOREGROUND_INTENSITY);
gotoXY(hOut,9,8);
cout<<"GAME OVER";
gotoXY(hOut, 8, 9);
cout<<" ո ";
gotoXY(hOut, 8, 10);
cout<<"ESC ˳ ";
char key;
while(true)
{
key=_getch();
if(key==32)return;
if(key==27)exit(0);
}
}
int myDown(HANDLE hOut,int block[4][4],int map[21][12],int &x, int y)
{
if(collisionDetection(block,map,x+1,y))
{
clearBlock(hOut,block,x,y);
++x;
return 0;
}
if(x<0)return 2;
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
if(block[i][j]==1)
{
map[x+i][y+j]=1;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
gotoXY(hOut,2*(y+j),x+i);
cout<<" ";
}
return 1;
}
void myLeft(HANDLE hOut,int block[4][4],int map[21][12],int x,int &y)
{
if (collisionDetection(block,map,x,y-1))
{
clearBlock(hOut, block,x,y);
--y;
}
}
void myRight(HANDLE hOut,int block[4][4],int map[21][12],int x,int &y)
{
if (collisionDetection(block,map,x,y+1))
{
clearBlock(hOut,block,x,y);
++y;
}
}
void myUp(HANDLE hOut, int block[4][4],int map[21][12],int x,int &y)
{
switch (block[0][0])
{
case 10:
if(collisionDetection(block01,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block01[i][j];
}
break;
case 11:
if (collisionDetection(block00,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
}
else if(collisionDetection(block00,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
--y;
}
else if(collisionDetection(block00,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
++y;
}
else if(collisionDetection(block00,map,x,y-2))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
y-=2;
}
else if(collisionDetection(block00,map,x,y+2))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block00[i][j];
y+=2;
}
break;
case 12:
if(collisionDetection(block03,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block03[i][j];
}
else if(collisionDetection(block03,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block03[i][j];
--y;
}
else if(collisionDetection(block03,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block03[i][j];
++y;
}
break;
case 13:
if(collisionDetection(block04,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
}
else if(collisionDetection(block04,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
--y;
}
else if(collisionDetection(block04,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
++y;
}
break;
case 14:
if(collisionDetection(block05,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block05[i][j];
}
else if(collisionDetection(block05,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block05[i][j];
--y;
}
else if(collisionDetection(block05,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block05[i][j];
++y;
}
break;
case 15:
if(collisionDetection(block02,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block02[i][j];
}
else if(collisionDetection(block02,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block02[i][j];
--y;
}
else if(collisionDetection(block02,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block02[i][j];
++y;
}
break;
case 16:
if(collisionDetection(block07,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block07[i][j];
}
else if(collisionDetection(block07,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block07[i][j];
--y;
}
else if(collisionDetection(block07,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block07[i][j];
++y;
}
break;
case 17:
if(collisionDetection(block08,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block08[i][j];
}
else if(collisionDetection(block08,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block08[i][j];
--y;
}
else if(collisionDetection(block08,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block08[i][j];
++y;
}
break;
case 18:
if(collisionDetection(block09,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
}
else if(collisionDetection(block09,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block09[i][j];
--y;
}
else if(collisionDetection(block09,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block09[i][j];
++y;
}
break;
case 19:
if(collisionDetection(block06,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block04[i][j];
}
else if(collisionDetection(block06,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block06[i][j];
--y;
}
else if(collisionDetection(block06,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block06[i][j];
++y;
}
break;
case 20:
if(collisionDetection(block11,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block11[i][j];
}
else if(collisionDetection(block11,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block11[i][j];
--y;
}
else if(collisionDetection(block11,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block11[i][j];
++y;
}
break;
case 21:
if(collisionDetection(block12,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block12[i][j];
}
else if(collisionDetection(block12,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block12[i][j];
--y;
}
else if(collisionDetection(block12,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block12[i][j];
++y;
}
break;
case 22:
if(collisionDetection(block13,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block13[i][j];
}
else if(collisionDetection(block13,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block13[i][j];
--y;
}
else if(collisionDetection(block13,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block13[i][j];
++y;
}
break;
case 23:
if(collisionDetection(block10,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block10[i][j];
}
else if(collisionDetection(block10,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block10[i][j];
--y;
}
else if(collisionDetection(block10,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block10[i][j];
++y;
}
break;
case 24:
if(collisionDetection(block15,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block15[i][j];
}
else if(collisionDetection(block15,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block15[i][j];
--y;
}
else if(collisionDetection(block15,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block15[i][j];
++y;
}
break;
case 25:
if(collisionDetection(block14,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block14[i][j];
}
else if(collisionDetection(block14,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block14[i][j];
--y;
}
else if(collisionDetection(block14,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block14[i][j];
++y;
}
break;
case 26:
if(collisionDetection(block17,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block17[i][j];
}
else if(collisionDetection(block17,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block17[i][j];
--y;
}
else if(collisionDetection(block17,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block17[i][j];
++y;
}
break;
case 27:
if(collisionDetection(block16,map,x,y))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block16[i][j];
}
else if(collisionDetection(block16,map,x,y-1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block16[i][j];
--y;
}
else if(collisionDetection(block16,map,x,y+1))
{
clearBlock(hOut,block,x,y);
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
block[i][j]=block16[i][j];
++y;
}
break;
default:
break;
}
}
void myStop(HANDLE hOut,int block[4][4])
{
clearBlock(hOut,block,5,15);
SetConsoleTextAttribute(hOut, FOREGROUND_RED|FOREGROUND_INTENSITY);
gotoXY(hOut,30,7);
cout<<" Ϸ ͣ";
char key;
while(true)
{
key=_getch();
if(key==32)
{
gotoXY(hOut,30,7);
cout<<" ";
printBlock(hOut,block,5,15);
return;
}
if(key==27) exit(0);
}
}
void eliminateRow(HANDLE hOut,int map[21][12],int&val,int&fraction,int&checkpoint)
{
SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
for(int i=19;i>=0;--i)
{
int x=0;
for(int j=1;j<11;j++)x+=map[i][j];
if(x==0)
{
fraction+=100;
if(val>1&&fraction/1000+1!=checkpoint)
{
checkpoint=fraction/1000+1;
val-=5;
}
for(int m=i;m>0;m--)
{
for(int n=1;n<11;n++)
{
map[m][n]=map[m-1][n];
gotoXY(hOut,2*n,m);
if(map[m][n]==1)cout<<" ";
else cout<<" ";
}
}
i++;
}
}
gotoXY(hOut,36,1);
cout<<fraction;
gotoXY(hOut,36,2);
cout<<checkpoint;
}
int main()
{
int map[21][12],blockA[4][4],blockB[4][4];
int positionX, positionY,val,fraction=0,checkpoint=1,times;
bool check=true;
char key;
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
initialWindow(hOut);
initial:
gotoXY(hOut,0,0);
initialPrint(hOut);
val=50;
times=val;
for(int i=0;i<20;++i)
for(int j=1;j<11;++j)
map[i][j]=0;
for(int i=0;i<20;++i)map[i][0]=map[i][11]=1;
for(int i=0;i<12;++i)map[20][i] = 1;
srand((unsigned)time(NULL));
roundBlock(hOut,blockA);
while(true)
{
if(check)
{
eliminateRow(hOut,map,val,fraction,checkpoint);
check=false;
positionX=-3;
positionY=4;
if(collisionDetection(blockA,map,positionX,positionY))
{
for(int i=0;i<4;++i)
for(int j=0;j<4;++j)
blockB[i][j]=blockA[i][j];
roundBlock(hOut,blockA);
}
else
{
gameOver(hOut,blockA,map);
goto initial;
}
}
printBlock(hOut,blockB,positionX,positionY);
if(_kbhit())
{
key=_getch();
switch (key)
{
case 72:
myUp(hOut,blockB,map,positionX,positionY);
break;
case 75:
myLeft(hOut,blockB,map,positionX,positionY);
break;
case 77:
myRight(hOut,blockB,map,positionX,positionY);
break;
case 80:
switch(myDown(hOut,blockB,map,positionX,positionY))
{
case 0:
check=false;
break;
case 1:
check=true;
break;
case 2:
gameOver(hOut,blockB,map);
goto initial;
default:
break;
}
break;
case 32:
myStop(hOut,blockA);
break;
case 27:
exit(0);
default:
break;
}
}
Sleep(20);
if(0==--times)
{
switch(myDown(hOut,blockB,map,positionX,positionY))
{
case 0:
check=false;
break;
case 1:
check=true;
break;
case 2:
gameOver(hOut,blockB,map);
goto initial;
default:
break;
}
times=val;
}
}
cin.get();
return 0;
}
禁止盗用