0.3.0 • Published 7 years ago
@navispeed/async-a-star v0.3.0
a-star
Generic synchronous A* search algorithm.
Usage
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);Documentation
aStar(options)
Return Value
Returns an object that looks like this:
{
status: 'success', // one of ['success', 'noPath', 'timeout']
path: [startNode, node1, node2, ..., endNode],
cost: cost, // cost of path
}If status is:
success- a path was found andpathis an array of nodes including start and end.noPath- there is no path from start to end.pathis the path to the closest node to end that could be found.timeout- no path was found in the allotted time.pathis the path to the closest node that could be found in the allotted time.
options accepted
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 two nodesheuristic- function(node) that returns a heuristic guess of the cost fromnodeto an end.hash- function(node) that returns a unique string for a node. this is so that we can put nodes in heap and set data structures which are based on plain old JavaScript objects. Defaults to usingnode.toString.timeout- optional limit to amount of milliseconds to search before returning null.
The data type for nodes is unrestricted.
0.3.0
7 years ago