Java で数値推測ゲームを作成する

Zeeshan Afridi 2023年10月12日
Java で数値推測ゲームを作成する

推測ゲームはユーザーにとって非常に簡単です。k 回の試行のうち、ゲームに勝つための正しい数を推測しているだけです。しかし、開発者の側にとっては、それはそれほど単純ではありません。

Java で数値推測ゲームを作成する

開発者は、このゲームの制約とアルゴリズムを覚えておく必要があります。

ゲームルールの推測

推測ゲームを開発するには、ルールを念頭に置く必要があります。ゲームに勝つためには、ユーザーはゲームの定義された制約を満たす必要があります。

  1. 番号の範囲は、好みに応じて異なる場合があります。ただし、このプログラムの場合、範囲は 1〜100 です。

  2. 推測された数がユーザーが入力した数よりも大きい場合、プログラムはメッセージで応答します。Oops! Your guess was too HIGH, Try some lower numbers と表示されます。

  3. 推測された数がユーザーが入力した数よりも小さい場合、プログラムはメッセージで応答します。Opss! Your guess was too LOW, try some higher numbers.

  4. ユーザーが入力した数が実際の推測数と同じである場合、ユーザーは勝ちました。表示されるメッセージは Perfect! You got it Right!

    ユーザーはもう一度プレイするように求められます。彼はゲームを終了するか、もう一度プレイするかを選択できます。

  5. 試行回数の制限に達し、ユーザーが試行回数を推測しなかった場合、ゲームは終了し、次のメッセージが表示されます。

    The number was 64
    Better luck next time
    Want to Play again?(y/n)
    

    ユーザーは、もう一度プレイするか、ゲームを終了することができます。

Java で推測ゲームを作成するためのアルゴリズム

このアルゴリズムは、問題に対する段階的な解決策です。推測ゲームのアルゴリズムは非常に単純です。

Java で推測ゲームを開発するための手順を見てみましょう。

  • プログラムからランダムな数値を取得し、整数データタイプの変数に格納します。
  • 次に、ユーザーからの入力を受け取ります。入力データタイプは、実際のランダム数と同じである必要があります。
  • 次のステップは、ユーザーの番号と実際のランダムな番号を比較することです。
  • ユーザーの推測数が実際のランダム数よりも大きい場合は、値が高いというメッセージを表示します。
  • ユーザーの推測数が実際のランダム数よりも少ない場合は、値が低いというメッセージを表示します。
  • ユーザーの推測数が実際のランダム数と等しい場合。ユーザーがゲームに勝ちました。もう一度プレイしてもらいます。
  • トレイルの数に達していて、ユーザーがその数を推測していない場合は、実際の数を表示して、もう一度プレイするように依頼してください。

Java で Random() メソッドを使用してランダム番号を生成する

Java でランダムな数値を生成するのは非常に簡単です。Java は、ランダム番号 java.util.Random 専用のライブラリ全体を備えており、import キーワードを使用して簡単にインポートできます。

Java でランダムをインポートするための適切な構文は、import java.util.Random; です。

サンプルコード:

package articlecodesinjava;
import java.util.Random;
public class GuessingGame {
  public static void main(String[] args) {
    int x;
    Random generator = new Random();
    System.out.println("5 random numbers from 0 to 10");
    for (int i = 0; i < 5; i++) {
      x = generator.nextInt(5);
      System.out.print(x + " , ");
    }
  }
}

出力:

5 random numbers from 0 to 10
3 , 1 , 3 , 4 , 4 ,

Java での推測ゲームのサンプルコード

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

public class GuessingGame {
  public static void main(String[] args) {
    int ans, guess, guessNum = 0;
    final int maxGuesses = 5;
    String str, playAgain = "y";

    Scanner scan = new Scanner(System.in);
    Random generator = new Random();
    ans = generator.nextInt(101) + 1;

    while (playAgain.equals("y") || playAgain.equals("Y")) {
      System.out.println("Hey Welcome to the game \nGuess a number between 1 and 100");
      System.out.println("Guess a number (0 to quit):");

      guess = scan.nextInt();
      guessNum = 0;
      while (guess != 0) {
        guessNum++;
        if (guess == ans) {
          System.out.println("Perfect! You got it Right!");
          break;
        } else if (guess < ans)
          System.out.println("Opss! Your guess was too LOW, try some higher numbers.");
        else if (guess > ans)
          System.out.println("Opps! Your guess was too HIGH, Try some lower numbers");
        if (guessNum == maxGuesses) {
          System.out.println("The number was " + ans + "\nBetter luck next time");
          break;
        }
        System.out.println("Enter your guess (0 to quit):");
        guess = scan.nextInt();
      }
      System.out.println("Want to Play again?(y/n)");
      playAgain = scan.next();
    }
    System.out.println("Thanks for playing!");
  }
}

出力:

Hey Welcome to the game
Guess a number between 1 and 100
Guess a number (0 to quit):
1
Opss! Your guess was too LOW, try some higher numbers.
Enter your guess (0 to quit):
2
Opss! Your guess was too LOW, try some higher numbers.
Enter your guess (0 to quit):
55
Opss! Your guess was too LOW, try some higher numbers.
Enter your guess (0 to quit):
76
Opps! Your guess was too HIGH, Try some lower numbers
Enter your guess (0 to quit):
78
Opps! Your guess was too HIGH, Try some lower numbers
The number was 64
Better luck next time
Want to Play again?(y/n)
著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn