示例#1
0
        /// <summary>
        ///Rank3
        /// </summary>
        /// <param name="hands"></param>
        /// <returns></returns>
        internal override bool IsHand()
        {
            var previousHand = 0;
            var ranks        = HandUtility.GeOrderedRanksAsIntegers(hands);

            HandUtility.ConvertOrOneDefault(ranks); //Utility to convert to Ace to either Ace or One


            for (int i = 0; i < 3; i++)
            {
                if (previousHand > 0 && ranks[i] - 1 != previousHand)
                {
                    return(false);
                }
                previousHand = ranks[i];
            }
            return(true);
        }
示例#2
0
        /// <summary>
        /// Rank3
        /// </summary>
        /// <param name="hands"></param>
        /// <returns></returns>
        private static bool IsStraight(List <IHand> hands)
        {
            var previousHand = 0;
            //var ranks = hands.Select(i => (int)i.Rank).OrderBy(i => i).ToList();
            var ranks = HandUtility.GeOrderedRanksAsIntegers(hands);

            HandUtility.ConvertOrOneDefault(ranks);
            //if (ranks.FirstOrDefault() == 2 && ranks.Contains(14))
            //{
            //    ranks.Remove(14);
            //    ranks.Insert(0, 1);
            //}

            for (int i = 0; i < 3; i++)
            {
                if (previousHand > 0 && ranks[i] - 1 != previousHand)
                {
                    return(false);
                }
                previousHand = ranks[i];
            }
            return(true);
        }