我需要编写一个泛洪填充算法,用于在较大的代码中填充洞穴的特定单元格,并根据它们所在的房间使用不同颜色的水进行填充。
由于某种原因,我的递归算法不起作用,并且一直告诉我超过了最大递归深度,我不知道为什么。
我正在尝试逐个单元格地进行操作,检查它是AIR、STONE还是WATER,如果它是STONE或WATER,我希望它不做任何操作。如果它是AIR,我希望它填充该单元格。
有人能给我一些提示或建议吗?
由于某种原因,我的递归算法不起作用,并且一直告诉我超过了最大递归深度,我不知道为什么。
我正在尝试逐个单元格地进行操作,检查它是AIR、STONE还是WATER,如果它是STONE或WATER,我希望它不做任何操作。如果它是AIR,我希望它填充该单元格。
有人能给我一些提示或建议吗?
#flood fill algorithm
def fill(cave, row, col, color):
caveWidth = len(cave)
caveHeigth = len(cave[0])
if row > 0:
fill(cave, row-1, col, color) #left
if col > 0:
fill(cave, row, col-1, color) #up
if row < caveWidth-1:
fill(cave, row+1, col, color) #right
if col < caveHeigth-1:
fill(cave, row, col+1, color) #down
if cave[row][col] == STONE or cave[row][col] == WATER:
return
if cave[row][col] == AIR :
cave[row][col] = WATER
grid.fill_cell(row, col, color)