fn main {
  let grid = @path.Grid::from_ascii([
    "S....",
    ".###.",
    "...#G",
    ".#...",
  ], '#')
  let result = @path.astar_grid(
    grid,
    @path.Point::{ x: 0, y: 0 },
    @path.Point::{ x: 4, y: 2 },
    @path.Four,
    @path.Manhattan,
  )
  if result.found {
    println("found path with cost \{result.cost} and \{result.nodes.length()} nodes")
  } else {
    println("no path")
  }
}