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로 추측 게임을 개발하는 단계를 살펴보겠습니다.

  • 프로그램에서 난수를 가져와 정수 데이터 유형의 변수에 저장합니다.
  • 이제 사용자로부터 입력을 받습니다. 입력 데이터 유형은 실제 난수와 동일해야 합니다.
  • 다음 단계는 사용자의 번호와 실제 난수를 비교하는 것입니다.
  • 사용자가 추측한 숫자가 실제 난수보다 크면 높은 값 메시지를 표시합니다.
  • 사용자가 추측한 숫자가 실제 난수보다 작으면 낮은 값 메시지를 표시합니다.
  • 사용자가 추측한 숫자가 실제 난수와 같은 경우. 사용자가 게임에서 승리했습니다. 다시 재생을 요청합니다.
  • 트레일 수에 도달했지만 사용자가 숫자를 추측하지 못한 경우 실제 숫자를 표시하고 다시 재생을 요청합니다.

Random() 메서드를 사용하여 Java에서 난수 생성

Java에서 난수를 생성하는 것은 매우 쉽습니다. Java는 난수 java.util.Random에 대한 전체 라이브러리를 전용했으며 import 키워드로 쉽게 가져올 수 있습니다.

Java에서 random을 가져오기 위한 적절한 구문은 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 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