tetris 3

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);
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值