Skip to main content

A comprehensive collection of classic card, paper, dice, logic, and word games with AI opponents and both CLI and GUI interfaces

Project description

Games Collection

The Games Collection brings together more than forty classic games implemented in Python. Card tables, pen-and-paper puzzles, dice showdowns, word challenges, and logic brainteasers all live in a single repository with shared engines, artificial intelligence opponents, and optional graphical interfaces.

The project targets players who want quick access to familiar favourites and contributors who enjoy extending game mechanics or experimenting with strategy algorithms.

Highlights

  • Broad catalogue – 49 playable games spanning card, paper, dice, logic, and word genres. See the Games Catalogue for the full list.
  • Multiple interfaces – Launch titles from the command line, via the games-collection menu, or with Tkinter/PyQt graphical front ends where available.
  • Reusable infrastructure – Common modules provide AI strategies, save/load support, event dispatch, replay recording, accessibility helpers, and more.
  • Educational tooling – Several games ship with hint systems, tutorials, and probability calculators that make the collection a useful teaching aid.

Installation

From PyPI

Install the published package to get the latest stable release:

pip install games-collection

Optional extras install the GUI stack and developer tooling:

pip install games-collection[gui]
pip install games-collection[dev]

From Source

Working on the codebase or trying unreleased features? Clone the repository and perform an editable install:

git clone https://github.com/saint2706/Games.git
cd Games
pip install -e .[dev]

Running games

After installation you have several options:

  • Interactive menu – Run games-collection to browse all installed titles.

  • Console scripts – Call commands such as games-blackjack, games-tic-tac-toe, or games-farkle directly.

  • Module execution – Use Python’s module runner when you want additional flags or to inspect help text:

    python -m card_games.blackjack --help
    python -m paper_games.connect_four --gui
    python -m dice_games.craps
    

Many games accept a --gui flag to launch graphical interfaces. PyQt5 is the primary GUI framework, with Tkinter available as a fallback. You can select a specific framework with --gui-framework pyqt5 or --gui-framework tkinter.

Repository layout

card_games/      Card-based titles such as Blackjack, Poker, Uno, and Hearts
paper_games/     Board and pencil games including Chess, Sudoku, and Yahtzee
dice_games/      Dice-driven experiences like Craps and Farkle
logic_games/     Puzzle boxes such as Sokoban and Minesweeper
word_games/      Vocabulary challenges including Crossword and Trivia
common/          Shared engines, AI strategies, GUIs, persistence, accessibility
scripts/         Launchers registered as console entry points
docs/            Sphinx documentation (rewritten from scratch)
examples/        Sample integrations and automation snippets
tests/           Automated test suite mirroring the package structure

Development workflow

  1. Install dependencies with pip install -e .[dev].
  2. Format code with black . and ruff check --fix . (line length 160).
  3. Run static analysis using mypy . and, optionally, radon cc ....
  4. Execute the full test suite: pytest or pytest --cov. Fixtures live under tests/fixtures.
  5. Update documentation in docs/ and add entries to CHANGELOG.md for notable changes.

Pre-commit hooks (pre-commit install) help keep commits consistent.

Documentation

This README provides a high-level summary. Detailed user and developer guides live in the Sphinx documentation. Build the HTML site with:

cd docs
pip install -r requirements.txt
make html

Generated pages will be available in docs/build/html/index.html.

Contributing

Contributions are welcome! Please open an issue or discussion to propose new ideas, then follow the steps in CONTRIBUTING.md. Remember to include tests and documentation updates alongside code changes.

License

This project is released under the MIT License. See LICENSE for full terms.

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

games_collection-1.2.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

games_collection-1.2.1-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file games_collection-1.2.1.tar.gz.

File metadata

  • Download URL: games_collection-1.2.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for games_collection-1.2.1.tar.gz
Algorithm Hash digest
SHA256 01bebf285a6d22933558796560492973fa98ffec6fbce967c3f00e13dcc7d378
MD5 ac5bafe2b9b9d7db05e28bc13cd10f83
BLAKE2b-256 6697c332f7ec288f193bed1c8bde86e706c153c1b9b9120b3731f75b0cbc7f85

See more details on using hashes here.

Provenance

The following attestation bundles were made for games_collection-1.2.1.tar.gz:

Publisher: publish-pypi.yml on saint2706/Games

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file games_collection-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for games_collection-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c5064b631b9bf9ecf924731757e06d09361aa6e699f4882f193f0886f62bdf5
MD5 60b61ff3334c090d89525af81e6504c9
BLAKE2b-256 096cacaaa22086c59b4eb9fec7570b3949beca440d1a611d447a2aebf1de2355

See more details on using hashes here.

Provenance

The following attestation bundles were made for games_collection-1.2.1-py3-none-any.whl:

Publisher: publish-pypi.yml on saint2706/Games

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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