A CLI application to play caribbean dominoes and learn how to get better so you can beat your friends IRL!
A beautiful, interactive CLI application to play Caribbean dominoes and learn how to get better so you can beat your friends IRL!
git clone <repository-url>
cd domino-game-cli
uv sync
Thatโs it! Use uv run python main.py to start playing (see Usage below).
# Play with default settings (first to 200 points)
uv run python main.py play
# Quick mode (first to 100 points)
uv run python main.py play --quick
# Custom target score
uv run python main.py play --target 150
# Show all available commands
uv run python main.py --help
# View game rules
uv run python main.py rules
# About the game
uv run python main.py about
domino-game-cli/
โโโ domino_game/ # Main package
โ โโโ models/ # Domain models (Domino, Board, Player)
โ โโโ game/ # Game engine & logic (AI, scoring, deck)
โ โโโ ui/ # User interface components
โ โ โโโ renderer/ # Full-screen rendering
โ โโโ cli.py # CLI commands
โโโ tests/ # Organized test suite
โ โโโ test_models/
โ โโโ test_game/
โ โโโ test_ui/
โโโ main.py # Entry point
โโโ pyproject.toml # Project configuration
Install dev dependencies first:
uv sync --extra dev
Run all tests with pytest:
uv run pytest # Run all tests
uv run pytest -v # Verbose output
uv run pytest -m "not slow" # Skip slow tests
Run specific tests:
# Test specific directory
uv run pytest tests/test_game/
# Test specific file
uv run pytest tests/test_models/test_domino.py
# Test specific function
uv run pytest tests/test_game/test_ai.py::test_simple_strategy
Run with coverage:
uv run pytest --cov=domino_game --cov-report=term-missing
Continuous Integration runs automatically on:
mainmain branchThe CI tests the package on Python 3.9, 3.10, 3.11, and 3.12.
| Command | Options | Description |
|---|---|---|
play |
--target/-t, --quick/-q |
Start a new game |
rules |
- | Display game rules |
about |
- | About the application |
The game features:
Contributions are welcome! Feel free to submit issues and enhancement requests.
See LICENSE file for details.
Version 2.0 - Enhanced Edition ๐