Skip to main content

a collection of gambling classes/tools

Project description

PyPI version Code style: black Python 3.10+ supported

gamble is a simple library that implements a collection of some common gambling-related classes

Features

  • die, dice, d-notation
  • cards, decks, hands
  • poker ranks, hand comparison

Usage

Installation

pip install gamble

Basic Usage

Dice

import gamble

# create dice, defaults to 2 6-sided dice
dice = gamble.Dice()

# roll
dice.roll()
>>> 6
dice.rolls
>>> 1

# max, min
dice.max
>>> 12
dice.min
>>> 2

# d-notation for dice constructor
dice = gamble.Dice('d20+8')

# max, min
dice.max
>>> 28
dice.min
>>> 9

# parts
dice.parts
>>> [<d20 Die>, 8]

# roll_many
dice.roll_many(2)
>>> [8, 4]

# max_of, min_of
dice.max_of(3)
>>> (11, [7, 3, 11])
dice.min_of(3)
>>> (2, [2, 9, 4])

Cards

import gamble

# create a deck, defaults to the standard 52 card deck, no jokers
# the deck will be shuffled by default, unless you pass shuffle=False
deck = gamble.Deck()

deck.cards_left
>>> 52

deck.top
>>> <Card:7>
deck.bottom
>>> <Card:9>
deck.shuffle()  # you can also pass times=(int) to shuffle more than once

card = deck.draw()  # you can also pass times=(int) to draw a list of cards
>>> <Card:A>

# the unicode cards icons are implemented as well!
card.unicode
>>> "🂡"

# draw a poker hand, default size 5
hand = deck.draw_hand(). # you can pass size=(int) to draw a different size hand
>>> <Hand[5](straight flush) [A, 2, 3, 4, 5]>

hand.rank
>>> Rank(name='straight flush', value=8)

# arbitrary hand, from text notation
new_hand = gamble.Hand.get("2c,3c,4c,Kc,Kh")
>>> <Hand[5](pair) [2, 3, 4, K, K]>

new_hand.rank
>>> Rank(name='pair', value=1)

hand > new_hand
>>> True

Todo

  • hand equals/ge/le method
  • hand ranking when hands are very similar

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

gamble-0.14.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

gamble-0.14.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file gamble-0.14.0.tar.gz.

File metadata

  • Download URL: gamble-0.14.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for gamble-0.14.0.tar.gz
Algorithm Hash digest
SHA256 4da99572a6e879e8fb5ec0ab0c5362955f0e37d2b17781a37297c05178678dcd
MD5 9f488a32e525c2315ccfbd916b4d6184
BLAKE2b-256 fdd18028feed00060499672e9f9b3d3bc611685fbcad60667373554137c69f64

See more details on using hashes here.

File details

Details for the file gamble-0.14.0-py3-none-any.whl.

File metadata

  • Download URL: gamble-0.14.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for gamble-0.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31d2a68626d0180b78b02780054ea6a525bb6506fbd5c613ac792ce991906399
MD5 71bb7f521094bf6f427b19b2eac61da6
BLAKE2b-256 2dc149ea9d265167a82ad3a977060be7a97dc19fa1159ec50f7cbfb7d96beed8

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