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♡) -> 7462for 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]) # = :quadsPokerHandEvaluator.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♡) -> 7462PokerHandEvaluator.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.