-2

私は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用に別のクラスが必要かどうかわかりません。

4

1 に答える 1

0
class Die 
{
    private int sides;

    private int value;

    public Die() {
        this.sides = 6;
    }           // default to six-sided die

    public Die(int sides) {
        this.sides = sides;
    }  // variable number of sides

    public void roll() {
        value = (int)(Math.random() * (sides-1)) + 1;
    }     // randomly picks a face value

    public int getValue() {
        return value;
    }  // returns the face value

}// end class Die
于 2013-02-09T00:03:12.327 に答える