void copy(int (*src)[32], int (*des)[32])
{
int i,j;
for (i=0;i<10;i++)
for (j=0;j<32;j++)
{
des[i][j] = src[i][j];
}
}
int simu_drop(int shape,int state,int x)
{
int k,y,row_eli=0;
while (true)
{
if (trsCopy_poolimage(gt.tmap[shape][state], gt.x, gt.y+1, 0))++gt.y; //下面没有障碍,还可以继续下落。自动降落一格的时间间隔为gt.t*delay(),刷新一次的时间为delay()
else {
trsCopy_poolimage(gt.tmap[shape][state], gt.x, gt.y, 1);
y = 21;
for (--y; y > 0; --y) { //消行计算 --y之前y的初值是最底下一行(界外),--y由底至上
for (x = 0; pool_image[x][y] > 0; ++x); //遍历直到碰壁!
if (pool_image[x][y] < 0)//如果到了界外说明这行都是被填上的
{
row_eli++;
for (k = y++; k > 0; --k) //y++只为省了一句话
for (x = 0; pool_image[x][0] >= 0; ++x) //gt.pool[x][0] >= 0;这句不是用来判断x是否在游戏盘内吧。。。x<10不就好了。。。这。。。
pool_image[x][k] = pool_image[x][k-1]; //上面一行的值附给下面一行
}
}
return row_eli;
}
//trsCopy_poolimage(gt.tmap[gt.s][gt.st], gt.x, gt.y, 1);
}
}