我们有一个带有正x和y坐标的棋盘。
0,0 1,0 2,0 ...
0,1 1,1 2,1 ...
0,2 1,2 2,2 ...
... ... ... ...
我们必须找到从A到B最便宜的路径,因为每个步骤需要100个能量和500个移动成本。
我调查了Dijkstra Algorithm,但我认为这与我的问题无关。
最简单的解决办法是什么?
答案 0 :(得分:1)
最小移动次数总是 | X B -X A | + | Y B - ÿ<子> A 子> |我们只需转一圈即可始终。
示例:从(1,2)移动到(4,6):
3 moves right: 1500
1 turn: 100
4 moves down: 2000
----
3600
我们不能用较少的动作来做,只有更多的转弯。
答案 1 :(得分:0)
您应该使用A *算法
要计算G成本,您可以使用您的值,但我建议1用于移动北,东,南和西。移动Norht-East,东南,西南和西北的sqrt(1 * 1 + 1 * 1)= sqrt(2)= 1.14。
好啧啧(试过我自己):
http://www.policyalmanac.org/games/aStarTutorial.htm
当你想要的不仅仅是一条道路时,另一个好的啧啧: (路径优化,通常这个tut中描述的方法会使路径更快,只有当你的角色可以在8个以上的方向移动时,这个tut才有效。)
http://www.gamasutra.com/view/feature/131505/toward_more_realistic_pathfinding.php