Skip to main content

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.

Python Textual License

Screenshots

Settings Play

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

GPL-v3

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

zetamac_py-0.1.0.tar.gz (229.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zetamac_py-0.1.0-py3-none-any.whl (104.4 kB view details)

Uploaded Python 3

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

Hashes for zetamac_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c3e18e885cbc790719a61b4d740ab41d0b16e255b0cb891ff3a8647f74bcec4f
MD5 f1d1ae1112ae4b9c028cd33b3e43d1b2
BLAKE2b-256 38aa40866fbca581712cd96a941b88b748ada2056e94b77be5efa3ed7948b44b

See more details on using hashes here.

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

Hashes for zetamac_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea696bce218b47909e100dcd8a1e8ee48be2ed00459e39998258ad12a9767a4f
MD5 63f3e0f9a758e9e0ef7fe0aa9af3f5fd
BLAKE2b-256 862c704dfa28b86f1326025eb0f356c60c39747d85c6bfec8fa18fb569828648

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page