Поскольку у меня недостаточно репутации, чтобы редактировать свой пост, вот мой ответ @GBlodgett:
Привет!Спасибо за ответ.Я нахожусь в процессе создания игры Farkle, поэтому мне нужно выяснить, сколько 1, 2, 3, 4, 5 и 6 в списке, а затем дать очки (следуя правилам).Я сделал код, который, кажется, работает, хотя должен быть более эффективный способ сделать это.Не стесняйтесь взглянуть и дать мне некоторую обратную связь:
public int calcPoints (ArrayList dice) {
int points = 0;
Map<Integer,Integer> numOfDice = new HashMap<Integer,Integer>();
numOfDice.put(1, 0);
numOfDice.put(2, 0);
numOfDice.put(3, 0);
numOfDice.put(4, 0);
numOfDice.put(5, 0);
numOfDice.put(6, 0);
for(Integer num : dice) {
if(numOfDice.get(num) == null) {
numOfDice.put(num, 1);
}
else {
numOfDice.put(num, numOfDice.get(num)+1);
}
}
for(int i=1; i <= numOfDice.size(); i++) {
if(i == 1) {
if(numOfDice.get(1) < 3) {
points += numOfDice.get(1)*100;
}
else if(numOfDice.get(1) == 3) {
points += 1000;
}
else if(numOfDice.get(1) == 4) {
points += 2000;
}
else if(numOfDice.get(1) == 5) {
points += 3000;
}
else if(numOfDice.get(1) == 6) {
points += 5000;
}
}
else {
if(i == 5) {
if(numOfDice.get(5) < 3) {
points += 50*numOfDice.get(5);
continue;
}
}
//All else
if(numOfDice.get(i) == 3) {
points += 100*i;
}
else if(numOfDice.get(i) == 4) {
points += 200*i;
}
else if(numOfDice.get(i) == 5) {
points += 300*i;
}
else if(numOfDice.get(i) == 6) {
points += 400*i;
}
}
}
return points;
}