API
Internal evaluate methods
PokerHandEvaluator.evaluate5
— Functionevaluate5(cards::Card...)
evaluate5(::Card,::Card,::Card,::Card,::Card)
evaluate5(::Tuple{Card,Card,Card,Card,Card})
This is PokerHandEvaluator.jl's core method.
Returns the rank
(an Int
) from 1:7462
:
(A♡,K♡,Q♡,J♡,10♡) -> 1
...
(7♡,5♢,4♣,3♠,2♡) -> 7462
for 5-card hands only.
PokerHandEvaluator.evaluate
— Functionevaluate(cards::Card...)
evaluate(::Card,::Card,::Card,::Card,::Card[,::Card,::Card])
evaluate(::Tuple{Card,Card,Card,Card,Card[,Card,Card]})
Evaluates 5, 6, and 7-card hands using evaluate5
. This is done by using Combinatorics.combinations
to evaluate all possible 5, 6, and 7-card hand combinations.
Exported types/methods
PokerHandEvaluator.CompactHandEval
— TypeCompactHandEval(cards::Card...)
CompactHandEval(::Card,::Card,::Card,::Card,::Card[,::Card,::Card])
CompactHandEval(::Tuple{Card,Card,Card,Card,Card[,::Card,::Card]})
A compact hand evaluation, with supporting methods: hand_rank
, hand_type
.
Examples
using PlayingCards
using PokerHandEvaluator
table_cards = (J♡,J♣,A♣,A♢);
player_cards = (
(A♠,2♠,table_cards...),
(J♠,J♣,table_cards...),
);
che = CompactHandEval.(player_cards);
winner_id = argmin(hand_rank.(che)) # = 2
winning_hand = hand_type(che[winner_id]) # = :quads
PokerHandEvaluator.FullHandEval
— TypeFullHandEval(cards::Card...)
FullHandEval(::Card,::Card,::Card,::Card,::Card[,::Card,::Card])
FullHandEval(::Tuple{Card,Card,Card,Card,Card[,::Card,::Card]})
A compact hand evaluation, with supporting methods: hand_rank
, hand_type
, best_cards
, all_cards
.
Examples
using PlayingCards, PokerHandEvaluator
table_cards = (J♡,J♣,2♣,3♢,5♣)
player_cards = (
(A♠,2♠,table_cards...),
(J♠,T♣,table_cards...),
);
fhe = FullHandEval.(player_cards);
winner_id = argmin(hand_rank.(fhe)) # = 2
winning_hand = hand_type(fhe[winner_id]) # = :trips
winning_rank = hand_rank(fhe[winner_id]) # = 1842
winning_cards = best_cards(fhe[winner_id]) # = (J♠, T♣, J♡, J♣, 5♣)
allcards = all_cards(fhe[winner_id]) # = (J♠, T♣, J♡, J♣, 2♣, 3♢, 5♣)
PokerHandEvaluator.hand_type
— Functionhand_type(::AbstractHandEvaluation)
A Symbol corresponding to the type of hand. Concretely, hand_type
returns one of:
:straight_flush
:quads
:full_house
:flush
:straight
:trips
:two_pair
:one_pair
:high_card
PokerHandEvaluator.hand_rank
— Functionhand_rank(::AbstractHandEvaluation)
The hand rank, between 1 (straight royal flush) and 7462 (7 high with lowest kickers):
(A♡,K♡,Q♡,J♡,10♡) -> 1
...
(7♡,5♢,4♣,3♠,2♡) -> 7462
PokerHandEvaluator.best_cards
— Functionbest_cards(::FullHandEval)
The set of cards with the lowest (best) rank.
PokerHandEvaluator.all_cards
— Functionall_cards(::FullHandEval)
All of the input cards to FullHandEval
.