Algorithm 洪水淹没一个区域并建造一条星形路径

Algorithm 洪水淹没一个区域并建造一条星形路径,algorithm,graph,game-engine,a-star,flood-fill,Algorithm,Graph,Game Engine,A Star,Flood Fill,考虑一个基于回合的2d网格游戏,其中一个棋子可以移动到一个未占用的单元格,只要它只需要一定的步骤就可以到达那里。当工件被选中时,我想突出显示所有可能的目标单元格并显示它们——这就是我使用泛光填充递归地构建可用单元格的地图,然后将其覆盖在电路板上的地方。一旦选择了一个有效的方块,我就用*来找到一条通往方块的路径 从直觉上看,这种方法似乎浪费了大量的工作——我费劲地生成了一组可行走的方块,却不得不做额外的工作来搜索并实际行走 这似乎是许多游戏中的一个共同特征,是否已经有了一种简化的方法?或者,考虑到

考虑一个基于回合的2d网格游戏,其中一个棋子可以移动到一个未占用的单元格,只要它只需要一定的步骤就可以到达那里。当工件被选中时,我想突出显示所有可能的目标单元格并显示它们——这就是我使用泛光填充递归地构建可用单元格的地图,然后将其覆盖在电路板上的地方。一旦选择了一个有效的方块,我就用*来找到一条通往方块的路径

从直觉上看,这种方法似乎浪费了大量的工作——我费劲地生成了一组可行走的方块,却不得不做额外的工作来搜索并实际行走


这似乎是许多游戏中的一个共同特征,是否已经有了一种简化的方法?或者,考虑到洪水填充产生的网格是不规则的,但保证可以行走,那么明显的过度工作是否可以忽略

当然,只要记住你在洪水泛滥期间所走的路线(从概念上讲,它实际上更像是一种广度优先的搜索)

这通常是通过在探索过程中记住前一个单元格来实现的。一旦你有了最后一个单元格(即用户点击它),沿着前面的链接遍历路径,直到你找到开始节点。就像你在A*结尾时所做的那样。唯一的区别是向前传球现在由你的BFS方法计算