0
真ん中の土地の大きさを見つけようとするとコードはうまく動作しますが、コーナーの小さな土地のサイズを計算すると失敗します。指定された配列の外側にある土地のチェックを開始する場合は、0
を返すにはどうすればよいですか?存在しない配列はどうやって説明できますか?
M = 'land'
o = 'water'
world = [[o,o,o,o,o,o],
[o,M,M,M,o,o],
[o,o,M,M,o,o],
[o,o,o,o,o,M]]
def continent_size world, x, y
if world[x][y] != 'land'
return 0
end
size = 1
world[x][y] = 'counted land'
size = size + continent_size(world, x-1, y-1)
size = size + continent_size(world, x , y-1)
size = size + continent_size(world, x+1, y-1)
size = size + continent_size(world, x-1, y )
size = size + continent_size(world, x+1, y )
size = size + continent_size(world, x-1, y+1)
size = size + continent_size(world, x , y+1)
size = size + continent_size(world, x+1, y+1)
size
end
puts continent_size(world, 3, 5)
y'を返すように意図されるもの 'continent_size世界、X、言葉での状態に編集してください。小さな例が役に立つでしょう。 –