あなたが cell にいるとします(i, j)。次に、無限グリッドでは、隣人は になります[(i-1, j-1), (i-1,j), (i-1, j+1), (i, j-1), (i, j+1), (i+1, j-1), (i+1, j), (i+1, j+1)]。
ただし、グリッドは有限であるため、上記の値の一部は範囲外になります。しかし、剰余算術は知っています:4 % 3 = 1と-1 % 3 = 2. したがって、グリッドのサイズが適切である場合は、上記のリストn, mに適用するだけ%n, %mで適切な隣接リストを取得できます。[((i-1) % n, (j-1) % m), ((i-1) % n,j), ((i-1) % n, (j+1) % m), (i, (j-1) % m), (i, (j+1) % m), ((i+1) % n, (j-1) % m), ((i+1) % n, j), ((i+1) % n, (j+1) % m)]
あなたの座標が と の間 と の間である場合、それはうまく0いきます。から始める場合は、 aと a をどこかで実行して、上記を微調整する必要があります。n0m1-1+1
あなたの場合n=m=4と(i, j) = (0, 0). 最初のリストは[(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]. モジュラス演算を適用すると、写真で[(3, 3), (3, 0), (3, 1), (0, 3), (0, 1), (1, 3), (1, 0), (1, 1)]マークされた正方形が正確になり[n]ます。