This project is a simple javascript implementation of the A* search algorithm. It was mainly built to get my feet wet with Solid.js.
Use findPath
to find the shortest path between two points within a two-dimensional matrix.
import { findPath } from '@bedard/pathfinder'
const maze = [
[0, 0, 0, 0, 0],
[1, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 1],
[0, 0, 0, 0, 0],
]
const solution = findPath({
data: maze,
from: { row: 0, col: 0 },
to: { row: 4, col: 4 },
})
console.log(solution) // [{ row, col }, ...]
To optimize the solution, an optional heuristic function can be used. Included with this library are euclidean
and manhattan
distance helpers. When no heuristic
function is defined, it will use Dijkstra's algorithm.
import { euclidean, findPath } from '@bedard/pathfinder'
findPath({
data,
from,
to,
heuristic: (current, next) => euclidean(next, to), // <- prefer steps towards the target
})
Copyright (c) 2024-present, Scott Bedard