python-pathfinding icon indicating copy to clipboard operation
python-pathfinding copied to clipboard

Add elevators/ladders, steps and portals

Open brean opened this issue 2 years ago • 2 comments

Implement and describe ways to go from one grid to another, e.g. for different level of a building:

  • elevators or ladders are going from one node on one grid to another node in another grid on the same position,
  • steps are similar to ladders but can be connected to other nodes on the second grid
  • portals are the same as steps or elevators but without a cost.

Also add a markdown-page with a description describing the problem and how to use it.

For the implementation you need to extend the Node to have a list of connecting nodes in other grids. Then you need to inherit the Grid class and extend the check_neighbors function to look for those connections after all other neighbors are checked. Because for the algorithm the path isn't stored as a grid but as a graph where all neighboring cells are seen as edges so you just need another edge in the other grid.

brean avatar Feb 27 '23 10:02 brean

First iteration here: https://github.com/brean/python-pathfinding/commit/1278ff8b147f6501e83c53fe1f1167c427fa7287, we maybe also want to add a way to create new portals from a grid-like data structure

brean avatar Mar 05 '23 20:03 brean

...also add more examples, also visual ones (multiple level in https://github.com/brean/svelte-pyscript-pathfinding )

brean avatar Jun 07 '23 22:06 brean