예제 #1
0
        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;
        }
예제 #2
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;
        }
예제 #3
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;
        }