1

ここに初めての投稿。短い話ですが、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) を指すようになるようです。だから私は、誰かがもう少し詳細な分析を説明し、この解決策/別の解決策を少し手伝ってくれるかどうか尋ねています

4

1 に答える 1

0

あなたの先生は間違っていますが、あなたの研究は正しいです。

これを処理する方法がいくつかあります: Java で 2 次元配列をコピーするにはどうすればよいですか?

于 2015-03-21T01:45:09.720 に答える