A terminal-based zetamac-style arithmetic practice game
Project description
zetamac-py
A terminal clone of Zetamac, the timed mental-math arithmetic practice/quant trainer, built with Textual.
Screenshots
Overview
zetamac-py provides the core Zetamac gameplay loop in a terminal user interface, with local run history and replay functionality:
- Runs are stored locally in a SQLite database
- Replay mode allows stepping through the problems from any past run
- Replay Hardest re-runs the personally hardest questions (took the longest), allowing for targetted improvement
- Per-run analytics show which operations and problems took longest
- Number ranges and enabled operations are configurable without query strings
Features
- Timed rounds with configurable duration
- Addition, subtraction, multiplication, and division, individually toggleable
- Independently configurable number ranges for addition and multiplication problems
- Every run logged to a local SQLite database with per-problem timing
- Replay of any past run problem-by-problem, or direct replay of the hardest run
- Post-round and post-replay summaries with per-problem breakdown
- Keyboard-driven navigation (arrow keys / j-k, Enter to select, Esc/q to quit a round)
- Runs anywhere Python and a terminal are available; no browser required
Installation
Requires Python 3.10+.
git clone https://github.com/yaofanfish/zetamac-py.git
cd zetamac-py
pip install -e .
Or install directly with pip:
pip install zetamac-py
(Once published to PyPI — see Roadmap.)
Usage
Launch the app:
zetamac-py
From the main menu:
| Item | Description |
|---|---|
| Settings | Enable/disable operations, set number ranges, set round duration |
| Play | Start a timed round |
| Replay | Browse recent runs and replay one problem-by-problem |
| Replay Hardest | Replay the highest-scoring run |
| View Runs | Browse run history and inspect raw run data |
| Quit | Exit the app |
During a round, type an answer and press Enter; correct answers advance to the next problem automatically. Press q or Esc at any time to end the round early.
Configuration
Settings are stored at ~/.config/zetamac-py/settings.json and can be edited through the in-app Settings screen or by hand. Run history is stored in a SQLite database at ~/.local/share/zetamac-py/runs.db.
Roadmap
- Publish to PyPI
- Configurable keybindings
Contributions toward any of the above, or other proposals, are welcome — see below.
Contributing
Issues and pull requests are welcome.
git clone https://github.com/yaofanfish/zetamac-py.git
cd zetamac-py
pip install -e ".[dev,opt]"
License
Acknowledgments
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zetamac_py-0.1.0.tar.gz.
File metadata
- Download URL: zetamac_py-0.1.0.tar.gz
- Upload date:
- Size: 229.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3e18e885cbc790719a61b4d740ab41d0b16e255b0cb891ff3a8647f74bcec4f
|
|
| MD5 |
f1d1ae1112ae4b9c028cd33b3e43d1b2
|
|
| BLAKE2b-256 |
38aa40866fbca581712cd96a941b88b748ada2056e94b77be5efa3ed7948b44b
|
File details
Details for the file zetamac_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zetamac_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 104.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea696bce218b47909e100dcd8a1e8ee48be2ed00459e39998258ad12a9767a4f
|
|
| MD5 |
63f3e0f9a758e9e0ef7fe0aa9af3f5fd
|
|
| BLAKE2b-256 |
862c704dfa28b86f1326025eb0f356c60c39747d85c6bfec8fa18fb569828648
|