Как повернуть 2d-матрицу, которая упакована в 1d массив? - PullRequest
1 голос
/ 07 марта 2012

Я работаю над игрой в тетрис и сохраняю карты блоков в следующем формате в XML-файле.

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

затем я анализирую этот xml в 1d массив следующим образом

boolean [] bitmap = new boolean [] {true, false, true, false, true, true}; // 101011 в логическом значении в Java

впоследствии при рисовании блока тетриса im с использованием номера столбца и этого массива 1d для вычисления координаты каждого блока. который затем отображает блок «L»

10
10
* 11 * 1010

сейчас ... я хочу повернуть эти блоки ... мне нужно: (для ccw)
101011
в
001111
и столбец № 2 до 3

1 Ответ

1 голос
/ 07 марта 2012

Попробуйте этот код для обхода массива 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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...