///|
/// A small game-loop style pathfinding stub.
fn main {
  let source =
    #|S...
    #|##..
    #|...G
  let map = @pixelkit.parse_ascii_map(source).unwrap()
  let starts = map.points_with_id("start")
  let goals = map.points_with_id("goal")
  if starts.length() == 0 || goals.length() == 0 {
    println("map must contain one S start and one G goal")
    return
  }
  let start = starts[0]
  let goal = goals[0]
  let path = @pixelkit.astar(map, start, goal).unwrap().unwrap()
  let next_step = if path.length() > 1 { path[1] } else { start }
  println("start: (\{start.x()}, \{start.y()})")
  println("goal: (\{goal.x()}, \{goal.y()})")
  println("next step: (\{next_step.x()}, \{next_step.y()})")
  println(map.render_ascii(path~))
}