A* 書いた

mizchi/path-finder.js

約110行。closeNodesを更新するときの手続き忘れて、wikipedia見ながら1時間ぐらい掛かってしまった。たるんどる。

A* - Wikipedia

PathFinder = require 'path-finder'
sample_hitmap = [
  [1, 1, 1, 1, 1, 1, 1]
  [1, 0, 0, 0, 0, 0, 1]
  [1, 0, 1, 0, 1, 0, 1]
  [1, 0, 1, 0, 1, 0, 1]
  [1, 0, 1, 0, 1, 1, 1]
  [1, 0, 1, 0, 0, 0, 1]
  [1, 0, 0, 1, 1, 0, 1]
  [1, 1, 1, 1, 1, 1, 1]
]

PathFinder.dumpHitmap sample_hitmap
finder = new PathFinder
start = [6, 1]
goal = [3, 5]
console.log 'result', finder.searchPath sample_hitmap, start, goal

なんかsubstackみたいに小さなライブラリ作りまくる人みたいになってる