ユーザーが転がしたい面の数とサイコロの数を入力し、サイコロごとにロールを出力する単純なサイコロプログラムを作成しようとしています。ユーザーが以前に入力した情報を再入力することなく、同じ面数の同じ数のサイコロを再ロールできるようにする while ループを含めました。私が抱えている問題は、「while」ループの「if」ステートメントで「q」メソッドを呼び出すと、サイコロが再ロールされないことです。アドバイス?:
import java.util.Random;
import java.util.Scanner;
public class Choice_Dice {
static int t = 0, sides, c=0, d =0;
public static void main(String [] Mack){
Scanner scan = new Scanner(System.in);
String y ="y";
System.out.println("You may roll a dice with any number of sides");
System.out.println("Enter the number of sides you would like to the dice to have: ");
sides = scan.nextInt();
System.out.println("Enter the number of dice you want to roll: ");
t = scan.nextInt();
q();
while(y.equals("y"))
{
System.out.println("Would you like to roll again(y or n): ");
y = scan.next();
if(y.equals("y")){
q();
}
else
System.out.println("Thanks");
}
}
public static void q()
{
int[] x = new int[t];
c = 0;
while(c != t)
{
x[c] = roll(sides);
c++;
}
while(d != t)
{
System.out.println("You rolled " + x[d]);
d++;
}
}
public static int roll(int s)
{
Random generator = new Random();
int dice = 0;
dice = generator.nextInt(4) + 1;
return dice;
}
}