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