gpt4 book ai didi

java - 使用 For 循环掷 6 个骰子并检查所有值是否相等 - Java

转载 作者:行者123 更新时间:2023-12-02 01:36:28 26 4
gpt4 key购买 nike

所以我正在尝试编写一个使用 for 循环掷 6 个骰子的程序。

我的程序的问题是它似乎只检查 Die 的两个实例的值。我试图得到它,以便 for 循环比较所有 6 个骰子的值,并显示所有 6 个骰子达到相同值所需的尝试次数。

目前,当我运行该程序时,它需要的尝试次数约为 2-13 次。然而,由于实例数量和给定的随机性,预期结果是一个巨大的数字,例如 3000。希望我说的有道理。

基本上,我有一个 Die 类,如下所示:

public class Die {

private int faces;
private int value;

public Die() {
this.faces = 6;
rollDie();
}

public void rollDie() {
this.value = (int) (Math.random() * this.faces + 1);
}

public boolean isSameValue(Die die) {
return die.getValue() == this.value;
}
}

这是我的主要方法:

public static void main(String[] args) {

Die[] die = new Die[6];
int[] dieValue = new int[die.length];
int counter = 0;
boolean exitProgram = false;

do {

counter++;

int currentValue, lastValue = 0;

for(int i = 0; i < die.length; i++) {

die[i] = new Die();

dieValue[i] = die[i].getValue();

currentValue = i;

if (i > 0 && dieValue[lastValue] == dieValue[i]) {
exitProgram = true;
}
else {
exitProgram = false;
}

lastValue = currentValue;

}
}
while(!exitProgram);

System.out.println(counter);

}

我可以对代码进行哪些修复,以便它比较所有六个骰子的值并返回其尝试的次数?

最佳答案

您可以使用 if 语句在循环中不断创建新骰子。 if 语句将检查该值是否为 6,否则进行计数并给骰子一个新值。一旦 temp 值为 6,它将退出。

    int counter = 0;
boolean exitProgram = false;
int tempValue = 0;

do{
Die die = new Die();
tempValue = die.getValue();

if (tempValue != 6) {
/*System.out.println(tempValue);*/
counter++;
}
else {
/*System.out.println(tempValue);*/
exitProgram= true;
}
}while (!exitProgram) ;
System.out.println(counter);
}

}

关于java - 使用 For 循环掷 6 个骰子并检查所有值是否相等 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55199735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com