Los algoritmos de laberinto de los laberintos de Jamis Buck para programadores, implementados en Clojure.
Vea en acción en http://glv.github.io/snergly.
Estoy haciendo esto como un proyecto divertido para mejorar mis habilidades de Clojure.
Me gustaría trabajar a través de todos los algoritmos de laberinto; Ya veo suficiente del mismo tipo de complejidad para lidiar con eso, creo que esto me ayudará con algunas de las luchas que tengo con Cló.
Esta también es una buena excusa para que yo juegue con Clojurescript y OM, para construir pantallas dinámicas que muestren los algoritmos de generación de laberinuras en acción, animando el flujo de los algoritmos a medida que procesan los laberintos.
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 obtener un entorno de desarrollo interactivo:
lein run -m clojure.main script/figwheel.clj
y abra su navegador en Localhost: 3449. Esto se compilará automáticamente y enviará todos los cambios al navegador sin la necesidad de recargar. Después de completar el proceso de compilación, obtendrá un navegador conectado repl. Una manera fácil de intentarlo es:
(js/alert "Am I connected?")
Y debería ver una alerta en la ventana del navegador.
Para limpiar todos los archivos compilados:
lein clean
Para crear una producción de producción:
lein cljsbuild once min
Y abra su navegador en resources/public/index.html . No obtendrá una recarga en vivo, ni un repl.
Copyright © 2015 Glenn Vanderburg
Distribuido bajo la licencia pública de Eclipse, ya sea la versión 1.0 o (a su opción) cualquier versión posterior.