public static bool HasRoyalFlush(this Hand hand) { var highestRank = hand.Cards.Max(m => m.Rank); return(highestRank == Rank.Ace && hand.HasStraightFlush()); }
public HandRank Evaluate(Hand hand) { if (hand.HasRoyalFlush()) { return(HandRank.RoyalFlush); } else if (hand.HasStraightFlush()) { return(HandRank.StraightFlush); } else if (hand.HasFourOfAKind()) { return(HandRank.FourOfAKind); } else if (hand.HasFullHouse()) { return(HandRank.FullHouse); } else if (hand.HasFlush()) { return(HandRank.Flush); } else if (hand.HasStraight()) { return(HandRank.Straight); } else if (hand.HasThreeOfAKind()) { return(HandRank.ThreeOfAKind); } else if (hand.HasTwoPair()) { return(HandRank.TwoPair); } else if (hand.HasPair()) { return(HandRank.Pair); } return(HandRank.HighCard); }