Алгоритмы лабиринта от лабиринтов Jamis Buck для программистов, внедренных в Clojure.
Смотрите в действии на http://glv.github.io/snergly.
Я делаю это как забавный проект, чтобы улучшить свои навыки Clojure.
Я хотел бы проработать все сами алгоритмы лабиринта; Я уже вижу достаточно такой же сложности, чтобы справиться с тем, что я думаю, что это поможет мне с некоторыми из проблем, с которыми я сталкиваюсь с Кло.
Это также приятное оправдание для меня, чтобы играть с Clojurescript и OM, чтобы создать динамические дисплеи, которые показывают алгоритмы генерации лабиринта в действии, анимируя поток алгоритмов при обработке лабиринтов.
Snergly: run and print a maze generation algorithm.
Usage: lein run [options] algorithm
Options:
-c, --cell-size PIXELS 10 Size of maze cells. Ignored when rendering as text.
-d, --distances START Display result maze with distance labels from a starting cell (e.g., 2,2).
-h, --help
-l, --longest Show the longest path through the maze.
-o, --output FILENAME Write output to an image file (format defined by extension)
-p, --path-to END Result maze should show the path from START to END (requires -d).
-s, --size DIMENS [5 5] Grid size (e.g. 5 or 8x5)
Algorithms:
aldous-broder
binary-tree
hunt-and-kill
sidewinder
wilsons
all
Чтобы получить интерактивную среду разработки:
lein run -m clojure.main script/figwheel.clj
и откройте свой браузер по адресу Localhost: 3449. Это будет автоматически компилировать и отправить все изменения в браузер без необходимости перезагрузки. После завершения процесса компиляции вы получите подключенную реплику браузера. Простой способ попробовать это:
(js/alert "Am I connected?")
И вы должны увидеть предупреждение в окне браузера.
Чтобы очистить все скомпилированные файлы:
lein clean
Чтобы создать производственную сборку:
lein cljsbuild once min
И откройте свой браузер в resources/public/index.html . Вы не получите перезагрузку в прямом эфире, ни реплику.
Copyright © 2015 Гленн Вандербург
Распределено по общедоступной лицензии Eclipse либо версии 1.0, либо (по варианту) любой более поздней версии.