2D Array copy (JAVA)

Первый пост здесь. Коротко говоря, мне нужно было сделать тетрис на Java, он работал нормально, но у него были некоторые проблемы с оптимизацией (я только начал программировать в этом семестре).

Когда я обсуждал игру с учителем, он указал мне на наличие ненужного кода, когда строка была заполнена, и мне пришлось удалить / сдвинуть строки.

У меня нет точного кода на данный момент, но это было что-то вроде этого:

public static int [][] trueBoard = new int [DIM_LINES][DIM_COLS];

//**CODE TO SHIFT LINES**//

for(int line=0;line < DIM_LINES;++l) //about this, ++l or l++?

      for(int cols=0;cols < DIM_COLS;++c)

             trueBoard[l][c]=trueBoard[l-1][c];

Учитель сказал, что быть в 2 бесполезно, а я должен просто сделать

for(int line=0;line < DIM_LINES;++l)

         trueBoard[l]=trueBoard[l-1];

Но после того, как я сделал это изменение, игровые ошибки довольно сильно. Из моего исследования кажется, что при этом способе массива указывают на один и тот же "объект" (в данном случае int) вместо простого копирования элементов. Поэтому я спрашиваю, может ли кто-нибудь объяснить более глубокий анализ и немного помочь с этим решением / другим

1 ответ

Решение

Ваш учитель неверен, а ваши исследования верны.

Вот несколько способов справиться с этим: Как мне скопировать 2-мерный массив в Java?

Другие вопросы по тегам