【问题标题】:Dice Roller Values骰子滚轮值
【发布时间】:2021-12-25 04:40:25
【问题描述】:

我正在使用 java 创建一个掷骰子应用程序。我有一个滚动单个骰子的“骰子”类,以及一个使用“骰子”的多个实例变量的“骰子”类。但是,它只为我的值返回 0。 Die 类自己工作并且会滚动一个随机数,但我不知道如何在我的“Dice”类中获得多个滚动。任何帮助表示赞赏。

骰子类

public class Dice {
    Die die1=new Die();
    Die die2=new Die();
    private int die1Value;
    private int die2Value;
    private int sum;
    public Dice() {
        die1Value=0;
        die2Value=0;
    }
    public int getDie1Value() {
        return die1Value;
    }
    public int getDie2Value() {
        return die2Value;
    }
    public int getSum() {
        return sum;
    }
    public void roll() {
        die1Value=die1.getValue();
        die2Value=die2.getValue();
        sum=die1Value+die2Value;
    }
    public void printRoll() {
        System.out.println("Die 1: "+die1Value);
        System.out.println("Die 2: "+die2Value);
        System.out.println("Total: "+sum);
        if (sum==7) {
            System.out.println("Craps!");
        } else if (die1Value==1 && die2Value==1) {
            System.out.println("Snake Eyes!");
        } else if (die1Value==6 && die2Value==6) {
            System.out.println("Box Cars!");
        } else {
            System.out.println();
        }
    }
}

模具类

package a3.ben;

public class Die {
    private int value;
    public Die() {

    }
    public void roll() {
        value=(int) (Math.random()*6)+1;
    }
    public int getValue() {
        return value;
    }
}

【问题讨论】:

    标签: java instance dice


    【解决方案1】:

    你永远不会打电话给die.roll。尝试更改 Dice 中的 roll 方法,以包括在获得它们的值之前滚动两个骰子。

    public void roll() {
        die1.roll(); // change the value of both dice
        die2.roll();
        die1Value = die1.getValue();
        die2Value = die2.getValue();
        sum = die1Value + die2Value;
    }
    

    为了便于阅读,还在 =+ 等运算符周围添加了一些空格

    【讨论】:

    • 顺便说一句,要在 Java 中生成一个随机数,Joshua Bloch(他在 java.math 包上工作)在他的《Effective Java》一书中建议使用静态方法 Random.nextInt(n) 。它的可预测性更低,效率更高。
    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2016-08-10
    • 2018-09-24
    • 1970-01-01
    • 2016-12-26
    • 2015-12-16
    • 2019-09-24
    相关资源
    最近更新 更多