В настоящее время я работаю над базовым (и, как я вижу, часто назначаемым) проектом java, в котором я должен создать программу, которая имитирует свертку кубиков. В моем проекте я только имитирую катящийся двух шестигранных кристаллов. Для выполнения этой задачи необходимо использовать массивы.Базовая программа Java Dice - проблема с поиском самой длинной полосы
До сих пор у меня есть блок try/catch, который запрашивает у пользователя количество рулонов, которые они хотели бы имитировать, и гарантирует, что они дают целочисленный ввод. Это, в свою очередь, создает длину массива для имитатора кубиков. До этого момента мой код работает, но теперь я застрял в том, как найти самую длинную строку последовательных сумм в этом массиве.
Я уверен, что мне нужно сравнивать значение 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");
}
}
}
Большое спасибо за то, взглянуть на это для меня, и простите за свежесть сайта и программирования в целом.
Я хотел бы добавить, что до сих пор мой код успешно имитировал перекатывание двух кубиков и добавлял их сумму для количества испытаний, определенных пользователем. –