Files
game-jam-2020/triple-dungeon/path.py
2020-04-20 03:59:15 -07:00

22 lines
762 B
Python

from pathfinding.core.diagonal_movement import DiagonalMovement
from pathfinding.core.grid import Grid
from pathfinding.finder.a_star import AStarFinder
def route(start, end, matrix) -> path:
"""
Take a matrix of the level in the form wighted numbers, a start and stop point, and return a path between them.
param: start: (x, y) location of the monster
param: end: (x, y) location of the player
param: matrix: a 2d list of the level. 0s are walls, numbers greater than 0 are weighted
"""
grid = Grid(matrix=matrix)
start = grid.node(start[0], start[1])
end = grid.node(end[0], end[1])
finder = AStarFinder(diagonal_movement=DiagonalMovement.always)
path, runs = finder.find_path(start, end, grid)
return path