我的目標是通過一個循環運行不同的方法,每次通過循環
each_score = ones(dice_values);
total_score += each_score;
end_scores += String.valueOf(each_score) + " ";
其次
each_score = twos(dice_values);
total_score += each_score;
end_scores += String.valueOf(each_score) + " ";
唯一的區別是在方法運行此代碼以減少代碼第一行。我不知道通過類似於for循環的方式來做這樣的事情,而不是複製代碼13次的粘貼。 (如果可能的話,我也希望能找到比開關盒更高效的東西)
private static int ones(int[] dice_values) {
int ones = 0;
for(int i = 0; i < 5; i++)
if(dice_values[i] == 1)
ones++;
return ones;
}
private static int fours(int[] dice_values) {
int fours = 0;
for(int i = 0; i < 5; i++)
if(dice_values[i] == 4)
fours++;
return (fours * 4);
}
private static int five_of_kind(int[] dice_values) {
int five_kind = 0;
int[] five_of = new int[5];
for(int i = 0; i < 5; i++)
five_of[dice_values[i] - 1]++;
if(Arrays.asList(five_of).contains(5))
five_kind = 50;
return five_kind;
}
這是一個方法的例子。我正在解決一個叫Yahtzee的簡單問題。給定一組5個骰子的13卷,找到所有卷的總得分和每種類型得分的總數(例如,點數是「一個:多少個」或「一種五個」)。
是什麼的人(的目的),三三兩兩()等方法?如果它們提供類似的目的,你可以創建一個通用的功能與參數1,2,等 – user2910265 2014-10-10 03:07:54
我可以結合的方法,第6這樣做,但也有其他人(一種4,短直,長直,滿屋子等),我不能 – 2014-10-10 03:33:32