2D配列内に領域があり、隣接するセルをチェックする必要があることがあります。通常、私は、次の操作を行います:これはポイントにどのように多くの直角に隣接するセルを計算します例外なくグリッド内の隣接するセルを見つける
adjacentCells = (world[y+1][x]==1)+(world[y-1]==1)+(world[y][x+1]==1)+(world[y][x-1]==1)
(x、y)を1に等しい問題は、私のx場合は、この方法では、マトリックスを包むことをやって、ありますまたはy座標が0(上端または左端)であり、点(x、y)が別の端にある場合は例外が発生します。これにより、コードは次のようになります。
def adjacentCells(x,y):
total=0
if x==0:
total += 1
else:
total += world[y][x-1]
if y==0:
total += 1
else:
total += world[y-1][x]
try:
total += world[y][x+1]
except:
total += 1
try:
total += world[y+1][x]
except:
total += 1
return total
この問題を解決する方法は、一番上の例のように簡単ですか?
ありがとう、これは完璧に動作します! – Douglas