Пример #1
0
    public int CalculateScore(List <int> dice, ScoreCategoryEnum.ScoreCategoryType category)
    {
        if (dice.Count > 6)
        {
            return(0);
        }
        int result = 0;

        if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.ACE))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 1)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.TWO))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 2)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.THREE))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 3)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.FOUR))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 4)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.FIVE))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 5)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.SIX))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                if (dice[i] == 6)
                {
                    result += dice[i];
                }
            }
            return(result);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.THREE_A_KIND))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                result += dice[i];
            }
            return(ScoreCategory.isNOfKind(dice, 3) ? result : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.FOUR_A_KIND))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                result += dice[i];
            }
            return(ScoreCategory.isNOfKind(dice, 4) ? result : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.FULLHOUSE))
        {
            return(ScoreCategory.isFullHouse(dice) ? 25 : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.TINY_STRAIGHT))
        {
            return(ScoreCategory.isTinyStraight(dice) ? 20 : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.SMALL_STRAIGHT))
        {
            return(ScoreCategory.isSmallStraight(dice) ? 30 : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.LARGE_STRAIGHT))
        {
            return(ScoreCategory.isLargeStraight(dice) ? 40 : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.YAHTZEE))
        {
            return(ScoreCategory.isYahtzee(dice) ? 50 : 0);
        }
        else if (category.Equals(ScoreCategoryEnum.ScoreCategoryType.CHANCE))
        {
            for (int i = 0; i < dice.Count; i++)
            {
                result += dice[i];
            }
            return(result);
        }
        return(0);
    }