プログラムでサイズ 16 の 1 次元整数配列として表す 4x4 ゲームボードがあるとします。
特定のインデックスの上、下、左、右の正方形のインデックスを取得するにはどうすればよいですか?
たとえば、次のようになります。
A = { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 }
このボードを表すもの
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
現在、ボードのインデックス #8 (値 = 7) にいるとしましょう。4 (値 = 3)、5 (値 = 6)、10 (値 = 11) のインデックスを取得し、ボードの右端にあるため、右の正方形がないことを認識するにはどうすればよいですか。
モジュラス計算を使用する必要があることはわかっていますが、隣接する正方形のインデックスを取得する正しい方法を考え出すことができません。
みたいなことを考えている...
if ((i % 4) + 1 < 3) right = i + 1;
if ((i % 4) - 1 > 0) left = i - 1;
if ((i % 4) + 4 < 15) bottom = i + 4;
if ((i % 4) - 4 > 0 ) top = i - 4;
これは正しいアプローチのように思えますか?