protected static int GetColorRank(CardColor cardColor, ColorScore[] scores)
        {
            var i = 1;
              foreach (var colorScore in scores.OrderByDescending(x => x.Score))
              {
            if (cardColor == colorScore.Color)
              return i;
              }

              return scores.Length;
        }
        protected void UpdateOut(ColorScore[] outList, IEnumerable<Card> booster, Card pickedCard)
        {
            var boosterWithoutPickedCard = booster.ToList();
              boosterWithoutPickedCard.Remove(pickedCard);

              var boosterScores = CalculateBoosterColorScores(boosterWithoutPickedCard);
              UpdateColorScores(outList, boosterScores);
        }
 protected void UpdateColorScores(ColorScore[] colorScores, Dictionary<CardColor, double> boosterScores)
 {
     for (var i = 0; i < colorScores.Length; i++)
       {
     if (boosterScores.ContainsKey(colorScores[i].Color) && boosterScores[colorScores[i].Color] > PlayableThreshold)
     {
       colorScores[i].Score += boosterScores[colorScores[i].Color] - PlayableThreshold;
     }
       }
 }