Карта приоритета clojure как застегнуть
Поэтому я делаю поиск A* по восьмерке, и мне нужно найти соседей по пустому тайлу и поместить их в карту приоритетов, например, с ценой на Манхэттен, если у меня есть.
(3 2 1 0 4 5 6 7 8)
which would look like [3 2 1]
[0 4 5]
[6 7 8]
пустые соседи 0 плиток были бы (: вверх: влево: вниз) проблема в том, что я не знаю, как сделать карту приоритетов с соседями и стоимостью Манхэттена в качестве ключа. Я попытался использовать zipmap, но, похоже, он не работал, хотя я мог ошибаться.
В конце я хотел бы получить его в таком виде: (priority-map: up глобальная стоимость Manahtten, если переместил 3 вниз: down и т.д....
1 ответ
Напишите функцию для manhatten-cost и используйте priority-map-by