現在、テトリス アプリケーションをプログラミングしています。石に多次元整数配列を使用しています。これは、多次元パネル フィールド (int[行][列]) での位置を表します。
石が下に移動したときに、フィールドの色を更新したいところです。すべてのフィールドとすべてのテトリス ストーンをループする代わりに、現在のストーンを更新したいので、最後の位置に変数を追加しました。しかし、この変数を設定すると問題が発生します。
私の質問は、なぜこれが機能するのかということです:
public void moveDown()
{
for (int i = 0; i < location.Length; i++)
{
last_location[i][0] = location[i][0];
last_location[i][1] = location[i][1];
location[i][0] += 1;
}
}
しかし、これはしません:
public void moveDown()
{
last_location = location;
for (int i = 0; i < location.Length; i++)
{
location[i][0] += 1;
}
//last_location got also updated??
}
ここでの問題は、ループの後、last_location が location 変数とまったく同じ値を持ち、後で変更されることです! なんで?前もって感謝します!