由于我没有足够的声誉来编辑我的文章,下面是我的答案@gblodgett:
嘿!谢谢你的回复。我正在做一个法克尔的游戏,因此我需要找出有多少1,2,3,4,5,6在列表中,然后给分(遵循规则)。我做了一个代码,似乎工作,尽管必须有一个更有效的方法来做。请随便看一看并给我一些反馈:
公共int calculatepoints(arraylist骰子){
int points = 0;
Map numOfDice = new HashMap();
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;
}