私は2048クローン(単純なもの)をプログラミングしています。私が取り組んでいる方法は、多次元配列の数字を指定された方向に見やすくスライドさせています。私は左にスライドするためのこのコードを持っていますが、それを上下左右にスライドさせる方法を理解することはできません。多次元配列の方向に数値を移動します。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;
}
感謝のコメントで述べたように
'moveUp(int [] [] grid)'と言われますか?あなたは 'matriz'を使用していないので、' grid'はどこにも宣言されていません。 – Gendarme
はい、私はスペイン語で書いています。私はそれを忘れてしまいました。編集されました。 – Paw
配列はオブジェクトであり、プリミティブな値ではありません。 'copy'は実際にはコピーではありません。同じオブジェクトを指す別のリファレンスです。コピーしたい場合は、 'clone()'を使うか、2つのfor-loopで手動で行う必要があります。 – Gendarme