digitsensitive / astar-typescript Goto Github PK
View Code? Open in Web Editor NEWA* search algorithm in TypeScript
License: MIT License
A* search algorithm in TypeScript
License: MIT License
A mistake in readme documentation
The documentation says that the heuristic function can be set with the heuristicFunction
option in the constructor object, it is just heuristic
I thought of making a PR, but I feel dirty having a PR in a bigger project for just a "typo"
Edit: I have made a PR for a Cost feature for nodes, that also fixes this.
getting the following error when running yarn run-example
[webpack-cli] Error: Cannot find module 'Phaser'
Require stack:
...
Hi!
How i set the accepted tile on the grid? By default, the astar accept the 0 and 1, but I would like to add the 2, 3, 4 ecc up to 9
I'm having some issue experimenting with the library.
This is what I'm trying to do:
import { AStarFinder } from "astar-typescript"
let astar = new AStarFinder({
grid: {
width: 8,
height: 8
},
})
let startPos = {x: 0, y: 0}
let goalPos = {x: 3, y: 7}
let myPathway = astar.findPath(startPos, goalPos)
console.log(myPathway)
Thet output is:
Cannot read property '7' of undefined
It works if
goalPos = {x: 2, y:7}
I'm missing something?
let finder = new AStarFinder({
grid: {
matrix: [
[0, 0, 0, 0],
[0, 1, 1, 0],
[0, 1, 0, 1],
[0, 1, 1, 0]
]
},
heuristic: 'Manhatten',
diagonalAllowed: false
});
console.log(finder.findPath({ x: 0, y: 0 }, { x: 3, y: 3 }));
Because the path is blocked to target there is no path is found.
output: []
Having an option "getAsCloseAsPossible". Which will find to the path to x: 3, y: 1 position.
output: [[1, 0], [2, 0], [3, 0], [3, 1]]
Note:
It is, of course, possible to find an alternative target position manually. But the next available position to the target is the position x: 2, y: 2 which is also not reachable. The complexity of finding the closest available position is lower on finding it in the shortest path algorithm.
Simple patch and bump would be much appreciated :)
Hi!
Is it possible to use a weighted cost matrix instead of just 0/1 values?
astar-typescript/lib/finders/astar-finder.ts
Line 177 in 5062cbb
These are nasty in production.
Whether it should throw an error or return an empty array, I'm not sure. I actually prefer empty array.
Hi there I noticed that the path taken when allowing for diagonals is not always the most 'natural' route. Take the following example:
It makes more sense for a person to walk like this.
I think there should be a cost involved in taking a diagonal path. What are your thoughts about this? Would you accept a PR along these lines?
Hello, cool library!
Would it be possible to review the approach to importing lodash? I've seen the PR that recommended the es approach, and agree that was not the way to go.
I think there are two simple solutions:
Option 1. Import with a slash as recommended at the end of the official docs: https://lodash.com/per-method-packages
For example, in astar-finder.ts
:
import { minBy, remove } from 'lodash';
Becomes
import minBy from 'lodash/minBy';
import remove from 'lodash/remove';
This should dramatically cut down the bundle size.
Option 2. Alternatively, perhaps set lodash as a peer dependency?
At the moment, if I too use lodash, I end up with a double sized bundle, which would be removed when set as a peer.
(but I still prefer option 2, or maybe even both)
Example of a project using lodash + astar-typescript using lodash ๐ฑ
On first use, it seems fine.
On second, it always says Path could not be created.
.
Here is an example of the bug in action: https://repl.it/@krazyjakee/StrangeShorttermSales
I'm getting TypeError: undefined is not an object (evaluating 'this.gridNodes[position.y][position.x].getIsWalkable')
when I try to call aStarInstance.findPath(...)
. Looking at that error, it looks like the grid in configuration is reversed - shouldn't x
be the first dimension of the array, and y
the second dimension?
It's causing some weird behavior in my app and am wondering if this is intentional.
I'm importing the package into a typescript project that's compiled with rollup. Unfortunately, when I try to build with this referenced (import { AStarFinder } from "astar-typescript";
) rollup fails with the error:
Error: 'AStarFinder' is not exported by node_modules\astar-typescript\dist\astar.js, imported by game.ts
I've fiddled around with various plugin changes and options for plugin-commonjs
(stuff like adding it to the includes list to force it to be parsed as a CommonJS module but nothing seems to work. Can someone help me figure out the incantation to get this working with rollup?
This is more of a rollup question I suppose, but if you have any thoughts or ideas around ways to get it working that would be great!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.