Skip to main content

Yahtzee game engine

Project description

Build Status codecov Requirements Status PyPI version PyPI

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.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.2.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

pyhtzee-1.2.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyhtzee-1.2.2.tar.gz
  • Upload date:
  • Size: 6.0 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.2.2.tar.gz
Algorithm Hash digest
SHA256 758a7dd6fa59d5b6c56287a24d7c3b9c0f65316e0479653f2d2d3371067eaf78
MD5 538093e26639304490716c9823627bf8
BLAKE2b-256 42f308ed5fffe0857224fdc673aca94f11c2b7bee4b276fae3d61802fe7337c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyhtzee-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f14f091b030b18e7f23b7d7bbe1bd9a9a1b1979b23b4488746a32e45da78742
MD5 0407a073715ea345b71af400e59f3bf7
BLAKE2b-256 ecd53ae073e93f01efdd9b661d5be544b082c3a5e8bfaefa1d7ec773f03387d6

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