Skip to main content

A very simple card game

Project description

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.

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

jjc-card-game-0.0.3.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

jjc_card_game-0.0.3-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file jjc-card-game-0.0.3.tar.gz.

File metadata

  • Download URL: jjc-card-game-0.0.3.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for jjc-card-game-0.0.3.tar.gz
Algorithm Hash digest
SHA256 756abf8e265d8c1d9fe373f6ddb283150508939679be3b49433d8291a4a044c0
MD5 e9511af7f7dbf22c115774a30afd5e98
BLAKE2b-256 f9d6f20bf2c6b25d44515ed0d88242000063d8b445fd50c4f6f3e749d74b93d9

See more details on using hashes here.

File details

Details for the file jjc_card_game-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for jjc_card_game-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9dbfc7e664be365ac0e45964e5fc615d04c0cbf6bc98719aa34d25815dcb41e0
MD5 7e23b9ba4d697c6135e08449a0fdeb3c
BLAKE2b-256 311cfce501ff3477fa4b03716a3b562e099e68c4d3d5a3772a26409e215ce86d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page