gpt4 book ai didi

java - 基本 Java Dice 程序 - 很难找到最长的连续骰子

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

我目前正在开发一个基本的(正如我所看到的,经常分配的)java 项目,我将在其中创建一个模拟掷骰子的程序。在我的项目中,我仅模拟两个六面骰子的滚动。需要使用数组来完成此任务。

到目前为止,我有 try/catch block ,它会询问用户他们想要模拟的滚动数量,并确保他们提供整数输入。这反过来又为骰子模拟器创建了数组的长度。到目前为止,我的代码可以工作,但现在我陷入了如何找到该数组中连续总和的最长条纹的困境。

我很确定我需要将每次掷骰的 dieSum 值与自身进行比较,如果 dieSum == dieSum 则将当前连胜的变量增加 1。我只是不确定如何执行此操作,我怀疑我可能有问题,因为我的 dieSum 变量没有存储到数组中。

import java.util.Scanner;
public class RollThoseDice {
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);

System.out.println("MyNameHere");
System.out.println("ThirdProgram \n");

//Variable listing and initialization
int rollTotal = 0; //number of trials
int dieSum; //sum of the outcome of both dice per roll

//Try - Catch block to ensure positive integer input from user for rollTotal
System.out.println("***Welcome to the Dice Roll Probability Generator***");
while (true){
System.out.println("Enter how many dice rolls you would like to simulate: ");
try {
rollTotal = kbd.nextInt() + 1;
break;
} catch (Exception e) {
System.out.println("Please only enter a positive integer. Try again. ");
kbd.next();

}
}


int die1[] = new int[rollTotal]; //Variable for the first die
int die2[] = new int[rollTotal]; //Variable for the second die


int[] diceArray = new int[rollTotal];
for (int i=1; i<diceArray.length; i++ ) {
die1[i] = (int)(6.0*Math.random() + 1.0); //Generate random # between 1-6
die2[i] = (int)(6.0*Math.random() + 1.0);
System.out.println("***Roll " + i + "***");
System.out.print("Dice one rolled: " + die1[i] + ", dice two rolled: " + die2[i] + "\n") ;
dieSum = die1[i] + die2[i];
System.out.println("Total rolled was: " + dieSum + "\n");

}
}

}

非常感谢您帮我浏览此内容,请原谅我对网站和编程的新鲜感。

最佳答案

您需要跟踪另外两个变量:int MaximumStreak、currentStreak(初始化为 1)。

掷骰子并存储变量后,您可以检查您的掷骰是否与之前的掷骰相同并增加currentStreak:

int lastDieSum = die1[i-1] + die2[i-1];

if (lastDieSum == dieSum) {
currentStreak++;
if (currentStreak > biggestStreak) {
biggestStreak = currentStreak;
}
} else {
currentStreak = 1;
}

如果当前条纹大于最大条纹,那么最后一位现在还会将当前条纹存储在 biggestStreak 中。最后,当该值不再与 lastDieSum 相同时,当前条纹将设置回零。

希望这会有所帮助!

关于java - 基本 Java Dice 程序 - 很难找到最长的连续骰子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28354928/

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