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-collectionmenu, 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-collectionto browse all installed titles. -
Console scripts – Call commands such as
games-blackjack,games-tic-tac-toe, orgames-farkledirectly. -
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
- Install dependencies with
pip install -e .[dev]. - Format code with
black .andruff check --fix .(line length 160). - Run static analysis using
mypy .and, optionally,radon cc .... - Execute the full test suite:
pytestorpytest --cov. Fixtures live undertests/fixtures. - Update documentation in
docs/and add entries toCHANGELOG.mdfor 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
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 games_collection-1.6.0.tar.gz.
File metadata
- Download URL: games_collection-1.6.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5da766c6fbe5aa7fca768729c8e5835ccc4f551631e2bd1c389fc660437f4f50
|
|
| MD5 |
0b44288eb476aadb653295d423a80831
|
|
| BLAKE2b-256 |
df33d4c7524598d477de1e6ef165b306740452aec375a54d69ee3f819597a02e
|
Provenance
The following attestation bundles were made for games_collection-1.6.0.tar.gz:
Publisher:
publish-pypi.yml on saint2706/Games
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
games_collection-1.6.0.tar.gz -
Subject digest:
5da766c6fbe5aa7fca768729c8e5835ccc4f551631e2bd1c389fc660437f4f50 - Sigstore transparency entry: 612119176
- Sigstore integration time:
-
Permalink:
saint2706/Games@87b7d2fc9e7215844197160d7c777f56568f64b4 -
Branch / Tag:
refs/tags/v1.6.0 - Owner: https://github.com/saint2706
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@87b7d2fc9e7215844197160d7c777f56568f64b4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file games_collection-1.6.0-py3-none-any.whl.
File metadata
- Download URL: games_collection-1.6.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2daa78a41b181353aa3ecdf2360be76015ec9d342cad80ad0d9f4a25b85fb63c
|
|
| MD5 |
7f03d7ddcfb72e59faa38e521fac9589
|
|
| BLAKE2b-256 |
cec5c8e62de08a39ad4596049f8cdf876b2b26b0b4dc692d5b760a8cdf9ef172
|
Provenance
The following attestation bundles were made for games_collection-1.6.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on saint2706/Games
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
games_collection-1.6.0-py3-none-any.whl -
Subject digest:
2daa78a41b181353aa3ecdf2360be76015ec9d342cad80ad0d9f4a25b85fb63c - Sigstore transparency entry: 612119189
- Sigstore integration time:
-
Permalink:
saint2706/Games@87b7d2fc9e7215844197160d7c777f56568f64b4 -
Branch / Tag:
refs/tags/v1.6.0 - Owner: https://github.com/saint2706
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@87b7d2fc9e7215844197160d7c777f56568f64b4 -
Trigger Event:
release
-
Statement type: