#defineKey_Up 0x4800// 向上方向键
#defineKey_Down 0x5000// 向下方向键
#defineKey_Right 0x4d00// 向右方向键
#defineKey_Left 0x4b00// 向左方向键
intmap[4][4] = {0 };
intcheck[4] = {0}; //判断游戏是否结束,如果都不为0,游戏结束 int i, j;
显示在屏幕上//void print()
{
for(i =0; i <4; i++)
{
for(j =0; j <4; j++)
{
printf("%d\t", map[i][j]);
}
printf("\n");
}
}
向右移动//int moveRight() {
intflag =0;//来标记是否整个map矩阵能否改变,以此判断整个游戏是否结束
//这个循环的目的是为了做某一行的加减,如某一行为[2 2 4 4],经过以下运算就会变为[0 4 0 8];for(i =0; i <4; i++)
{
for(j =4-1; j >=0; j--)
{
intcell = map[i][j];
if(cell !=0)
{
intk = j -1;
while(k >=0)
{
intnextcell = map[i][k];
if(nextcell !=0)
{
if(cell == nextcell)
{
flag =1;
map[i][j] += map[i][k];
map[i][k] =0;
}
k = -1;
break;
}
k--;
}
}
}
}
//上一步做的是数据加减,这一步对加减后的数据做数据处理
//例如某一行经过上一步的数据为【0 4 0 8】,将会变为【0 0 4 8】for(i =0; i <4; i++)
{
for(j =4-1; j >0; j--)
{
intcell = map[i][j];
if(cell ==0)
{
intk = j -1;
while(k >=0)
{
intnextcell = map[i][k];
if(nextcell !=0)
{