## DEV Community

Foolish Developer

Posted on

# 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:

``````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) {
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();
}
}

``````

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).

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

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.

``````int lowerBound = 1;
int upperBound = 100;
``````

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.

``````int secretNumber = random.nextInt(upperBound - lowerBound + 1) + lowerBound;
``````

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.

``````int numberOfTries = 0;
boolean hasGuessedCorrectly = false;

``````

5. Welcome Message:

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

``````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.");

``````

6. Game Loop:

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

``````while (!hasGuessedCorrectly) {
``````

7. User Input and Guessing Logic:

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

``````int userGuess = scanner.nextInt();
numberOfTries++;

``````

8. Checking User Input:

``````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.");
}

``````
• 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.

``````scanner.close();
``````

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.

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.