Your task is to implement a number guesser that works on the principle of a binary search. In each step, the guesser cuts the query interval in half. When the interval contains a single number, it proclaims the answer.
Suppose your guesser is asked to guess a number between 1 and 100. It starts with the query
>50
50 is the midpoint between 1 and 100.
The person who knows the number says false. The next query is
>25
25 is the midpoint between 1 and 50.
The answer is still false, and the next query is
>13
The answer is still false, and the next query is
>7
Now the answer is true, and the next query is
>10
The answer is again true, and the next query is
>12
The answer is once again true, and now the guesser proclaims
=13
An object of your class will be called like this:
while (...) { String guess = guesser.nextGuess(); if (guess.startsWith("=")) { // display answer and terminate loop ... } else { // show guess to person who knows the answer ... // get response from person boolean resp = ...; guesser.response(resp); } }