So I have a dice rolling program that seems to work so far, but the only problem I can't figure out is how to sum the outputs of the rolls. It rolls the dice again while summing the previous roll.
Here is the Die class I started with
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());
}
}
and making one Die into a PairOfDice, which is where I'm having the summation issue
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()));
}
}
and where I'm getting the output, 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();
}
}
All help on either my program or the comments is appreciated, I'm still learning. Thanks!
printRoll()andprintRollSum()to use the same numbers, is that the issue? If so you need to store the result of the rolls b/c every roll will generate a new random number. - Shafik Yaghmourroll()is called a new number is generated. - bowmore