//
// Aplicacion que elige un numero al azar y permite al usuario
// adivinarlo. Va restringiendo el intervalo en que se encuentra
// el numero que se deve adivinar.
//

import java.lang.Math;
import java.io.*;

class Numero {
    static int MaxNum,   // Limite superior del intervalo que contiene el numero.
               MinNum,   // Limite inferior del intervalo.
               Intentos, // Numero de intentos realizados.
               Numero,   // Numero a adivinar.
               N;        // Contiene el numero introducido por el usuario.
        
    static boolean Fin;  // Cierto cuando se adivina el numero.
    
    static BufferedReader Entrada
                = new BufferedReader(new InputStreamReader(System.in));
    
    static String buffer;
    
    public static void main(String args[]) throws IOException {
        MaxNum = 10000;
        MinNum = 0;                            
        Intentos = 1;
        Numero = (int)Math.round(Math.random() * MaxNum);
        Fin = false;
        while(!Fin) {
            System.out.println("\nEl valor a adivinar se encuentra entre " + MinNum + " y " + MaxNum);
            // Leer el numero
            boolean Es_numero=false;
            while (!Es_numero) {
               buffer = Entrada.readLine();
               try {
                  N = Integer.valueOf(buffer).intValue();
                  Es_numero=true;
               }
               catch (NumberFormatException e) {
                  System.out.println("\n      Un numero !!! tiene que ser un numero !!!!");
               }
            }
            if(N == Numero) {
                System.out.println("Adivinaste el numero en " + Intentos + " intentos.");
                Fin = true;
            }
            else {
                if(N > MinNum && N < Numero) {
                    MinNum = N;
                }
                if(N < MaxNum && N > Numero) {
                    MaxNum = N;
                }
                if(N < MinNum || N > MaxNum) {
                    System.out.println("\n   Que torpe !!! te he dicho que esta entre "+MinNum+" y "+MaxNum+"\n");
                }
            }
            Intentos += 1;
        }
    }
}
