'flooding'区域的算法

标签 algorithm language-agnostic flood-fill

我需要检查我的游戏角色可以到达的网格中的所有单元格。为此,我需要从字符位置开始,然后“淹没”该区域以找到所有可到达的单元格(例如,未被墙阻挡的单元格)。

在这张图中,玩家是P,挡住玩家的墙用X表示。我需要检查玩家所在区域的所有单元格。

X X X X X X X X
X     X X     X
X P     X X X X
X X         X X
X X   X X X X X
X X X X X X X X 

有什么好的迭代算法可以做到这一点吗?目前我正在递归执行此操作。

最佳答案

将初始位置放入队列中。

while queue is not empty
    remove an entry from the queue
    add all reachable neighbours not yet marked to the queue (unless they are already in)
    mark position as reachable
end while

关于 'flooding'区域的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860755/

相关文章:

algorithm - 如何确定桶排序的平均和最坏情况空间复杂度

java - 确定两个对象之间的差异

compiler-construction - 使用逻辑编程进行优化的语言

language-agnostic - 在类层次结构的中间有空类是否有代码味?

haskell - 函数式编程是否表现出控制流?

c++ - 我应该如何为我的 C++ 程序实现泛洪填充功能?

c++ Floodfill算法最终错误

algorithm - 散列中的聚类(在碰撞中)是什么意思?

C:使用floodfill填充一个圆

performance - 计算一个单元格包含的圆圈数