Simple Number Guessing Game in Java

In the world of programming, games provide a fascinating platform for honing your skills and creating engaging user experiences.

One such game that offers a perfect blend of fun and learning is the Number Guessing Game in Java.

In this article, we’ll take you through the process of building a Number Guessing Game in Java, a versatile and widely-used programming language.

Number Guessing Game in Java

In this Number Guessing Game in Java, the computer randomly selects a number, and the player has to guess it.

The player keeps guessing until they guess the correct number. The program will provide feedback on whether the guess is too high or too low. Here’s the code:

<span>import</span> <span>java.util.Scanner</span><span>;</span>
<span>import</span> <span>java.util.Random</span><span>;</span>
<span>public</span> <span>class</span> <span>NumberGuessingGame</span> <span>{</span>
<span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span>
<span>Scanner</span> <span>scanner</span> <span>=</span> <span>new</span> <span>Scanner</span><span>(</span><span>System</span><span>.</span><span>in</span><span>);</span>
<span>Random</span> <span>random</span> <span>=</span> <span>new</span> <span>Random</span><span>();</span>
<span>int</span> <span>lowerBound</span> <span>=</span> <span>1</span><span>;</span> <span>// Set the lower bound of the number range</span>
<span>int</span> <span>upperBound</span> <span>=</span> <span>100</span><span>;</span> <span>// Set the upper bound of the number range</span>
<span>int</span> <span>secretNumber</span> <span>=</span> <span>random</span><span>.</span><span>nextInt</span><span>(</span><span>upperBound</span> <span>-</span> <span>lowerBound</span> <span>+</span> <span>1</span><span>)</span> <span>+</span> <span>lowerBound</span><span>;</span>
<span>int</span> <span>numberOfTries</span> <span>=</span> <span>0</span><span>;</span>
<span>boolean</span> <span>hasGuessedCorrectly</span> <span>=</span> <span>false</span><span>;</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Welcome to the Number Guessing Game!"</span><span>);</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"I've selected a random number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>". Try to guess it."</span><span>);</span>
<span>while</span> <span>(!</span><span>hasGuessedCorrectly</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>print</span><span>(</span><span>"Enter your guess: "</span><span>);</span>
<span>int</span> <span>userGuess</span> <span>=</span> <span>scanner</span><span>.</span><span>nextInt</span><span>();</span>
<span>numberOfTries</span><span>++;</span>
<span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>lowerBound</span> <span>||</span> <span>userGuess</span> <span>></span> <span>upperBound</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Please guess a number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>"."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>secretNumber</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too low. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span>></span> <span>secretNumber</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too high. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>{</span>
<span>hasGuessedCorrectly</span> <span>=</span> <span>true</span><span>;</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Congratulations! You've guessed the number "</span> <span>+</span> <span>secretNumber</span> <span>+</span> <span>" in "</span> <span>+</span> <span>numberOfTries</span> <span>+</span> <span>" tries."</span><span>);</span>
<span>}</span>
<span>}</span>
<span>scanner</span><span>.</span><span>close</span><span>();</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>java.util.Scanner</span><span>;</span>
<span>import</span> <span>java.util.Random</span><span>;</span>

<span>public</span> <span>class</span> <span>NumberGuessingGame</span> <span>{</span>
    <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span>
        <span>Scanner</span> <span>scanner</span> <span>=</span> <span>new</span> <span>Scanner</span><span>(</span><span>System</span><span>.</span><span>in</span><span>);</span>
        <span>Random</span> <span>random</span> <span>=</span> <span>new</span> <span>Random</span><span>();</span>

        <span>int</span> <span>lowerBound</span> <span>=</span> <span>1</span><span>;</span> <span>// Set the lower bound of the number range</span>
        <span>int</span> <span>upperBound</span> <span>=</span> <span>100</span><span>;</span> <span>// Set the upper bound of the number range</span>
        <span>int</span> <span>secretNumber</span> <span>=</span> <span>random</span><span>.</span><span>nextInt</span><span>(</span><span>upperBound</span> <span>-</span> <span>lowerBound</span> <span>+</span> <span>1</span><span>)</span> <span>+</span> <span>lowerBound</span><span>;</span>
        <span>int</span> <span>numberOfTries</span> <span>=</span> <span>0</span><span>;</span>
        <span>boolean</span> <span>hasGuessedCorrectly</span> <span>=</span> <span>false</span><span>;</span>

        <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Welcome to the Number Guessing Game!"</span><span>);</span>
        <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"I've selected a random number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>". Try to guess it."</span><span>);</span>

        <span>while</span> <span>(!</span><span>hasGuessedCorrectly</span><span>)</span> <span>{</span>
            <span>System</span><span>.</span><span>out</span><span>.</span><span>print</span><span>(</span><span>"Enter your guess: "</span><span>);</span>
            <span>int</span> <span>userGuess</span> <span>=</span> <span>scanner</span><span>.</span><span>nextInt</span><span>();</span>
            <span>numberOfTries</span><span>++;</span>

            <span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>lowerBound</span> <span>||</span> <span>userGuess</span> <span>></span> <span>upperBound</span><span>)</span> <span>{</span>
                <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Please guess a number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>"."</span><span>);</span>
            <span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>secretNumber</span><span>)</span> <span>{</span>
                <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too low. Try again."</span><span>);</span>
            <span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span>></span> <span>secretNumber</span><span>)</span> <span>{</span>
                <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too high. Try again."</span><span>);</span>
            <span>}</span> <span>else</span> <span>{</span>
                <span>hasGuessedCorrectly</span> <span>=</span> <span>true</span><span>;</span>
                <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Congratulations! You've guessed the number "</span> <span>+</span> <span>secretNumber</span> <span>+</span> <span>" in "</span> <span>+</span> <span>numberOfTries</span> <span>+</span> <span>" tries."</span><span>);</span>
            <span>}</span>
        <span>}</span>

        <span>scanner</span><span>.</span><span>close</span><span>();</span>
    <span>}</span>
<span>}</span>
import java.util.Scanner; import java.util.Random; public class NumberGuessingGame { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); int lowerBound = 1; // Set the lower bound of the number range int upperBound = 100; // Set the upper bound of the number range int secretNumber = random.nextInt(upperBound - lowerBound + 1) + lowerBound; int numberOfTries = 0; boolean hasGuessedCorrectly = false; System.out.println("Welcome to the Number Guessing Game!"); System.out.println("I've selected a random number between " + lowerBound + " and " + upperBound + ". Try to guess it."); while (!hasGuessedCorrectly) { System.out.print("Enter your guess: "); int userGuess = scanner.nextInt(); numberOfTries++; if (userGuess < lowerBound || userGuess > upperBound) { System.out.println("Please guess a number between " + lowerBound + " and " + upperBound + "."); } else if (userGuess < secretNumber) { System.out.println("Too low. Try again."); } else if (userGuess > secretNumber) { System.out.println("Too high. Try again."); } else { hasGuessedCorrectly = true; System.out.println("Congratulations! You've guessed the number " + secretNumber + " in " + numberOfTries + " tries."); } } scanner.close(); } }

Enter fullscreen mode Exit fullscreen mode

Step by Step Explanation

Here’s an explanation of the code for the number guessing game in Java:

1. Import Statements:
These statements import necessary classes for handling user input (Scanner) and generating random numbers (Random).

<span>import</span> <span>java.util.Scanner</span><span>;</span>
<span>import</span> <span>java.util.Random</span><span>;</span>
<span>import</span> <span>java.util.Scanner</span><span>;</span>
<span>import</span> <span>java.util.Random</span><span>;</span>
import java.util.Scanner; import java.util.Random;

Enter fullscreen mode Exit fullscreen mode

2. Variable Initialization:

These variables set the lower and upper bounds for the range of numbers that the user can guess. In this example, the range is from 1 to 100.

<span>int</span> <span>lowerBound</span> <span>=</span> <span>1</span><span>;</span>
<span>int</span> <span>upperBound</span> <span>=</span> <span>100</span><span>;</span>
<span>int</span> <span>lowerBound</span> <span>=</span> <span>1</span><span>;</span>
<span>int</span> <span>upperBound</span> <span>=</span> <span>100</span><span>;</span>
int lowerBound = 1; int upperBound = 100;

Enter fullscreen mode Exit fullscreen mode

3. Generating the Secret Number:

This line generates a random number within the specified range using the Random class. It ensures that the secret number is within the specified bounds.

<span>int</span> <span>secretNumber</span> <span>=</span> <span>random</span><span>.</span><span>nextInt</span><span>(</span><span>upperBound</span> <span>-</span> <span>lowerBound</span> <span>+</span> <span>1</span><span>)</span> <span>+</span> <span>lowerBound</span><span>;</span>
<span>int</span> <span>secretNumber</span> <span>=</span> <span>random</span><span>.</span><span>nextInt</span><span>(</span><span>upperBound</span> <span>-</span> <span>lowerBound</span> <span>+</span> <span>1</span><span>)</span> <span>+</span> <span>lowerBound</span><span>;</span>
int secretNumber = random.nextInt(upperBound - lowerBound + 1) + lowerBound;

Enter fullscreen mode Exit fullscreen mode

4. Game Variables:

numberOfTries keeps track of how many attempts the player has made, and hasGuessedCorrectly is a boolean variable to determine if the player has guessed the correct number.

<span>int</span> <span>numberOfTries</span> <span>=</span> <span>0</span><span>;</span>
<span>boolean</span> <span>hasGuessedCorrectly</span> <span>=</span> <span>false</span><span>;</span>
<span>int</span> <span>numberOfTries</span> <span>=</span> <span>0</span><span>;</span>
<span>boolean</span> <span>hasGuessedCorrectly</span> <span>=</span> <span>false</span><span>;</span>
int numberOfTries = 0; boolean hasGuessedCorrectly = false;

Enter fullscreen mode Exit fullscreen mode

5. Welcome Message:

These lines provide a welcoming message and inform the player about the range of numbers to guess from.

<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Welcome to the Number Guessing Game!"</span><span>);</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"I've selected a random number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>". Try to guess it."</span><span>);</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Welcome to the Number Guessing Game!"</span><span>);</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"I've selected a random number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>". Try to guess it."</span><span>);</span>
System.out.println("Welcome to the Number Guessing Game!"); System.out.println("I've selected a random number between " + lowerBound + " and " + upperBound + ". Try to guess it.");

Enter fullscreen mode Exit fullscreen mode

6. Game Loop:

This while loop runs as long as the player has not guessed the correct number.

<span>while</span> <span>(!</span><span>hasGuessedCorrectly</span><span>)</span> <span>{</span>
<span>while</span> <span>(!</span><span>hasGuessedCorrectly</span><span>)</span> <span>{</span>
while (!hasGuessedCorrectly) {

Enter fullscreen mode Exit fullscreen mode

7. User Input and Guessing Logic:

It reads the user’s input as their guess and increments the numberOfTries counter.

<span>int</span> <span>userGuess</span> <span>=</span> <span>scanner</span><span>.</span><span>nextInt</span><span>();</span>
<span>numberOfTries</span><span>++;</span>
<span>int</span> <span>userGuess</span> <span>=</span> <span>scanner</span><span>.</span><span>nextInt</span><span>();</span>
<span>numberOfTries</span><span>++;</span>
int userGuess = scanner.nextInt(); numberOfTries++;

Enter fullscreen mode Exit fullscreen mode

8. Checking User Input:

<span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>lowerBound</span> <span>||</span> <span>userGuess</span> <span>></span> <span>upperBound</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Please guess a number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>"."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>secretNumber</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too low. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span>></span> <span>secretNumber</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too high. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>{</span>
<span>hasGuessedCorrectly</span> <span>=</span> <span>true</span><span>;</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Congratulations! You've guessed the number "</span> <span>+</span> <span>secretNumber</span> <span>+</span> <span>" in "</span> <span>+</span> <span>numberOfTries</span> <span>+</span> <span>" tries."</span><span>);</span>
<span>}</span>
<span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>lowerBound</span> <span>||</span> <span>userGuess</span> <span>></span> <span>upperBound</span><span>)</span> <span>{</span>
    <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Please guess a number between "</span> <span>+</span> <span>lowerBound</span> <span>+</span> <span>" and "</span> <span>+</span> <span>upperBound</span> <span>+</span> <span>"."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span><</span> <span>secretNumber</span><span>)</span> <span>{</span>
    <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too low. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>if</span> <span>(</span><span>userGuess</span> <span>></span> <span>secretNumber</span><span>)</span> <span>{</span>
    <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Too high. Try again."</span><span>);</span>
<span>}</span> <span>else</span> <span>{</span>
    <span>hasGuessedCorrectly</span> <span>=</span> <span>true</span><span>;</span>
    <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Congratulations! You've guessed the number "</span> <span>+</span> <span>secretNumber</span> <span>+</span> <span>" in "</span> <span>+</span> <span>numberOfTries</span> <span>+</span> <span>" tries."</span><span>);</span>
<span>}</span>
if (userGuess < lowerBound || userGuess > upperBound) { System.out.println("Please guess a number between " + lowerBound + " and " + upperBound + "."); } else if (userGuess < secretNumber) { System.out.println("Too low. Try again."); } else if (userGuess > secretNumber) { System.out.println("Too high. Try again."); } else { hasGuessedCorrectly = true; System.out.println("Congratulations! You've guessed the number " + secretNumber + " in " + numberOfTries + " tries."); }

Enter fullscreen mode Exit fullscreen mode

  • If the user’s guess is outside the specified range, it prompts the user to guess within the range.
  • If the guess is lower than the secret number, it informs the user that their guess is too low.
  • If the guess is higher than the secret number, it informs the user that their guess is too high.
  • If the guess matches the secret number, it sets hasGuessedCorrectly to true, and the game loop ends. It also displays a congratulatory message with the correct number and the number of tries.

9. Closing the Scanner:

This line closes the Scanner object when the game is over.

<span>scanner</span><span>.</span><span>close</span><span>();</span>
<span>scanner</span><span>.</span><span>close</span><span>();</span>
scanner.close();

Enter fullscreen mode Exit fullscreen mode

Overall, this code creates a simple number guessing game where the player needs to guess a random number within a specified range.

It provides feedback on the player’s guesses and counts the number of attempts it took to guess the correct number.

Related Post:

  1. Simple Footer HTML CSS
  2. Stopwatch using JavaScript
  3. CSS Floating Action Button
  4. Javascript Age Calculator
  5. Pre Schools in Koramangala
  6. Automatic Image Slider in Html CSS

Creating a Number Guessing Game in Java is not only a fun and educational project but also a fantastic way to enhance your programming skills.

原文链接:Simple Number Guessing Game in Java

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
The worst sort of indolence is being given a choice, yet taking no initiative to change.
我们人生中最大的懒惰,就是当我们明知自己拥有作出选择的能力,却不去主动改变而是放任它的生活态度
评论 抢沙发

请登录后发表评论

    暂无评论内容