{"_id":"javascript-astar","_rev":"4-5d7d68d05727994bca9b4dfec80010d1","name":"javascript-astar","description":"astar search algorithm in JavaScript","dist-tags":{"latest":"0.4.1"},"versions":{"0.4.0":{"name":"javascript-astar","version":"0.4.0","description":"astar search algorithm in JavaScript","main":"./astar.js","repository":{"type":"git","url":"git://github.com/bgrins/javascript-astar.git"},"keywords":[],"author":{"name":"Brian Grinstead"},"license":"MIT","bugs":{"url":"https://github.com/bgrins/javascript-astar/issues"},"homepage":"http://bgrins.github.io/javascript-astar","devDependencies":{"grunt":"~0.4.5","grunt-contrib-qunit":"~0.5.0","grunt-contrib-jshint":"~0.10.0"},"gitHead":"6ce27f114219003184de49cc143d11235d28151c","_id":"javascript-astar@0.4.0","scripts":{},"_shasum":"dde28df86b51f40d0a237c6c0cb12daf7ed9d7c9","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.2","_npmUser":{"name":"bgrins","email":"briangrinstead@gmail.com"},"maintainers":[{"name":"bgrins","email":"briangrinstead@gmail.com"}],"dist":{"shasum":"dde28df86b51f40d0a237c6c0cb12daf7ed9d7c9","tarball":"https://registry.npmjs.org/javascript-astar/-/javascript-astar-0.4.0.tgz","integrity":"sha512-gA5mI9uZqTfo/gBf3A0u+Kie9LlTai3apUtpm0497m2PqbM75bFhhSj1BmqedbwHk4XayPf8cMYl28c3gr0LCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrSKD7j776eFeiUYjnfQAbnkKGYJphUAHI7DGRpwazawIhAOHYIxyM01Rfb9eEvXQ2Exx0uB9qy3nvH+UbrWqLDJAF"}]}},"0.4.1":{"name":"javascript-astar","version":"0.4.1","description":"astar search algorithm in JavaScript","main":"./astar.js","repository":{"type":"git","url":"git://github.com/bgrins/javascript-astar.git"},"keywords":[],"author":{"name":"Brian Grinstead"},"license":"MIT","bugs":{"url":"https://github.com/bgrins/javascript-astar/issues"},"homepage":"http://bgrins.github.io/javascript-astar","devDependencies":{"grunt":"~0.4.5","grunt-contrib-qunit":"~0.5.0","grunt-contrib-jshint":"~0.10.0"},"gitHead":"3543fc06a933715bb59ae9f6be2bc87a9faf2bd6","_id":"javascript-astar@0.4.1","scripts":{},"_shasum":"e49dd9a1535c9a98675091f7258e69d983811703","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.2","_npmUser":{"name":"bgrins","email":"briangrinstead@gmail.com"},"maintainers":[{"name":"bgrins","email":"briangrinstead@gmail.com"}],"dist":{"shasum":"e49dd9a1535c9a98675091f7258e69d983811703","tarball":"https://registry.npmjs.org/javascript-astar/-/javascript-astar-0.4.1.tgz","integrity":"sha512-/SlmWkL/Ww0tu737MLvKMe2LC4sr081bL4YOgwgugFbKUjxTuQ6WLzGkibCo4buubWo0yT52bbHZlhwcwAYCzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEfx2efIruu5GtlGGNpGWi/AMrFJaLqd+rCtufxXrxAvAiEA4QMuBuzYyXqlLbgvTKpM4G7G4RXJnd8mWqD6mIWj9nU="}]}}},"readme":"# javascript-astar\n\n## An implementation of the A* Search Algorithm in JavaScript\n\nSee a demo at http://www.briangrinstead.com/files/astar/\n\n## Sample Usage\n\nIf you want just the A* search code (not the demo visualization), use code like this http://gist.github.com/581352\n```js\n<script type='text/javascript' src='astar.js'></script>\n<script type='text/javascript'>\n\tvar graph = new Graph([\n\t\t[1,1,1,1],\n\t\t[0,1,1,0],\n\t\t[0,0,1,1]\n\t]);\n\tvar start = graph.grid[0][0];\n\tvar end = graph.grid[1][2];\n\tvar result = astar.search(graph, start, end);\n\t// result is an array containing the shortest path\n\tvar graphDiagonal = new Graph([\n\t\t[1,1,1,1],\n\t\t[0,1,1,0],\n\t\t[0,0,1,1]\n\t], { diagonal: true });\n\t\n\tvar start = graphDiagonal.grid[0][0];\n\tvar end = graphDiagonal.grid[1][2];\n\tvar resultWithDiagonals = astar.search(graphDiagonal, start, end, { heuristic: astar.heuristics.diagonal });\n\t// Weight can easily be added by increasing the values within the graph, and where 0 is infinite (a wall)\n\tvar graphWithWeight = new Graph([\n\t\t[1,1,2,30],\n\t\t[0,4,1.3,0],\n\t\t[0,0,5,1]\n\t]);\n\tvar startWithWeight = graphWithWeight.grid[0][0];\n\tvar endWithWeight = graphWithWeight.grid[1][2];\n\tvar resultWithWeight = astar.search(graphWithWeight, startWithWeight, endWithWeight);\n\t// resultWithWeight is an array containing the shortest path taking into account the weight of a node\n</script>\n```\nA few notes about weight values:\n\n1. A weight of 0 denotes a wall.\n2. A weight cannot be negative.\n3. A weight cannot be between 0 and 1 (exclusive).\n4. A weight can contain decimal values (greater than 1).\n\n### Original (slower) implementation\n\nThe original version of the algorithm used a list, and was a bit clearer but much slower.  It was based off the [original blog post](http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript).  The code is available at: https://github.com/bgrins/javascript-astar/tree/0.0.1/original-implementation.\n\nThe newest version of the algorithm using a Binary Heap.  It is quite faster than the original.\nhttp://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript-updated\nBinary Heap taken from http://eloquentjavascript.net/appendix2.html (license: http://creativecommons.org/licenses/by/3.0/)\n\n\n## Running the test suite\n\n[![Build Status](https://travis-ci.org/bgrins/javascript-astar.png?branch=master)](https://travis-ci.org/bgrins/javascript-astar)\n\nIf you don't have grunt installed, follow the [grunt getting started guide](http://gruntjs.com/getting-started) first.\n\nPull down the project, then run:\n\n\t\tnpm install\n\t\tgrunt\n","maintainers":[{"name":"bgrins","email":"briangrinstead@gmail.com"}],"time":{"modified":"2022-06-19T03:51:47.083Z","created":"2015-12-13T02:58:09.401Z","0.4.0":"2015-12-13T02:58:09.401Z","0.4.1":"2015-12-13T03:03:25.313Z"},"homepage":"http://bgrins.github.io/javascript-astar","keywords":[],"repository":{"type":"git","url":"git://github.com/bgrins/javascript-astar.git"},"author":{"name":"Brian Grinstead"},"bugs":{"url":"https://github.com/bgrins/javascript-astar/issues"},"license":"MIT","readmeFilename":"README.md"}