これはヤッツィー ゲーム用で、このメソッドは 5 つのサイコロの値を計算して返すことになっています。しかし、これは、ユーザーが選択したカテゴリのパラメーターによって渡される switch ステートメントと、可能な各カテゴリの for ループを使用して、これを行う愚かな方法ですか。私のデザインのアイデアよりも、これを行うためのはるかに簡単な方法はありますか?
private int assignScoreToCategory(int category)
{
int computedScore = 0;
println("dice: "+dice1+" "+dice2+" "+dice3+" "+dice4+" "+dice5);
// Switches on the category the user has selected.
switch (category)
{
case ONES:
for (int i = 0; i < 4; i++){
if (diceArray[i] == ONES){
println(computedScore);
computedScore++;
}
}break;
case TWOS:
break;
case THREES: break;
case FOURS: break;
case FIVES: break;
case SIXES: println("cat 6"); break;
case UPPER_SCORE: break;
case UPPER_BONUS: break;
case THREE_OF_A_KIND: break;
case FOUR_OF_A_KIND: break;
case FULL_HOUSE: break;
case SMALL_STRAIGHT: break;
case YAHTZEE: break;
case CHANCE: break;
case LOWER_SCORE: break;
case TOTAL: break;
default: return 0;
}
return computedScore;
}