一俄罗斯方块的问题,请大家帮忙看看,谢谢了!
我想做的是消层,可是不知道问题在哪里,请大家看看!Track[][][][]代表方块,用的是坐标表示.cells是坐标.SH是高度,SW是宽度.
int8_t cells[SH+1][SW+2] = {{0}};
int i,j, k, lines,m,n ;
char tmp[20],tmp1[20];
if (t_shape == -1 || t_status == -1) return;
for (i=0; i<4; i++)
for (j=0; j<4; j++){
if (Trick[t_shape][t_status][i][j] == 1)
cells[posy+i][posx+j+1] = 1;
}
for(i=SH-1; i >=0; i--)
{ lines = 1 ;
for(j=0; j<=SW-1; j++)
if( cells[i][j] == 0 )
{ lines = 0; continue; }
if(lines)
{
for(m=i; m>=0;m--)
for(n = 0;n<=SW-1; n++)
{ cells[m][n] = cells[m][n-1]; }
i++;
}
}