如何旋转打包成1d数组的2d矩阵?

时间:2012-03-07 10:32:00

标签: java arrays algorithm matrix

我正在开发一个俄罗斯方块游戏,并在xml文件中以下列格式保存块地图。

<block column="2">101011</block>

然后我将这个xml解析为1d数组,如下所示

boolean [] bitmap = new boolean [] {true,false,true,false,true,true}; // 101011 in java中的boolean

之后绘制俄罗斯方块时使用列号和这个1d数组来计算每个块的坐标。 然后显示“L”块

10
10个
11

现在......我想旋转这些块...我需要的是:(对于ccw)
101011个

001111
和第2至3列

1 个答案:

答案 0 :(得分:1)

尝试使用此代码遍历2dD数组,以便创建所需的1D数组:

int[][] array = new int[][] { { 1, 0 }, { 1, 0 }, { 1, 1 } };
int[] newArray = new int[6];
int index = 0;

// Populating 1D array.
for (int i = array[0].length; i > 0; i--)
    for (int j = 0; j < array.length; j++)
        newArray[index++] = array[j][i - 1];

// See the contents of 1D array.
for (int i = 0; i < newArray.length; i++)
    System.out.println(newArray[i]);