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