Skip to main content

Yahtzee game engine

Project description

Build Status codecov Requirements Status PyPI version PyPI

pyhtzee

Yahtzee game engine supporting both regular (maximum 1505) and Joker rules (maximum 1575). 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.get((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.get((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.txtfile run the following command:

pip-compile -U --output-file requirements.txt setup.py requirements-dev.in

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

pyhtzee-1.1.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

pyhtzee-1.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file pyhtzee-1.1.0.tar.gz.

File metadata

  • Download URL: pyhtzee-1.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4

File hashes

Hashes for pyhtzee-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d5bcf1845d7cecd9dbdd0aac5b2de1fbf9d45808f4f965b8702a5ffad78c9bd3
MD5 2b35c7c25db163b4bd3a8d34f65df1f8
BLAKE2b-256 f34504713dbbd99410c8c5a4af65f7b1696f0f0e406bf69f87408434d33bf09c

See more details on using hashes here.

File details

Details for the file pyhtzee-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyhtzee-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4

File hashes

Hashes for pyhtzee-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3e4bf2db6bfc7af8934d86c16282427bab6123e98da8d0fa5209949a3c71f77
MD5 fa8ffa45ce2b999923ba74d6f909e398
BLAKE2b-256 5d41af383936020b1d629c5bd87ea45c03e8db7cb69f20e1db4d5dde5475af60

See more details on using hashes here.

Supported by

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