No description
e76567b9e7
Add a dungeon level generator, which: 1. generates an infinite sequence of rectangular rooms within the dimensions of the level 2. removes any duplicates from that sequence 3. Generates a graph from the delaunay triangulation of the centerpoints of those rooms 4. Generates the minimum-spanning-tree of that delaunay triangulation, with weights given by line length in points 5. Adds back a subset (default 10-15%) of edges from the delaunay triangulation to the graph 6. Uses the resulting graph to draw corridors between the rooms, using a random point on the near edge of each room to pick the points of the corridors |
||
---|---|---|
.github | ||
build | ||
src | ||
test | ||
.gitignore | ||
default.nix | ||
haskell-overlay.nix | ||
hie.sh | ||
LICENSE | ||
nixpkgs.nix | ||
package.yaml | ||
pkg.nix | ||
README.org | ||
Setup.hs | ||
shell.nix | ||
xanthous.cabal |
Xanthous
Building
$ nix build
Running
$ ./result/bin/xanthous [--help]
Keyboard commands
Keyboard commands are currently undocumented, but can be found in [this file. Movement uses the nethack-esque hjklybnu.
Development
$ nix-shell
# Build (for dev)
[nix-shell:xanthous]$ cabal new-build
# Run tests
[nix-shell:xanthous]$ cabal new-run test
# Run a repl
[nix-shell:xanthous]$ cabal new-repl