AIPlayers.AIPlayer.FindZeroEvaluatedColor C# (CSharp) Method

FindZeroEvaluatedColor() private method

private FindZeroEvaluatedColor ( IList validCards, IList &zeroEvaluatedColors ) : bool
validCards IList
zeroEvaluatedColors IList
return bool
        private bool FindZeroEvaluatedColor( IList< Card> validCards, out IList< CardColor > zeroEvaluatedColors )
        {
            zeroEvaluatedColors = new List< CardColor >();

            #region Spades

            int spadesCount = 0;
            int zeroEvaluatedSpadesCount = 0;
            foreach ( Card card in validCards )
            {
                if ( card.CardColor == CardColor.Spades )
                {
                    spadesCount++;
                    if ( EvalutePointsOnRemaining( card ) == 0 )
                    {
                        zeroEvaluatedSpadesCount++;
                    }
                }
            }

            if ( zeroEvaluatedSpadesCount == spadesCount && spadesCount != 0 )
            {
                zeroEvaluatedColors.Add( CardColor.Spades );
            }

            #endregion

            #region Hearts

            int heartsCount = 0;
            int zeroEvaluatedHeartsCount = 0;
            foreach ( Card card in validCards )
            {
                if ( card.CardColor == CardColor.Hearts )
                {
                    heartsCount++;
                    if ( EvalutePointsOnRemaining( card ) == 0 )
                    {
                        zeroEvaluatedHeartsCount++;
                    }
                }
            }

            if ( zeroEvaluatedHeartsCount == heartsCount  && heartsCount != 0 )
            {
                zeroEvaluatedColors.Add( CardColor.Hearts );
            }

            #endregion

            #region Diamonds

            int diamondsCount = 0;
            int zeroEvaluatedDiamondsCount = 0;
            foreach ( Card card in validCards )
            {
                if ( card.CardColor == CardColor.Diamonds )
                {
                    diamondsCount++;
                    if ( EvalutePointsOnRemaining( card ) == 0 )
                    {
                        zeroEvaluatedDiamondsCount++;
                    }
                }
            }

            if ( zeroEvaluatedDiamondsCount == diamondsCount && diamondsCount != 0 )
            {
                zeroEvaluatedColors.Add( CardColor.Diamonds );
            }

            #endregion

            #region Clubs

            int clubsCount = 0;
            int zeroEvaluatedClubsCount = 0;
            foreach ( Card card in validCards )
            {
                if ( card.CardColor == CardColor.Clubs )
                {
                    clubsCount++;
                    if ( EvalutePointsOnRemaining( card ) == 0 )
                    {
                        zeroEvaluatedClubsCount++;
                    }
                }
            }

            if ( zeroEvaluatedClubsCount == clubsCount && clubsCount != 0 )
            {
                zeroEvaluatedColors.Add( CardColor.Clubs );
            }

            #endregion

            return zeroEvaluatedColors.Count != 0;
        }