我需要检查我的游戏角色可以到达的网格中的所有单元格。为此,我需要从字符位置开始,然后“淹没”该区域以找到所有可到达的单元格(例如,未被墙阻挡的单元格)。
在这张图中,玩家是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/