Yahtzee game engine
Project description
pyhtzee
Yahtzee game engine supporting regular Yahtzee rules (maximum 1480), Joker rules (maximum 1575) and Yatzy aka. Scandinavian Yahtzee rules (maximum 305). Example code:
from pyhtzee import Pyhtzee
from pyhtzee.classes import Category, Rule
from pyhtzee.utils import category_to_action_map, dice_roll_to_action_map
pyhtzee = Pyhtzee(rule=Rule.FREE_CHOICE_JOKER)
print(pyhtzee.dice)
This shows the dice:
[2, 5, 6, 1, 6]
Next reroll dice 1, 2 and 5:
action = dice_roll_to_action_map[(True, True, False, False, True)]
pyhtzee.take_action(action)
print(pyhtzee.dice)
Now we have two pairs:
[4, 6, 6, 1, 1]
Let's reroll just the first die to see if we can get a full house:
action = dice_roll_to_action_map[(True, False, False, False, False)]
pyhtzee.take_action(action)
print(pyhtzee.dice)
Bingo!
[6, 6, 6, 1, 1]
Now let's choose the action for full house and check the scorecard:
action = category_to_action_map[Category.FULL_HOUSE]
reward = pyhtzee.take_action(action)
print(f'Reward: {reward}, Scorecard: {pyhtzee.scores}')
This shows that we got a reward of 25, which can be confirmed in the scorecard:
Reward: 25, Scorecard: {<Category.FULL_HOUSE: 8>: 25}
Developers guide
Pipenv is recommended for setting up a development environment. Prior to installing
pipenv
, creating a .env
file with the following contents is recommended:
PYTHONPATH=.
To install pipenv and the required dependencies run the following commands:
pip install pipenv
pipenv install -r requirements.txt
pipenv shell
Updating dependencies
requirements.txt
is dynamically generated using pip-compile
. To regenerate the
requirements.txt
file run the following command:
pip-compile -U --output-file requirements.txt setup.py requirements-dev.in
Pre-commit hooks
This project uses Git pre-commit hooks courtesy of pre-commit. To install run the following:
pre-commit install
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file pyhtzee-1.2.7.tar.gz
.
File metadata
- Download URL: pyhtzee-1.2.7.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1f034c64e990778c470d05b3d2c225daada317e30b21ca03bf0f1d866aa9481 |
|
MD5 | 55c32f4a74571553e523d0ae208f3dd4 |
|
BLAKE2b-256 | f841590eb6a4b8381e92103d8d5d8af87b08f17bc0e88741f0d3cf32d2f2f60a |
Provenance
File details
Details for the file pyhtzee-1.2.7-py3-none-any.whl
.
File metadata
- Download URL: pyhtzee-1.2.7-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23ccfd363c82bd7081ee291f3a75889e4c52a42fc51af2a7033840e2c89088d5 |
|
MD5 | 0aa0c66eadc134202b73b20a7843a2ec |
|
BLAKE2b-256 | 83d4b3883ee193e6b9e8b7051022bb761ff4a9c23a8e4648f320766765911bb7 |