这里有点问题......
•我创建了一个数组和一个可以存储10个Die对象的独立ArrayList对象。
•我创建了Die对象并将它们添加到数组中,然后创建了Die对象并将它们添加到ArrayList对象中。
•我显示了数组和ArrayList的所有元素。
现在我正在尝试做两件事:
•滚动数组和ArrayList中的每个Die对象
•通过将每个骰子中的点相加来计算每个集合的总值,并确定哪个更大并显示这些结果
有关如何实现上述两项内容的想法吗?
骰子对象
public class Dice {
String name;
int[] values;
// constructor
public Dice(int faces,String name){
int[] values =new int[faces];
for (int i=0;i<faces;i++){
values[i]=i+1;
}
this.name=name;
this.values=values;
}
}
**
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
final int SIZE = 10;
Dice[] diceList = new Dice[SIZE];
ArrayList<Dice> diceList2 = new ArrayList<Dice>();
//create 10 die
for (int i=0;i<SIZE;i++){
String name = "dice"+ Integer.toString(i+1);
Dice dice = new Dice(6,name);
diceList2.add(dice);
System.out.println(dice.name);
}
System.out.println();
for (int i = 0; i<SIZE; i++) {
String name = "dice"+ Integer.toString(i+1);
Dice dice = new Dice(6,name);
diceList[i] = dice;
System.out.println(dice.name);
}
}
}
答案 0 :(得分:1)
为了掷骰子我会假设你会使用像Random()这样的东西。
public class Dice {
private String name;
private int[] values;
private int rolledValue;
private java.util.Random random = new java.util.Random();
// constructor
public Dice(int faces,String name){
int[] values =new int[faces];
for (int i=0;i<faces;i++){
values[i]=i+1;
}
this.name=name;
this.values=values;
}
public void rollDie() {
rolledValue = values[random.nextInt(values.length)];
}
public int getRolledValue() {
return rolledValue;
}
}
然后循环遍历数组或ArrayList是微不足道的:(请注意,我自己只使用1个模具,只需调用相同的模具进行多次滚动。
int total = 0;
for (int i = 0; i < diceList.length; ++i) {
diceList[i].rollDie();
total+= diceList[i].getRolledValue();
}
int total2 = 0;
for (Dice die : diceList2) {
die.rollDie();
total2 += die.getRolledValue();
}
然而,正如我所说,我不同地使用骰子类:
public class Dice {
private final int[] faces;
private java.util.Random random = new java.util.Random();
public Dice(final int[] faces) {
this.faces = faces;
}
public int getNextRoll() {
return faces[random.nextInt(faces.length)];
}
}
滚动它们:
Dice d6 = new Dice(new int[] { 1, 2, 3, 4, 5, 6 };
Dice d4 = new Dice(new int[] { 1, 2, 3, 4},
int total1 = 0;
int total2 = 0;
for (int i = 0; i < 10; ++i) {
total1 += d6.getNextRoll();
total2 += d4.getNextRoll();
}
但我承认这并不能帮助你玩数组:)