public override Hand Categorise(Hand hand) { if (!hand.HasStraight || hand.SingleCardValues.Max() != Value.Ace || !hand.HasFlush) { return(Next.Categorise(hand)); } return(SetHandRank(hand, Rank.RoyalFlush)); }
public override Hand Categorise(Hand hand) { if (!hand.HasStraight || !hand.HasFlush) { return(Next.Categorise(hand)); } return(SetHandRank(hand, Rank.StraightFlush)); }
public override Hand Categorise(Hand hand) { if (!hand.HasNumberOfKind(3) || !hand.HasNumberOfKind(2)) { return(Next.Categorise(hand)); } return(SetHandRank(hand, Rank.FullHouse)); }
public override Hand Categorise(Hand hand) { return(!hand.HasFlush ? Next.Categorise(hand) : SetHandRank(hand, Rank.Flush)); }
public override Hand Categorise(Hand hand) { return(!hand.HasStraight ? Next.Categorise(hand) : SetHandRank(hand, Rank.Straight)); }
public override Hand Categorise(Hand hand) { return(!hand.HasNumberOfKind(3) ? Next.Categorise(hand) : SetHandRank(hand, Rank.ThreeOfAKind)); }
public override Hand Categorise(Hand hand) { return(hand.Pairs.Count() != 2 ? Next.Categorise(hand) : SetHandRank(hand, Rank.TwoPairs)); }
public override Hand Categorise(Hand hand) { return(!hand.HasNumberOfKind(2) ? Next.Categorise(hand) : SetHandRank(hand, Rank.Pair)); }