我在过去几周一直在开发一个多人在线HTML5游戏,使用nodejs
和websockets
。
我有一个问题困扰了我一段时间。假设有一个由数组实现的瓦片地图(如下所示)。
1或棕色瓷砖 - 道路上有障碍物,玩家不能通过它。
0或绿色瓷砖 - 是允许玩家移动的自由路径。
通过调用以下方式访问地图上的任何瓦片:
array[x][y]
我想创建最快的算法,以找出地图上两点之间最短的路径(如果存在)。您会如何解决这个问题?我知道这是一个常见的问题。
例子:
位于位置 (1,7) 的玩家发射一颗子弹,带有某种 AI,直向位于位置 (6,0) 的敌方玩家。子弹必须计算出两个玩家之间的最短路径,如果没有,则会撞到墙上爆炸。
问题:
如何高效地找到两点之间的最短路径?