gpt4 book ai didi

java - -滚动 2 个骰子直到获得 SnakeEyes-我的逻辑有什么问题以及如何打印方法的最后结果而不再次调用它

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

这是一个作业,我必须编写两个不断滚动的骰子,并且只有当两个骰子都获得 SnakeEyes 时才停止。我有两个问题:

  1. 有时,CastDie1 和 CastDie2 返回 1,但 IF 语句不验证条件。
  2. 我想打印出每个结果,包括 Snake Eyes,但每当我尝试打印 SnakeEyes 结果时,该方法都会被再次调用并且数字会发生变化。

    public class SnakeEyesCount {

    /**
    * @param args the command line arguments
    * @return
    */
    public static int CastDie1() {
    int die1 = (int)(Math.random()*6)+1;
    return die1;
    }

    public static int CastDie2() {
    int die2 = (int)(Math.random()*6)+1;
    return die2;
    }

    public static void main(String[] args) {
    // TODO code application logic here
    int countSnakeEyes = 0;
    boolean snakeEyes = false;

    while (snakeEyes == false) {
    TextIO.putln("Die1: " + CastDie1());
    TextIO.putln("Die2: " + CastDie2());
    countSnakeEyes++;
    if (CastDie1() == 1 && CastDie2() == 1) {
    TextIO.putln("Die1: " + CastDie1() + " SNAKE EYES!");
    TextIO.putln("Die2: " + CastDie2() + " SNAKE EYES!");
    TextIO.putln("Snake Eyes after " + countSnakeEyes + " rolls of the dice");
    snakeEyes= true;
    }
    }
    }
    }

最佳答案

您调用 CastDie1CastDie2 两次。由于结果是随机的,因此不能保证在连续执行中获得相同的值。

调用该方法一次,并将结果存储在要打印的变量中并在其他情况下使用。

while(!snakeEyes) {
int die1 = CastDie1();
int die2 = CastDie2();
TextIO.putln("Die1: " + die1);
// and so forth
if(die1 == 1 && die2 == 1) {
// the rest of your logic
}
}

虽然我尊重您想要的有两个不同的方法来调用 die,但它们执行相同的操作,因此我鼓励您将其折叠为一个方法:castDie。我将其作为练习留给读者。

关于java - -滚动 2 个骰子直到获得 SnakeEyes-我的逻辑有什么问题以及如何打印方法的最后结果而不再次调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50032322/

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