| Docs Build | |
| Documentation | |
| GHA CI | |
| Code Coverage | |
| Bors enabled | 
A package for representing playing cards for card games (for a standard deck of fifty two).
A playing Card is consists of a suit (♣,♠,♡,♢) and a rank:
Rank(N::Int)where1 ≤ N ≤ 13whereN = 1represents an Ace (which can have high or low values viahigh_valueandlow_value)N = 11represents a JackN = 12represents a QueenN = 13represents a King
The value of the rank can be retrieved from high_value and low_value:
high_value(c::Card) == low_value(c::Card) == c.rankhigh_value(::Card) = 14for Acelow_value(::Card) = 1for Ace
Cards have convenience constructors and methods for extracting information about them:
julia> using PlayingCards
julia> card = A♡
A♡
julia> string(card)
"A♡"
julia> suit(A♡)
Heart()
julia> rank(A♠)
Ace()
julia> high_value(A♢)
14
julia> high_value(J♣)
11
julia> low_value(A♡)
1A Deck is a struct with a Vector of Cards, which has a few convenience methods:
julia> using PlayingCards
julia> deck = ordered_deck()
A♣ 2♣  3♣  4♣  5♣  6♣  7♣  8♣  9♣  T♣  J♣  Q♣  K♣
A♠ 2♠  3♠  4♠  5♠  6♠  7♠  8♠  9♠  T♠  J♠  Q♠  K♠
A♡ 2♡  3♡  4♡  5♡  6♡  7♡  8♡  9♡  T♡  J♡  Q♡  K♡
A♢ 2♢  3♢  4♢  5♢  6♢  7♢  8♢  9♢  T♢  J♢  Q♢  K♢
julia> shuffle!(deck)
julia> hand = pop!(deck, 2)
(5♣, 8♢)
julia> deck
Q♣  T♣  5♢  K♠  J♢  4♢  T♡  K♢  2♠  5♠  2♡  8♣  8♠
K♣  T♠  A♣  Q♠  Q♢  2♢  7♣  6♣  J♡  9♠  6♢  A♢  7♠
A♡  7♡  3♢  3♣  7♢  J♠  5♡  4♡  9♢  4♣  3♠  J♣  6♡
9♡  6♠  T♢  3♡  A♠  8♡  K♡  2♣  4♠  Q♡  9♣| Package | Development status | Purpose | 
|---|---|---|
| PlayingCards.jl | Perhaps stable | Representing cards | 
| PokerHandEvaluator.jl | Perhaps stable | Comparing any two 5-7 card hands | 
| TexasHoldem.jl | Likely changes needed | Simulating multi-player games of TexasHoldem | 
| PokerBots.jl | very early development | Battling bots with prescribed (or learned) strategies | 
| PokerGUI.jl | very early development | Visualizing TexasHoldem games via a GUI | 
Some ideas used here were inspired by