public int RoyalFlush(Hand h) { bool ss = h.SameSuit(); bool cs = h.Consecutive(); if (ss) { if (cs) { if (h.ThereIs(CardValue.Ace)) { return 1; } } } return 0; }
public int StraightFlush(Hand h) { if (h.SameSuit() && h.Consecutive()) { return (int)h.Cards.Select(c => c.Value).OrderByDescending(c => c).First(); } return 0; }
public int Flush(Hand h) { if (h.SameSuit()) { int r = 0; int m = 1; var v = h.Cards.OrderBy(c => (int)c.Value).ToList(); for (int i = 0; i < 5; i++) { r += m * (int)v[i].Value; m *= D; } return r; } return 0; }