# Reverse Number guessing game

• 04-23-2011, 05:11 AM
rarman555
Reverse Number guessing game
I call this a reverse number guessing game because usually the computer would generate a number for you to guess, but I want the computer to guess my number by guessing randomly in decreasing ranges depending on if I say too high or too low.

The biggest problem I'm having is making the range of the random number be correct. It likes to guess numbers out of the range.

The computer starts off by giving me a number from 1 - 100. Then i type in "th", "tl", or "co" (too high, too low, correct).

If I say too low the lowest number in the range should change to the previous guess and same for if i say too high (but it gets set to the previous highest number instead of previous lowest).

This should decrease the range of the random generator until it gets to the point where the range is so small that the computer can only guess my number or it might just get lucky before that (just like a human).

Here's the code:
Code:

```import java.util.*;        public class computer_guess {         public static void main(String[] args)         {                 Scanner console;                 console = new Scanner(System.in);                 Random aRandom = new Random();                                 int                          prev_low = 1,                         prev_high = 100,                         guess = aRandom.nextInt(prev_high) + prev_low,                         guesses = 0;                                         //        long time = 0;                                 boolean win = false;                                 String feedback;                                                         while(!win)                 {                         System.out.println("My guess is: " + guess);                         feedback = console.nextLine();                         //                                                 if(feedback.equals("tl") || feedback.equals("th") || feedback.equals("co"))                         {                                 if(feedback.equals("tl"))//too low                                 {                                         prev_low = guess;                                         System.out.println(feedback);                                 }                                 else if(feedback.equals("th"))//too high                                 {                                         prev_high = guess;                                         System.out.println(feedback);                                 }                                 else if(feedback.equals("co"))//correct                                 {                                         System.out.print("Yay, I WIN!");                                         win = true;                                         System.out.println(feedback);                                 }                                                                 guess = aRandom.nextInt(prev_high) + prev_low;                                 //++guesses;                                 //feedback = " ";                                 //System.out.print(feedback);                         }                 }         } }```
• 04-23-2011, 07:34 AM
nikkka
Now, look. I edited your code, so that it works. But you have to find out what was the matter yourself. And, use debugger.
Code:

```import java.util.*;        public class Bounce {         public static void main(String[] args)         {                 Scanner console;                 console = new Scanner(System.in);                 Random aRandom = new Random();                                 int                          prev_low = 1,                         prev_high = 100,                         guess = aRandom.nextInt(prev_high) + prev_low,                         guesses = 0;                                         //        long time = 0;                                 boolean win = false;                                 String feedback;                                 while(!win)                 {                         guess = aRandom.nextInt(prev_high-prev_low) + prev_low;                         System.out.println("My guess is: " + guess);                         feedback = console.nextLine();                         if(feedback.equals("tl") || feedback.equals("th") || feedback.equals("co"))                         {                                 if(feedback.equals("tl"))                                         prev_low = guess;                                 if(feedback.equals("th"))                                         prev_high = guess;                                 if(feedback.equals("co")) {                                         System.out.print("Yay, I WIN!");                                         win = true;                                 }                                 //++guesses;                                 //feedback = " ";                                 //System.out.print(feedback);                         }                 }         } }```
• 04-23-2011, 07:56 AM
JosAH
Quote:

Originally Posted by rarman555
Code:

```                        guess = aRandom.nextInt(prev_high) + prev_low;```

This line most certainly isn't correct; make it:

Code:

`guess = aRandom.nextInt(prev_high-prev_low) + prev_low;`
kind regards,

Jos
• 04-23-2011, 08:02 AM
rarman555
thanks for the help guys but i actually figured it out not too long after i posted this :p
• 04-23-2011, 03:59 PM
doWhile
Quote:

thanks for the help guys but i actually figured it out not too long after i posted this
indeed. Cross posted at Reverse Number guessing game
• 04-23-2011, 04:05 PM
JosAH
Quote:

Originally Posted by doWhile
indeed. Cross posted at Reverse Number guessing game

It's the lying part "I actually figured it out", I dislike most.

kind regards,

Jos
• 04-24-2011, 01:46 AM
rarman555
Sorry for the trouble, didnt know these forums were connected (are they?). And the lying part I wasnt meaning to lie i just wanted to give a quick answer.