Generic synchronous A* search algorithm
npm install a-starGeneric synchronous A search algorithm.
``js`
var aStar = require('a-star');
// if this is going to take a while you may want to child_process.fork
// and pass the results to the parent process
// see below for options
var path = aStar(options);
console.log(path);
aStar(options)
Returns an object that looks like this:
`js`
{
status: 'success', // one of ['success', 'noPath', 'timeout']
path: [startNode, node1, node2, ..., endNode],
}
If status is:
* success - a path was found and path is an array of nodes including startnoPath
and end.
* - there is no path from start to end. path is the path to thetimeout
closest node to end that could be found.
* - no path was found in the allotted time. path is the path to
the closest node that could be found in the allotted time.
* start - the start nodeisEnd
* - function(node) that returns whether a node is an acceptable endneighbor
* - function(node) that returns an array of neighbors for a nodedistance
* - function(a, b) that returns the distance cost between twoheuristic
nodes
* - function(node) that returns a heuristic guess of the costnode
from to an end.hash
* - function(node) that returns a unique string for a node. this isnode.toString
so that we can put nodes in heap and set data structures which are based
on plain old JavaScript objects. Defaults to using .timeout` - optional limit to amount of milliseconds to search before
*
returning null.
The data type for nodes is unrestricted.