0

私はクラスのコードを書き、それを提出しました。それは機能しますが、メインの別のクラスではなく 1 つのクラスであるため、教師はそれを返しました。コードを分離する方法がわかりません。全体を書き直す必要がありますか、それとも簡単な方法はありますか?

ここに私のコードがあります:

package numberguess;
import java.util.Random;
import java.util.Scanner;

public class guessmain 
{
public static void main(String[] args)
{
    Random rand = new Random();
    int answer = rand.nextInt(100);
    answer ++;
    int tries = 0;
    Scanner input = new Scanner (System.in);
    int guess;
    boolean win = false;

    while (win == false)
    {
        System.out.println("Guess a number between 1 and 100");
        guess = input.nextInt();

        if (guess > 100)
        {
            System.out.println("Your guess is out of the range");
        }
        else if (guess < 1)
        {
            System.out.println("Your guess is out of the range");
        }
        else if (guess == answer)
        {
            win = true;
            tries++;
        }
        else if (guess < answer)
        {
            System.out.println("Your guess is too low");
            tries++;
        }
        else if (guess > answer)
        {
            System.out.println("Your guess is too high");
            tries++;
        }

    }

    System.out.println("You Win!");
    System.out.println("It took you " + tries + " tries");
}
}

(これがすべて正しくフォーマットされていることを願っています。これが私の最初の質問です)

4

4 に答える 4

0

クラスは、「懸念事項」または問題をコードのさまざまなセクションに分けるのに役立ちます。先生は、少なくとも 2 つの問題を見つけて、それらを別々のクラスに分けることを望んでいます。

飛び出す問題は

  1. 正しい答えの乱数を見つける
  2. 推測が正しくなるまで、ループ内でユーザーから入力を取得する
  3. ユーザーが正しく推測するのに必要な推測の数をカウントする
  4. 指示と「You Win」メッセージの表示
  5. 各推測の適切な出力を決定します。

問題 5 は現在、この関数で最も多くのスペースを占めているため、おそらく最初に取り組むべき問題です。

メイン関数は次のようになります

int answer = rand.nextInt(100);
guessResponder = new GuessResponder(answer);

do {
    guess = input.nextInt();
    System.out.println(guessResponder.respond(guess));
} while (guess != answer);

これにより、出力を計算するという懸念が別のクラスである に移されましたGuessResponder

幸運を!

于 2013-11-14T04:21:39.560 に答える
0

これを試して、Calculateというクラスを1つ作成し、メソッドcalculateNumberを作成して、ユーザーから取得した入力を渡します

ヒント: クラス名を最初の文字の大文字Guessmainに変更します

パッケージ番号推測;

     import java.util.Random;
      import java.util.Scanner;

        public class guessmain {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    Calculate calculate = new Calculate();
    calculate.calculateNumber(input);
}

    }

     class Calculate {

void calculateNumber(Scanner input) {
    Random rand = new Random();
    int answer = rand.nextInt(100);
    answer++;
    int tries = 0;

    int guess;
    boolean win = false;

    while (win == false) {
        System.out.println("Guess a number between 1 and 100");
        guess = input.nextInt();

        if (guess > 100) {
            System.out.println("Your guess is out of the range");
        } else if (guess < 1) {
            System.out.println("Your guess is out of the range");
        } else if (guess == answer) {
            win = true;
            tries++;
        } else if (guess < answer) {
            System.out.println("Your guess is too low");
            tries++;
        } else if (guess > answer) {
            System.out.println("Your guess is too high");
            tries++;
        }

    }

    System.out.println("You Win!");
    System.out.println("It took you " + tries + " tries");
          }
      }
于 2013-11-14T04:22:03.437 に答える
0

次のようなゲーム ロジック クラスを作成します。

import java.util.Random;
import java.util.Scanner;

public class GuessLogic {

    Scanner input = new Scanner(System.in);
    boolean win;

    public boolean guess() {
        System.out.println("Guess a number between 1 and 100");
        int guess = input.nextInt();
        int answer = new Random().nextInt(100);
        win = false;
        if (guess > 100) {
            System.out.println("Your guess is out of the range");
        } else if (guess < 1) {
            System.out.println("Your guess is out of the range");
        } else if (guess == answer) {
            win = true;
        } else if (guess < answer) {
            System.out.println("Your guess is too low");
        } else if (guess > answer) {
            System.out.println("Your guess is too high");
        }
        return win;
    }

}

そして、次のようなメインクラス

public class GuessMain {
    public static void main(String[] args) {
        GuessLogic guessLogic = new GuessLogic();
        int tries = 1;
        while (!guessLogic.guess()) {
            tries++;
        }
        System.out.println("You Win!");
        System.out.println("It took you " + tries + " tries");
    }
}
于 2013-11-14T04:41:04.990 に答える