小编Col*_*ell的帖子

递归 - 洪水填充算法

我需要编写一个泛洪填充算法,用于更大的代码,根据它们所在的房间,用不同颜色的水填充洞穴的特定单元格.

由于某种原因,我的递归算法不起作用,并一直告诉我,我超过了最大递归深度,我不知道为什么.

我试图逐个细胞,检查它是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)
Run Code Online (Sandbox Code Playgroud)

algorithm recursion flood-fill fill

3
推荐指数
1
解决办法
1645
查看次数

标签 统计

algorithm ×1

fill ×1

flood-fill ×1

recursion ×1