Я пишу программу, которая возвращает случайное число из шестисторонней матрицы, а также берет строку, чтобы спросить у пользователя количество сторон для второго кубика. Если пользователь вводит числа 2,4,8,10,12,20,100, то роли в кости играют с этим количеством сторон. Если пользователь вводит номер, отличный от этого, чем второй кубик должен сыграть роль умирающего с шестью сторонами. Наша проблема заключается в том, что пользователь вводит число, отличное от заданных значений, оно возвращает 0. Нам нужно вернуть случайное число от 1 до 6, так как это шестигранная матрица. Любые предложения по исправлению кода?Die Rolling Game
//Blueprint
public class Die{
private int numSides;
private int sideFacingUp;
public int die1;
public int die2;
public int num;
public Die()
{
roll();
}
public Die(int number)
{
num = number;
if(num==2||num==4||num==8|num==10||num==12||num==20||num==100)
{
roll2(num);
}
else
{
roll();
}
}
public void roll()
{
die1= (int)(Math.random()*6)+1;
}
public void roll2(int no)
{
die2 = (int)(Math.random()*no)+1;
}
public int getDie1()
{
//System.out.println("I m here");
return die1;
}
public int getDie2()
{
return die2;
}
}
//actual program
import java.util.Scanner;
public class DieTester{
public static void main(String[] args){
int num;
Die D1 = new Die();
Scanner s1 = new Scanner(System.in);
System.out.println("The Value of the First Die:"+D1.getDie1());
System.out.println("Enter number of Die you want to create");
num = s1.nextInt();
Die D2 = new Die(num);
System.out.println("The Value of the Second Die:"+D2.getDie2());
}
}
Добро пожаловать на переполнение стека! Похоже, вам нужно научиться использовать отладчик. Пожалуйста, помогите нам с некоторыми [дополнительными методами отладки] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Если у вас все еще есть проблемы после этого, пожалуйста, не забудьте вернуться с более подробной информацией. –
Первый шаг: в вашем классе умирают от die1 и die2 и создают dieFace; Вы думаете об этом неправильно. Единственное значение, которое вы хотите вернуть, - это вершина кубика, а не две разные кости. Также избавьтесь от roll2. вам это не нужно. die1 и die2 становится dieFace и только возврат dieFace. – Sedrick
В целом, вопрос «Введите номер Die, который вы хотите создать», здесь звучит не очень хорошо. Вопрос должен быть примерно таким: «Сколько сторон или лиц вы хотите, чтобы вторая кукла имела?» – Sedrick