Read Also: Hangman Game in Java
Rules of the Number Guessing Game
1. The computer randomly selects the SECRET number within the defined range of numbers, here 1 to 100, and prompts the player to guess the number.2. In this program, we ask the player to enter any number between 1 to 100. The player enters any random number within the defined range. We call it as inputNumber.
3. If the player number i.e inputNumber is same as the SECRET number then the game stops, otherwise,
3.a. If the player number is lesser than the SECRET number then, the range of the number to choose from will be changed, that is now the player has to select a number between inputNumber to 100.
3.b. If the player inputNumber is greater than the SECRET number then,
the range of the numbers to select an input from for player will be reduced from 1 to inputNumber.
4. The game continues till the player guesses the correct number within a given number of tries.
Number Guessing Game in Java Program Code:
import java.util.Scanner; /****************************************************** / ** Program: GuessingNumberGame.java** ** Author: ** ** Date: 20 April 2013 /******************************************************/ public class GuessingNumberGame { /** * @Range defined below */ static int low=1,high=100; static int numberOfTurnsLeft = 5;
public static void main(String[] args) { gameBegins(); } public static void gameBegins() { int secretNumber=0; double i =Math.random(); if(i != 0) secretNumber= (int) (i*101); else { gameBegins(); System.out.println("Please enter a valid number"); } System.out.println(""); System.out.println("-------------------------"); System.out.println("NEW GAME "); System.out.println("-------------------------"); System.out.println(""); System.out.println(""); System.out.println("pick a number between 1-100! You will get 5 turns"); while(true) { int inputNumber = playerInput(); predictionResult(inputNumber, secretNumber); } } public static int playerInput() { Scanner in = new Scanner(System.in); int playerInput= in.nextInt(); System.out.println("player guesses "+ playerInput); return playerInput; } public static void predictionResult(int inputNumber , int secretNumber) { /* Check if inputNumber is lesser than secretNumber */ if(inputNumber < secretNumber) { low=inputNumber; System.out.println(" Sorry,that is too low "); low=low+1; numberOfTurnsLeft = numberOfTurnsLeft-1; if (numberOfTurnsLeft == 0) { System.out.println("YOU LOSE! The SECRET number was "+ secretNumber); playAgain(); } System.out.println("pick a number between "+low +"-"+high + " and turns left "+ numberOfTurnsLeft); } /* Check if inputNumber is higher than secretNumber */ else if(inputNumber > secretNumber) { high=inputNumber; System.out.println(" Sorry,that number is too high "); high=high-1; numberOfTurnsLeft = numberOfTurnsLeft-1; if (numberOfTurnsLeft == 0) { System.out.println("YOU LOSE! The SECRET number was "+ secretNumber); playAgain(); } System.out.println("pick a number between "+low +"-"+high + " and turns left "+ numberOfTurnsLeft); } else { System.out.println("YOU WIN! The SECRET number was "+ secretNumber); playAgain(); } } public static void playAgain() { low=1; high=100; numberOfTurnsLeft = 5; gameBegins(); } }
Output:
Algorithm:
1. The computer randomly selects one secret number. It prompts the player to guess it correctly in the minimum number of attempts within a defined range here 1 to 100.2. Player inputs any number within the defined range.
3. If
inputNumber is greater than the secret number than range reduces to 1 to inputNumber
else
range reduces to inputNumber to 100
4. Repeat steps from 2 again.
Here we make sure that the game starts again once it is finished. You can also make it an automated program, that is the computer will set the SECRET number and then computer only will try to find it. For that, you just need to use a random method again and compare it with the target or secret number.
That's all for today. Please mention in comments in case you have any questions related to the number guessing game in java with source code.
You may also like:
Rock Paper Scissor game in java (answer)
Hangman game in java (solution)
Snakes and Ladders game in java (answer)
Tic tac toe gui based game in java (solution)
Tic tac toe console game in java (solution)