https://github.com/jackdbd/mazes
https://github.com/jackdbd/mazes
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jackdbd/mazes
- Owner: jackdbd
- License: epl-1.0
- Created: 2020-05-26T17:14:43.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-09-21T20:56:53.000Z (over 1 year ago)
- Last Synced: 2025-07-14T00:26:45.130Z (11 months ago)
- Language: Clojure
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mazes
Maze algorithms from Jamis Buck's book: [Mazes for Programmers](http://www.mazesforprogrammers.com/).
## Setup & Installation
This projects uses [Nix](https://nixos.org/) and [devenv](https://devenv.sh/) to define a reproducible developer environment.
> [!NOTE]
> You can install Nix and devenv by following the instructions in the [devenv documentation](https://devenv.sh/getting-started/).
If you have Nix and devenv installed, the developer environment will be automatically activated when you enter the repository root directory (thanks to direnv). You will just need to execute `direnv allow` the first time you enter the repository root directory.
The `devenv.nix` file contains some tests to validate that the developer environment is the one you would expect. You can run these tests using the following command:
```sh
devenv test
```
The Clojure dependencies of this project are declared in a [`deps.edn`](https://clojure.org/guides/deps_and_cli) file. You can install all the extra dependencies of the `dev` alias using this command:
```sh
clj -A:dev
```
## Managing the project
This projects can be managed using the [babashka tasks](https://book.babashka.org/#tasks) defined in a [`bb.edn`](https://book.babashka.org/#_bb_edn) file. You can view the list of tasks using this command:
```sh
bb tasks
```
Print all mazes in the terminal, in ASCII art:
```sh
bb run mazes:ascii # run can be omitted
```
## Notes
Use Calva to [start a project REPL and jack-in](https://calva.io/connect/#jack-in-let-calva-start-the-repl-for-you), and pick `deps.edn` as the project type.