Metadata-Version: 2.1
Name: jjc-card-game
Version: 0.0.3
Summary: A very simple card game
Home-page: https://github.com/jonathanchukinas/card_game
License: UNKNOWN
Author: Jonathan Chukinas
Author-email: chukinas@gmail.com
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Environment :: Console
Classifier: Topic :: Games/Entertainment :: Board Games
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Requires-Dist: click
Requires-Dist: colorama
Requires-Dist: PTable
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: tox; extra == "test"
Provides-Extra: test

# 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:
```powershell
pip install jjc-card-game
```

## Play
```powershell
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.
```powershell
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:
```powershell
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:
```powershell
pytest
``` 

## Built With
[python](https://www.python.org/) and python packages:
- [click](https://click.palletsprojects.com) 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](https://github.com/jonathanchukinas/card_game/blob/master/LICENSE) file for details

## Acknowledgements
- **Brian Okken** for his [Test & Code](https://testandcode.com/81) podcast and [Python Testing with pytest](https://pragprog.com/book/bopytest/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](http://shop.oreilly.com/product/0636920032519.do), which taught me much of what I know about python under the hood, dunder methods, lru cache, and so much more.
