examples / java / hello-world / higher-lower-random-computer-player

Higher Lower (Random Computer Player)

example java hello-world higher-lower

This program creates a computer that plays the higher-lower number guessing game with you. You pick a number, and the computer tries to guess what it is. Each time the computer guesses, you tell it whether the number you’re thinking of is higher or lower than your number. The computer “remembers” your answers and gets closer with every guess.

import java.util.Scanner;

public class HigherLowerRandom{

	public static void main(String[] args){
	
		System.out.println("Think of a whole number betwen 1 and 100. I'll guess what it is!");
		System.out.println("When you're ready, type yes and press enter.");
		
		Scanner scanner = new Scanner(System.in);
		//ignore the yes
		scanner.nextLine();
		
		int min = 1;
		int max = 100;
		
		int guesses = 0;
		boolean done = false;
		while(!done){
			
			int guess = min + (int)(Math.random() * (max - min + 1));
			guesses++;
			
			System.out.println("My guess is: " + guess);
			System.out.println("Please type yes if I got it right.");
			System.out.println("Please type higher if your number is greater than " + guess + ".");
			System.out.println("Please type lower if your number is less than " + guess + ".");
			System.out.println("Then press enter.");
			
			String answer = scanner.nextLine();
						
			if(answer.equals("lower")){
				max = guess - 1;
			}
			else if(answer.equals("higher")){
				min = guess + 1;
			}
			else{
				System.out.println("Hooray!");
				System.out.println("It took me " + guesses + " guesses to get it right. Thanks for playing!");	
				done = true;
			}
		}
		scanner.close();
	}
}

higher lower game

This works by keeping track of the minimum and maximum your number could possible be. At the beginning of the program, the min is 1 and the max is 100. Then the computer chooses a random number between the min and max: let’s say the computer chooses 10. If you say your number is lower than 10, then that means the min is still 1, but the max is now 9. If you say your number is higher than 10, then the min is now 11 and the max is still 100. The range of possible numbers decreases as this process is repeated, until the computer eventually gets it right.

Tweak Ideas

Go back up