一个游戏中很常见的找路径问题,请各位算法大神帮忙

2023-01-06 15:47:11 +08:00
 assiadamo
想在战棋游戏中实现类似 dota 中宙斯的弧形闪电技能:释放一道会跳跃穿越附近敌人的闪电。

像 dota 这样实时的游戏,有可能宙斯释放技能时,目标的队友会走位离开闪电的跳跃范围,所以猜想的实现方式是递归寻找范围内的目标,找到一个就直接跳过去。

但在战棋游戏中,回合行动时,其他人的位置是固定的,所以应该能找到一条路径,尽可能的电到最多敌人。

在图中从一个顶点出发,找到一条能经过最多顶点数的最长路径,顶点不可重复,不知道这样描述是否清晰。
1125 次点击
所在节点    算法
11 条回复
MeiJM
2023-01-06 16:32:27 +08:00
不是动态障碍物 a*就可以 还有其他算法 可以搜一下路径规划
MeiJM
2023-01-06 16:35:08 +08:00
你这个有点不一样 要先算结束位置再匹配哪个路径可达
takato
2023-01-06 16:35:22 +08:00
想到一个需要补充的点,如果弹跳范围内有两个可选的点,它会根据特定的规则寻找点还是随机选择一个?两个不同的选项可能影响最终结果。
rrfeng
2023-01-06 16:36:58 +08:00
棋盘上随机放置了 N 个棋子。

从 A 棋子开始,跳转到任意相邻的棋子,重复此过程,求最长路径。
assiadamo
2023-01-06 17:12:54 +08:00
@MeiJM A*我一直以为需要有个终点
assiadamo
2023-01-06 17:14:05 +08:00
@takato 我这一个带 bug 的实现是都走完然后选最长的
elmagnificogg
2023-01-06 17:53:36 +08:00
GuardX
2023-01-06 17:55:14 +08:00
有点类似哈密尔顿通路?
elmagnificogg
2023-01-06 17:57:59 +08:00
或者求 极大连通子图 结果应该就是你想要的
assiadamo
2023-01-06 18:13:02 +08:00
@elmagnificogg 是的,看了一些算法,大多是输出最大的长度,而不是完整的路径,修改的时候脑子就不够用,有些算法根本不能改成路径
MeiJM
2023-01-06 18:15:35 +08:00
@assiadamo 是需要结束点 所以要查找所有结束点 再检验哪个点可达

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/907023

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX