Ich programmiere einen 2048-Klon (einen einfachen) und die Methode, an der ich arbeite, verschiebt die Zahlen im multidimensionalen Array so weit wie möglich in die angegebene Richtung. Ich habe diesen Code für das Verschieben nach links, aber ich kann nicht herausfinden, wie man es nach oben, unten und rechts schieben kann.Verschieben Sie Zahlen in Richtungen im mehrdimensionalen Array. Java
public void moveLeft(int[][] grid)
{
int [][] copy = grid;
for(int x = 0; x < copy.length; x++){
int[] row = new int[4];
for(int y = 0; y < copy[x].length; y++){
if (copy[x][y] != 0)
{
int temp = 0;
while(row[temp] != 0) {
temp++;
}
row[temp] = copy[x][y];
}
}
copy[x] = row;
}
grid = copy;
}
Irgendwelche Ideen? Vielen Dank
Soll es sagen 'moveUp (int [] [] Grid)'? Weil du nicht 'matriz' verwendest und' grid' nirgendwo deklariert ist. – Gendarme
Ja, ich schreibe Spanisch und ich habe vergessen, das zu übersetzen. Bearbeitet. – Paw
Beachten Sie, dass Arrays Objekte und keine primitiven Werte sind. 'copy' ist keine Kopie. Es ist eine andere Referenz, die auf das gleiche Objekt zeigt. Wenn Sie es kopieren möchten, müssten Sie 'clone()' verwenden oder manuell in zwei for-Schleifen tun. – Gendarme