CatchFish is a two-player educational math game built with Python and Kivy.
Players catch moving number and operator fish, assemble arithmetic expressions, and compare the resulting values.
- Two-player local competition
- Configurable match length from 1 to 10 rounds
- Digit-count and absolute-value comparison modes
- Three-hit rare fish that grants a double-value bonus
- Decimal arithmetic with a 20-digit comparison cap
- Touch-oriented portrait interface
- Python 3.10 or later
- Kivy 2.3.1
python -m pip install -r requirements.txt
python main.pyCatchFish has been packaged, signed, installed, and tested on a physical Android 10 device in portrait orientation.
Current Android build:
- Architecture:
arm64-v8a - Package format: signed Release APK
- Minimum verified environment: Android 10
Testing on additional devices and Android versions has not yet been completed.
Fish values are hidden during normal play.
$env:CATCHFISH_DEBUG = "1"
python main.py$env:CATCHFISH_VISUAL_DEBUG = "1"
$env:CATCHFISH_SHOW_VALUES = "1"
$env:CATCHFISH_DESKTOP_TEST = "1"
python main.pyDesktop Test Mode uses a fixed 360 × 760 portrait window and accepts left-click fish hits only.
The round-count field accepts decimal digits and clamps the value from 1 to 10.
Clear the environment variables or set them to 0 to return to normal play.
CatchFish/
├── app/ # Application startup and root composition
├── assets/
│ └── images/ # Image resources
├── calc/ # Safe arithmetic evaluation
├── controllers/ # Input, menu, gameplay, and timing control
├── debug/ # Development settings and logging
├── game/ # Game state, rules, fish, and session data
├── graphics/ # Canvas and background helpers
├── ui/ # Kivy user-interface components
├── main.py # Executable entry point
├── buildozer.spec # Android build configuration
├── requirements.txt # Python dependencies
├── pyproject.toml # Python tooling configuration
├── ARCHITECTURE.md # Internal architecture
├── SPECIFICATION.md # Current gameplay specification
├── IDEAS.md # Future development ideas
└── LICENSE # MIT License for code and documentation
Some visual assets used in this project were generated with Google Gemini and subsequently selected, edited, or incorporated by LemonWater.
This project is not affiliated with, endorsed by, or sponsored by Google.
The source code and documentation in this repository are licensed under
the MIT License. See the LICENSE file for details.
Images, graphics, characters, icons, and other visual assets in the
assets/ directory are excluded from the MIT License.
Unless otherwise stated, those assets may not be copied, modified, redistributed, sublicensed, or used commercially without prior permission from LemonWater.
Developed by LemonWater.