Skip to main content

JJC's Card Game

This is a simple card played over a series of round. Each round, players draw one card. The player with the highest card received 2 points. Players with penalty cards lose a point. First player to 21 points wins.

Installation

Make sure you have python 3.6 or higher installed, then:

pip install jjc-card-game

Play

jjc-card-game

Then follow the on-screen rules and instructions.

Or try these more advanced options:

  • jjc-card-game -d Jonathan Nicholas Austin to play a game with these three players. The -d speeds up gameplay by dealing all the cards at once.
  • jjc-card-game --help to see even more options

Development

Development tools: Windows 10, PowerShell, and PyCharm.

git clone https://github.com/jonathanchukinas/card_game.git
cd card_game
pip install flit            # for build, packaging
python -m venv .venv        # create virtual environment
.venv\scripts\activate      # activate virtual environment
flit install --pth-file     # set up editable install 

                            # modify source code
jjc-card-game               # run modified app
                            # repeat

deactivate                  # exit virtual environment

Running the tests

Test are written for pytest and automated by tox. Game logic has 95% test coverage, while the command-line interface / ouput has less than 50%.

To run all the tests:

pip install tox, pytest
cd path\to\project\directory
tox

Tests will be run against all these python versions, if you have them:

  • v3.6
  • v3.7
  • v3.8

For a faster way to run tests:

pytest

Built With

python and python packages:

  • click for created command line interface
  • PTable for generating pretty scorecard tables

Authors

  • Jonathan Chukinas - initial release

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgements

  • Brian Okken for his Test & Code podcast and Python Testing with pytest book, which jump-started my testing knowledge early in 2019 and recently helped me integrate pytest, flit, and tox together.
  • Luciano Ramalho for his outstanding Fluent Python, which taught me much of what I know about python under the hood, dunder methods, lru cache, and so much more.

Metadata

Release files for jjc-card-game 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jjc-card-game 0.0.2
File Size Uploaded
jjc-card-game-0.0.2.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jjc-card-game 0.0.2
File Interpreter ABI Platform
jjc_card_game-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 32.3 kB

Release files / jjc-card-game-0.0.2.tar.gz

Download URL jjc-card-game-0.0.2.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5236dd0143a6e84497e0f429f96dbb9047b179b8c952fab0366d342e08bf8cc5
BLAKE2b-256 checksum
How to use checksums
69cc6d59c8832f46910406e607f1aa3ed2446e31fadb6216884acf5a260486f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.22.0

Release files / jjc_card_game-0.0.2-py3-none-any.whl

Download URL jjc_card_game-0.0.2-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0005a47fdef315b5c8df840ccab457f1d5dff58272fdf47788ff6ceff7a4d71
BLAKE2b-256 checksum
How to use checksums
9d7d480b5734fc02a4a6b3671a794ab33b2d6debffe1047ce054ea118c45c2ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.22.0

Release history Release notifications | RSS feed

0.0.3

2 release files

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page