Esempio n. 1
0
        /*********************************************************************/

        private static Enums.FaceValue GetPair(ref List <Card> cards)
        {
            Enums.FaceValue _pair      = Enums.FaceValue.Two;
            bool            _pairFound = false;

            for (int _baseCard = 0; _baseCard < cards.Count(); _baseCard++)
            {
                for (int _compareTo = _baseCard + 1; _compareTo < cards.Count(); _compareTo++)
                {
                    if (cards[_baseCard].FaceValue == cards[_compareTo].FaceValue)
                    {
                        _pair = cards[_baseCard].FaceValue;

                        cards.RemoveAt(_compareTo);
                        cards.RemoveAt(_baseCard);

                        _pairFound = true;
                        break;
                    }
                }

                if (_pairFound)
                {
                    break;
                }
            }
            return(_pair);
        }
        private static int CountCardsMatchingFaceValue(Enums.FaceValue faceValueToMatch, List <Card> cards)
        {
            int _count = 0;

            foreach (Card _card in cards)
            {
                if (_card.FaceValue == faceValueToMatch)
                {
                    _count++;
                }
            }
            return(_count);
        }
Esempio n. 3
0
        internal static Enums.Winner ThreeOfAKind(List <Card> blackCards, List <Card> whiteCards)
        {
            // For ThreeOfAKind, compare the matching cards. If there's still no clear winner, compare the rest of the hand

            // Identify the ThreeOfAKind cards
            Enums.FaceValue _blackMatchValue = GetThreeOfAKind(ref blackCards);
            Enums.FaceValue _whiteMatchValue = GetThreeOfAKind(ref whiteCards);

            // Compare each player's ThreeOfAKind cards
            if (_blackMatchValue > _whiteMatchValue)
            {
                return(Enums.Winner.Black);
            }
            else if (_blackMatchValue < _whiteMatchValue)
            {
                return(Enums.Winner.White);
            }

            // Sort and compare the rest of each player's hand
            return(SortAndCompareHand(blackCards, whiteCards));
        }
Esempio n. 4
0
        internal static Enums.Winner Pair(List <Card> blackCards, List <Card> whiteCards)
        {
            // For Pair, compare the pair cards. If there's still no clear winner, compare the rest of the hand

            // Identify the pair
            Enums.FaceValue _blackPairValue = GetPair(ref blackCards);
            Enums.FaceValue _whitePairValue = GetPair(ref whiteCards);

            // Compare each player's pair
            if (_blackPairValue > _whitePairValue)
            {
                return(Enums.Winner.Black);
            }
            else if (_blackPairValue < _whitePairValue)
            {
                return(Enums.Winner.White);
            }

            // Sort and compare the rest of each player's hand
            return(SortAndCompareHand(blackCards, whiteCards));
        }
Esempio n. 5
0
        private static Enums.FaceValue GetThreeOfAKind(ref List <Card> cards)
        {
            Enums.FaceValue _match      = Enums.FaceValue.Two;
            bool            _matchFound = false;

            for (int _baseCard = 0; _baseCard < cards.Count(); _baseCard++)
            {
                for (int _compareTo1 = _baseCard + 1; _compareTo1 < cards.Count(); _compareTo1++)
                {
                    if (cards[_baseCard].FaceValue == cards[_compareTo1].FaceValue)
                    {
                        for (int _compareTo2 = _compareTo1 + 1; _compareTo2 < cards.Count(); _compareTo2++)
                        {
                            if (cards[_compareTo1].FaceValue == cards[_compareTo2].FaceValue)
                            {
                                _match = cards[_baseCard].FaceValue;

                                cards.RemoveAt(_compareTo2);
                                cards.RemoveAt(_compareTo1);
                                cards.RemoveAt(_baseCard);

                                _matchFound = true;
                                break;
                            }
                        }
                    }

                    if (_matchFound)
                    {
                        break;
                    }
                }

                if (_matchFound)
                {
                    break;
                }
            }
            return(_match);
        }
Esempio n. 6
0
        internal static Enums.Winner FourOfAKind(List <Card> blackCards, List <Card> whiteCards)
        {
            // For FourOfAKind, compare the matching cards

            // Identify the ThreeOfAKind cards
            Enums.FaceValue _blackMatchValue = GetFourOfAKind(ref blackCards);
            Enums.FaceValue _whiteMatchValue = GetFourOfAKind(ref whiteCards);

            // Compare each player's ThreeOfAKind cards
            if (_blackMatchValue > _whiteMatchValue)
            {
                return(Enums.Winner.Black);
            }
            else if (_blackMatchValue < _whiteMatchValue)
            {
                return(Enums.Winner.White);
            }
            else
            {
                return(Enums.Winner.Tie);
            }
        }
Esempio n. 7
0
        internal static Enums.Winner FullHouse(List <Card> blackCards, List <Card> whiteCards)
        {
            // For FullHouse, compare the ThreeOfAKind cards. If there's still no clear winner, compare the Pair cards

            // Identify the ThreeOfAKind cards
            Enums.FaceValue _blackMatchValue = GetThreeOfAKind(ref blackCards);
            Enums.FaceValue _whiteMatchValue = GetThreeOfAKind(ref whiteCards);

            // Compare each player's ThreeOfAKind cards
            if (_blackMatchValue > _whiteMatchValue)
            {
                return(Enums.Winner.Black);
            }
            else if (_blackMatchValue < _whiteMatchValue)
            {
                return(Enums.Winner.White);
            }

            // Identify the pair
            Enums.FaceValue _blackPairValue = GetPair(ref blackCards);
            Enums.FaceValue _whitePairValue = GetPair(ref whiteCards);

            // Compare each player's pair
            if (_blackPairValue > _whitePairValue)
            {
                return(Enums.Winner.Black);
            }
            else if (_blackPairValue < _whitePairValue)
            {
                return(Enums.Winner.White);
            }
            else
            {
                return(Enums.Winner.Tie);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Constructor to initialize a new card
 /// </summary>
 /// <param name="suit">card suit</param>
 /// <param name="faceValue">card ID</param>
 public Card(Enums.Suit suit, Enums.FaceValue faceValue)
 {
     _suit = suit;
     _faceValue = faceValue;
 }