Os algoritmos do labirinto de Mazes para programadores de Jamis Buck, implementados em Clojure.
Veja em ação em http://glv.github.io/snergly.
Estou fazendo isso como um projeto divertido para melhorar minhas habilidades de clojure.
Eu gostaria de trabalhar com todos os algoritmos do labirinto; Eu já vejo o suficiente do mesmo tipo de complexidade para lidar com isso, acho que isso me ajudará com algumas das lutas que estou enfrentando com Cló.
Esta também é uma boa desculpa para eu brincar com CloJurescript e OM, para criar monitores dinâmicos que mostram os algoritmos de geração do labirinto em ação, animando o fluxo dos algoritmos ao processar os mania.
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
Para fazer uma execução de um ambiente de desenvolvimento interativo:
lein run -m clojure.main script/figwheel.clj
e abra seu navegador no localhost: 3449. Isso compilará automaticamente e enviará todas as alterações ao navegador sem a necessidade de recarregar. Após a conclusão do processo de compilação, você receberá um REPLET conectado ao navegador. Uma maneira fácil de experimentar é:
(js/alert "Am I connected?")
E você deve ver um alerta na janela do navegador.
Para limpar todos os arquivos compilados:
lein clean
Para criar uma corrida de construção de produção:
lein cljsbuild once min
E abra seu navegador em resources/public/index.html . Você não receberá recarregamento ao vivo, nem um repl.
Copyright © 2015 Glenn Vanderburg
Distribuído sob a licença pública Eclipse, versão 1.0 ou (por sua opção) qualquer versão posterior.