Tilted is a lightweight, open-source Python package with a simple interface for poker hand evaluation & comparison.
Project description
Tilted
Tilted is a lightweight, open-source Python package with a simple interface for poker hand evaluation & comparison.
Installation
With Poetry:
poetry add tilted
With Pip:
pip install tilted
Basic Usage
Tilted can be used to generate, evaluate and compare 5-card poker hands.
Hand Generation
To generate a random hand:
from tilted import Deck, Hand
deck = Deck()
unknown_hand = Hand(deck.draw_many(5))
unknown_hand # <Hand: 8♦ T♠ T♣ Q♣ K♥>
unknown_hand.hand_rank # <HandRank.PAIR: 2>
Hand Evaluation
To evaluate an unknown hand:
from tilted import Card, CardRank, CardSuit, Hand
unknown_hand = Hand([
Card(CardRank.TEN, CardSuit.SPADES),
Card(CardRank.JACK, CardSuit.SPADES),
Card(CardRank.QUEEN, CardSuit.SPADES),
Card(CardRank.KING, CardSuit.SPADES),
Card(CardRank.ACE, CardSuit.SPADES),
])
unknown_hand.hand_rank # <HandRank.ROYAL_FLUSH: 10>
Hand Comparison
To compare two hands:
from tilted import Card, CardRank, CardSuit, Hand
royal_flush = Hand([
Card(CardRank.TEN, CardSuit.SPADES),
Card(CardRank.JACK, CardSuit.SPADES),
Card(CardRank.QUEEN, CardSuit.SPADES),
Card(CardRank.KING, CardSuit.SPADES),
Card(CardRank.ACE, CardSuit.SPADES),
])
straight_flush = Hand([
Card(CardRank.NINE, CardSuit.HEARTS),
Card(CardRank.TEN, CardSuit.HEARTS),
Card(CardRank.JACK, CardSuit.HEARTS),
Card(CardRank.QUEEN, CardSuit.HEARTS),
Card(CardRank.KING, CardSuit.HEARTS),
])
royal_flush > straight_flush # True
Game & Dealing
To create a game, deal cards to the board and determine the winning player:
from tilted import Game
num_players = 2
game = Game(num_players)
game.deal_next_street()
game.board.flop # [A♦, A♠, A♣]
game.deal_next_street()
game.board.turn # K♣
game.deal_next_street()
game.board.river # Q♣
game.board.cards # [A♦, A♠, A♣, K♣, Q♣]
game.players[0].name # "Player #1"
game.players[0].hole_cards # [A♥, K♥]
game.players[1].name # "Player #2"
game.players[1].hole_cards # [T♦, Q♦]
game.get_winner() # [<Player: Player #1>]
NOTE: get_winner
returns a list to account for split pots (when two players have the winning hand).
Roadmap
Features
- Hand evaluation
- Hand comparison
- Deck support
- Board & dealing (Flop, Turn, River)
- Player support
- Full board & hole card evaluation
- Buttons & betting
- Game state serialization
- Simulations API and/or simulation examples
Deployment
- CI
- Badges
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
tilted-0.1.4.tar.gz
(12.6 kB
view hashes)
Built Distribution
tilted-0.1.4-py3-none-any.whl
(12.5 kB
view hashes)