Ejemplo n.º 1
0
        private void SortHand(string hand)
        {
            string[]    cardArray = hand.Trim().Split(' ');
            List <Card> cards     = new List <Card>();

            // add cards to hand
            for (int i = 0; i < cardArray.Length; i++)
            {
                Char[] cardValue = cardArray[i].ToCharArray();
                string value     = cardValue[0].ToString();
                string suit      = cardValue[1].ToString();
                Card   card      = new Card(value, suit);
                cards.Add(card);
            }

            // sort hand numercially
            this.m_sortedHand = cards.OrderBy(x => CardUtilities.ParseCardNumber(x.Number)).ToList();
        }
Ejemplo n.º 2
0
        public static List <Card> GetConsecutiveValues(List <Card> input)
        {
            var cards = new List <Card>();
            var seq   = new List <Card>();

            foreach (var i in input)
            {
                int index      = input.IndexOf(i);
                int nextNumber = index < 4 ? CardUtilities.ParseCardNumber(input[index + 1].Number) : -1;
                if (CardUtilities.ParseCardNumber(i.Number) + 1 == nextNumber)
                {
                    cards.Add(i);
                    if (cards.Count == 4)
                    {
                        cards.Add(input[index + 1]);
                        break;
                    }
                }
            }
            return(cards);
        }
Ejemplo n.º 3
0
        public static Player FindPlayerWithHighestCard(Player player1, Player player2)
        {
            Card p1HighestCard = GetHighCard(player1);
            Card p2HighestCard = GetHighCard(player2);

            if (CardUtilities.ParseCardNumber(p1HighestCard.Number) > CardUtilities.ParseCardNumber(p2HighestCard.Number))
            {
                return(player1);
            }
            else if (CardUtilities.ParseCardNumber(p2HighestCard.Number) > CardUtilities.ParseCardNumber(p1HighestCard.Number))
            {
                return(player2);
            }
            else
            {
                // if card numbers are equal add that card to the cards to play
                player1.HandPlayed.Cards.Add(p1HighestCard);
                player2.HandPlayed.Cards.Add(p2HighestCard);

                // execute recursive method until highest card is reached
                Player winner = FindPlayerWithHighestCard(player1, player2);
                return(winner);
            }
        }