tvl-depot/users/grfn/xanthous
Griffin Smith 7437a18188 fix(xanthous): Only use alphabetic chars for menu items
Previously, we were using `smallestNotIn` for selecting new characters
for menu items with duplicate chatacters - this uses the 'Bounded'
instance for the type, which for Char meant the first character we would
always select was \NUL - making it look like the menu item had no
character, and making it impossible to actually select the menu item.
This introduces an AlphaChar newtype, which is a wrapper around Char
whose Bounded and Enum instances only use alphabetic characters (a-ZA-Z)
and uses that for menu characters instead.

Change-Id: If34ed9e9ce84f2bcb1cb87432cc6273f40b69f72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3229
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
..
.github refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
bench refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
build refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
src fix(xanthous): Only use alphabetic chars for menu items 2021-06-23 21:52:08 +00:00
test fix(xanthous): Only use alphabetic chars for menu items 2021-06-23 21:52:08 +00:00
.envrc refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
.gitignore refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
default.nix refactor(users/grfn): build all haskell packages without ifd 2021-04-13 10:34:24 +00:00
hie.yaml refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
LICENSE refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
nixpkgs.nix refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
package.yaml feat(xanthous): Track the volume and density of item types 2021-06-23 21:52:08 +00:00
pkg.nix feat(xanthous): Add a generator for random english syllables 2021-06-13 01:24:47 +00:00
README.org refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
Setup.hs refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
shell.nix feat(xanthous): Install qpdf in the shell 2021-06-18 17:51:43 +00:00
xanthous.cabal fix(xanthous): Only use alphabetic chars for menu items 2021-06-23 21:52:08 +00:00

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

Use lorri, or run everything in a nix-shell

# Build (for dev)
$ cabal new-build

# Run the game
$ cabal new-run xanthous

# Run tests
$ cabal new-run test

# Run a repl
$ cabal new-repl