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;
}