算出下落方块的所有x坐标上的最低的小方块(单元)的y值, 还有对应的DATA 里面的最高的值, 相加 取最大值对应的DATA最高值 就是 他要下落倒的高度

解决方案 »

  1.   

    我想各位没有仔细的研究,这个问题的关键是DATA里有未消的行,所以不能把方块的纵坐标统一的加一个值。因为这会有可能让方块的坐标落入要消除的一行上,所以方块的部分有的可能穿过消除行,有的不。
      

  2.   

    哦明白了, copy 一份data, 然后 按照我第一次回答的方法算出chuck 的下落后的坐标, 然后 改写 copy的 data, 然后 按行(或者记录下改变了的行)看看试不是 全为一....你自己提问没说清楚..
      

  3.   

    建议使用bit 操作
    很简单,只要判断"位与"就可以知道是否下落到方块上
      

  4.   

    我以前写了一个(BCB),无论界面与功能,多很NB,但被我毁了,不过还记得一些
    原理,我的表达欠佳,就说一下如何判断方块是否能下移
    container[row][col];记录工作空间中有无方块信息,及其他的一些信息;shape_lib[n][4][4];//n为可选的方块形状
    temp_shape[4][4];//我是通过矩阵的旋转使方块旋转的,因此用了一个临时数组
    struct block
    {
        x,y;
        shape_id;
        temp_shape[4][4];
        color;
        ...
    };
    1,首先检查y值,超出进行步骤2
    2,假设下移一个单位,检测temp_shape与同一位置的container是否有重复的
    元素,如果有,则不能继续下移,左右移动类推
      

  5.   

    更正一下 struct block
    struct block
    {
        x,y;
        shape_id;
        shape[4][4];
        color;
        ...
    };