【发布时间】:2019-04-24 16:43:49
【问题描述】:
我正在尝试创建一个掷 2 个骰子的程序,给出 die1 的数量和 die2 的数量,然后将它们加在一起。我得到了骰子的随机数,但是当它们被加在一起(总和)时,总数不正确。
我曾尝试更改faceValue、numValue,我已将总和更改为die1.getFaceValue + die2.getFaceValue,但总和总是出错。如果有人可以查看代码并查看我是否将其他所有内容放在正确的位置。提前致谢。
package assignment3;
import java.util.*;
public class Die {
private static final int DEFAULT_NUM_FACES =6;
private static final int value = 1;
private static int faceValue;
private static int numFaces;
//die(int, int) method- constructor that initialized the instance variables to the parameter values
public Die(int die1, int die2) {
}
//Die(int) method- constructor that initialized the instance variables faceValue to the parameter value and numFaces to
//DEFAULT_NUM_FACES
public Die(int value) {
faceValue = value;
numFaces = DEFAULT_NUM_FACES;
}
//die() default constructor that initialized both instance variables to DEFAULT_NUM_FACES
public Die() {
this.faceValue=DEFAULT_NUM_FACES;
this.numFaces=DEFAULT_NUM_FACES;
}
//die(die) copy constructor
public Die(Die otherDie)
{
new Die();
}
// getFaceValue() - returns the faceValue of the instance
public int getFaceValue() {
return faceValue;
}
// getNumFaces - return the numFaces of the Die
public int getNumFaces()
{
return numFaces;
}
//setFaceValule - sets face values of the die to supplied value
public int setValue(int faceValue) {
return faceValue;
}
//toString returns a string representation of the face value in the form of (faceValue)
public String toString()
{
String result = Integer.toBinaryString(faceValue);
return result;
}
//Roll - rolls the die to generate a new face value. The instances face value will be set to this new value.
//You can use the random method of the Math class to accomplish this task. The random method generates a random number between 0 and 1.
//by multiplying this number by number of faces, casting the result to an integer and adding one to it.
//you will be able to generate a random number between 1 and numFaces
public int roll()
{
faceValue = (int )(Math.random()*numFaces+1);
return faceValue;
}
public static void main(String[] args) {
Die die1;
Die die2;
int sum;
die1= new Die();
die1.roll();
die2= new Die();
die2.roll();
sum = (die1.getFaceValue())+(die2.getFaceValue()) ;
System.out.println("Toss 0 generated a " + die1.getFaceValue()+ " and a " + die2.getFaceValue() +" for a total of " +sum);
}
}
这应该掷骰子1并给我骰子1的面值,然后它应该给我骰子2的值,然后它应该合计两个骰子的数量。
【问题讨论】:
-
每次调用
roll()都会获得一个新值。将值存储在本地,然后添加并显示值。
标签: java constructor dice