Implementación del algoritmo de búsqueda A* o A Estrella en Javascript.
Demo
Ejemplo de uso:
let grid = new Table(cols, rows);
... // Llenar tablero
const astar = new AStar(grid);
Para instanciar la clase AStar debemos pasarle al constructor una implementación de la clase Grid, en la que se representan los obstáculos del tablero. (Ver Table como referencia de implementación).
let n1 = grid.getNode(x1, y1); // Obtenemos el nodo 1 en la posición x1, y1
let n2 = grid.getNode(x2, y2); // Obtenemos el nodo 2 en la posición x2, y2
const route = astar.route(n1, n2); // Cálculo del camino más corto
Finalmente, obtenemos el camino más corto entre dos puntos invocando el método route de astar, pasando como parámetros los nodos que representan dichos puntos.
Si la ruta es accesible se retorna un arreglo con las posiciones que conforman el camino, de lo contrario se retorna null.
Código fuente
Este es el código fuente del proyecto: