我在此网站上遇到了问题:http://www.dark-project.cz/wesnoth/map-view/1(点击该单元)。在我的Javascript源代码http://www.dark-project.cz/wesnoth/js/map/base.js(最后$('div.unitImg').click(function()
函数)中,我想标记该单元无法使用的所有六边形。
我有一个非常复杂的算法,当运动为1时正常工作,但如果它更高则不起作用(尝试运动2)。
您是否对算法有所了解以找到正确的咒语?
以下是坐标编号的示例:http://www.dark-project.cz/wesnoth/coor.png
感谢您的回复。
答案 0 :(得分:3)
首先,我建议你重新设计坐标。 this question中提供了很好的例子。
但无论坐标系如何,我都认为你将来会在场上遇到一些障碍(一些岩石,龙等),所以你应该设计一个为此准备的通用算法。我建议调查BFS,但是你不需要明确地构建图形,就像你需要边缘一样,你知道你的场上有哪些相邻六边形(深度为1,哪个有效)和遍历那里。这是一般方法。还有一个DFS,但是当相邻边缘的数量相当有限时,BFS通常被认为对于可达性问题更有效。