【发布时间】:2018-04-29 02:08:40
【问题描述】:
所以我有一个到目前为止似乎工作的掷骰子程序,但我不知道的唯一问题是如何对掷骰子的输出求和。它再次掷骰子,同时对前一次掷骰求和。
这是我开始使用的 Die 类
public class Die{ //only thing changed was removing implementation of the interface
private int noFaces;
public Die() {
noFaces = 6;
}
public int getNoFaces() { //getter
return noFaces;
}
public Die(int noFaces) { //setter, sets new value according to passed parameter
this.noFaces = noFaces;
}
public int roll() { //generates random number+1 within specified "noFaces" range
return (int) (Math.random() * noFaces + 1);
}
public void printRoll() { //goes to above method roll() and prints the returned value
System.out.println(roll());
}
}
将一个 Die 变成 PairOfDice,这就是我遇到求和问题的地方
public class PairOfDice {
private Die d1, d2;
public PairOfDice() { //initializes 2 die objects
d1 = new Die();
d2 = new Die();
}
public PairOfDice(int noFaces) { //sets the dice equally
d1 = new Die(noFaces);
d2 = new Die(noFaces);
}
public PairOfDice(int noFaces1, int noFaces2) { //sets dice separately
d1 = new Die(noFaces1);
d2 = new Die(noFaces2);
}
public void printRoll() { //prints rolls
System.out.println("Die 1 returned: " + d1.roll());
System.out.println("Die 2 returned: " + d2.roll());
}
public void printRollSum(){ //print sum of both rolls
System.out.println("Sum of both dice rolls are: " + (d1.roll() + d2.roll()));
}
}
我在哪里得到输出,RollingDice
public class RollingDice {
public static void main(String[] args) {
PairOfDice pairOne = new PairOfDice();
pairOne.printRollSum();
System.out.println();
PairOfDice pairTwo = new PairOfDice(10);
pairTwo.printRoll();
pairTwo.printRollSum();
System.out.println();
PairOfDice pairThree = new PairOfDice(100, 3);
pairThree.printRoll();
pairThree.printRollSum();
}
}
感谢对我的程序或 cmets 的所有帮助,我仍在学习。谢谢!
【问题讨论】:
-
所以您希望
printRoll()和printRollSum()使用相同的数字,这是问题所在吗?如果是这样,您需要存储卷 b/c 的结果,每卷都会生成一个新的随机数。 -
每次调用
roll()都会生成一个新号码。