| Crates.io | cmaze |
| lib.rs | cmaze |
| version | 0.9.0 |
| created_at | 2023-04-12 14:23:20.765808+00 |
| updated_at | 2025-04-25 10:47:54.702062+00 |
| description | Core of tmaze game |
| homepage | |
| repository | https://github.com/ur-fault/tmaze |
| max_upload_size | |
| id | 836962 |
| size | 114,669 |
Simple multiplatform maze solving game for terminal, written entirely in Rust
cargo install tmaze and run with tmaze

Responsive to terminal size
Fire banger OST from step
Configurable maze sizes through config file
Configurable colors
Various maze generation algorithms: Randomized Kruskal's, Depth-First Search
Timer and move counter
Show visited places
Spectator mode, where you can fly and see the gameboard
Floors and 3D mazes (that's what spectator mode is mainly for)
Since I'm a student, I've got to attend classes, but even when I'm listening I wanted to do something more than sit there. Also at the time this project came to life, I started to learn Rust, so it seemed to make sense to make some kind of game, but since my notebook is not the newest and I wanted to make it as lightweight as possible, I decided to make it for a terminal. It's also pretty cool.
Another requirement was that it would be multiplatform so that I could play it anywhere. A bonus was that I could play it on the server.
And it ended up as maze solving game because I just couldn't find any other.
scoop bucket add games if you did not beforescoop install games/tmazescoop bucket add henshouse https://github.com/henshouse/henshouse-scoop if you did not beforescoop install henshouse/tmazeTMaze uses cargo features to enable/disable some features. In Github release binaries, they are all enabled. From version 1.14.0, all features are enabled by default and should be disabled manually. To disable them, use --no-default-features flag. After disabling them, enable specific ones you want with --features <feature1>,<feature2>,... flag.
The features are:
After cargo command add --features to enable features, such as updates. To disable default features, such as hashbrown, add --no-default-features. To enable all featueres add --all-features.
cargo install tmaze~/.cargo/bin in the PATH, so that you don't need full path to run itcargo run --release to run (or you can just build it with cargo build --release without runing it)./target/release/ with name tmaze or tmaze.exe , which you can move or link somewhere elsedocker build -t tmaze . --tag tmaze inside the repository folder, image is not published on Docker Hub yetdocker run --rm -it tmazedocker run -it --rm -v tmaze_data:/root/.config/tmaze tmaze
docker run --rm -it -v tmaze_data:/root thinca/vim:latest