java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,

1个回答

  • /** 定义方块的形状那个数组和生成新方块的方法没看懂 */

    下面这个是(三维数据)shapes中的一个二维元素

    //i

    { { 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },

    { 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 },

    { 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },

    { 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 } },

    第一行{ 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 } 画出的图形为:(0代表&,1代表O)

    & & & &

    O O O O

    & & & &

    & & & &

    第二行{0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0}

    & O & &

    & O & &

    & O & &

    & O & &

    从上面两个你应该就可以看出这个数组存储各种方块的方式了.

    blockType = (int) (Math.random() * 1000) % 7;

    turnState = (int) (Math.random() * 1000) % 4;

    这里取的7和4的原因是这个三维数组的两个维度的大小是7和4,7种类型的图形,和每个图形的4种形态

    反映到数组上就是

    newShape[] = shapes[blockType][State] ;