Пока что я использую .charAt (), чтобы различить первый и третий символы, скажем, «1d6», что означает бросок шестигранного кубика один раз.Для этого я создал цикл for, чтобы использовать случайный класс с диапазоном 1 и типом матрицы (в данном случае 6), и цикл должен выполнять его несколько раз, определяемый входом (в этом случае1).Проблема в том, что значения, которые я получаю, довольно случайны.
import java.util.Scanner;
import java.util.Random;
public class DiceRoller3 {
public static void main(String[] args) {
//Creates a new scanner object
Scanner input = new Scanner(System.in);
//Creates a new Random object
Random random = new Random();
//fluff text
//System.out.println("What would you like to roll?");
//Sets dieInput equal to the input the scanner reads.
String dieInput = input.next();
//sets noOfDice equal the the first character of the dieInput String
int noOfDice = dieInput.charAt(0);
//sets dieType equal to the 3rd character of the dieInput String
int dieType = dieInput.charAt(2);
//test to show the value of noOfDice and dieType
System.out.println(dieInput);
System.out.println(noOfDice);
System.out.println(dieType);
//Loop to roll the die type determined by the input, a number of times
that is also determined by the input
for(int x = 1; x <= noOfDice; x++)
{
int roll = random.nextInt(dieType) + 1;
System.out.println(roll);
}
}
}
Когда я запускаю это, программа сообщает мне, что значения noOfDice и dieType равны 49 или 50 иликакое-то другое большое число, которое я не понимаю, почему это так.значение dieInput является правильным, но когда два символа считываются из dieInput, они становятся неправильными.есть мысли о том, почему это может быть?а также любые другие проблемы в моем коде.
Отказ от ответственности: я довольно новичок в кодировании, и я пытаюсь сделать это с тем, что я знаю (сканер и случайные, например), я думаю, что есть более эффективные способы сделать то, что я хочу, но я пытаюсь сделатьэто с инструментами, которые у меня есть.