Ejemplo n.º 1
0
        public override IHand Check(List <Card> cards)
        {
            HandBase hand = null;

            if (cards.Count < 5)
            {
                return(null);
            }

            var groupCard =
                cards.GroupBy(x => x.Value)
                .Select(group => @group.ToList()[0])
                .OrderByDescending(x => x.Value)
                .ToList();

            AddOneIfAs(groupCard);

            for (int i = 0; i + 5 <= groupCard.Count; i++)
            {
                if (groupCard.ToList()[i].Value -
                    groupCard.ToList()[i + 4].Value == 4)
                {
                    int cardMinValue = groupCard.ToList()[i + 4].Value;
                    int cardMaxValue = groupCard.ToList()[i].Value;
                    hand = new HandStraight();
                    hand.SelectedCards.AddRange(groupCard.Where(x => x.Value >= cardMinValue && x.Value <= cardMaxValue).ToList());
                }
                if (hand != null)
                {
                    return(hand);
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        public virtual IHand Check(List <Card> cards)
        {
            HandBase hand = new HandBase();

            hand.SelectedCards.AddRange(cards.OrderByDescending(x => x.Value).Take(5));

            return(hand);
        }