私は2つのサイコロを振り、ユーザーに振りを繰り返すオプションを与えるプログラムを書いています(y / nを続ける)。さらに、アプリケーションは、7または2(ヘビの目)をロールするように特定のロールが作成されたときにそれを認識する必要があります。助けてください。以下は、アプリケーションがそれをコーディングする方法がわからないために必要なものの概要について私が持っているものです。
mainメソッドで使用する独自のクラスを作成するのはこれが初めてです。レイアウトは次のとおりです。
public class DiceRollerApp
{
public static void main(String[] args)
{
}// end main method
}// end App class
class Die
{
public Die()
{} // default to six-sided die
public Die(int sides)
{} // variable number of sides
public void roll()
{} // randomly picks a face value
public int getValue()
{} // returns the face value
}// end class Die
class PairOfDice
{
public PairOfDice()
{} // default to six-sided dice
public PairOfDice(int sides)
{} // variable number of sides
public void roll()
{} // roll both dice
public int getValue1(){} // get value of die1
public int getValue2(){} // get value of die2
public int getSum() {}
// get sum of both dice
}// end class PairOfDice
public class Validator
{
public static String getString(Scanner sc, String prompt)
{
System.out.print(prompt);
String s = sc.next(); // read user entry
sc.nextLine(); // discard any other data entered on the line
return s;
}
public static int getInt(Scanner sc, String prompt)
{
int i = 0;
boolean isValid = false;
while (isValid == false)
{
System.out.print(prompt);
if (sc.hasNextInt())
{
i = sc.nextInt();
isValid = true;
}
else
{
System.out.println("Error! Invalid integer value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return i;
}
public static int getInt(Scanner sc, String prompt,
int min, int max)
{
int i = 0;
boolean isValid = false;
while (isValid == false)
{
i = getInt(sc, prompt);
if (i <= min)
System.out.println(
"Error! Number must be greater than " + min + ".");
else if (i >= max)
System.out.println(
"Error! Number must be less than " + max + ".");
else
isValid = true;
}
return i;
}
public static double getDouble(Scanner sc, String prompt)
{
double d = 0;
boolean isValid = false;
while (isValid == false)
{
System.out.print(prompt);
if (sc.hasNextDouble())
{
d = sc.nextDouble();
isValid = true;
}
else
{
System.out.println("Error! Invalid decimal value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return d;
}
public static double getDouble(Scanner sc, String prompt,
double min, double max)
{
double d = 0;
boolean isValid = false;
while (isValid == false)
{
d = getDouble(sc, prompt);
if (d <= min)
System.out.println(
"Error! Number must be greater than " + min + ".");
else if (d >= max)
System.out.println(
"Error! Number must be less than " + max + ".");
else
isValid = true;
}
return d;
}
} // end class Validator
私はすでにバリデータークラスを作成しましたが、ここには投稿しませんでした。その目的は、「続行しますか?y / n:」という質問の文字列を単純に検証することです。
ダイクラスとダイスクラスのペアをコーディングする方法がわかりません。また、DiceRollerApp用に別のクラスが必要かどうかわかりません。