InicioJuego.java 3.25 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
import java.util.Scanner;


public class InicioJuego{


    public static void main(String[] args) {
        //Preparamos las herramientas
        int cantidadJugadas = 0;
        boolean ganador = false;
        Scanner teclado = new Scanner(System.in);
        VacaYToro proceso = new VacaYToro();
        Verificador verificar = new Verificador();
        int probar = 0;
        int cantVacas = 0;
        int cantToros = 0;
        //Creamos el numero a adivinar aleatoriamente
        //Primero obtenemos un numero aleatorio que sus 4 digitos sean distintos
        boolean terminar = false;
        int numeroAdivinar = 0;
        while(!terminar){
            numeroAdivinar=0;
            for(int i = 0;i < 4;i++){
                numeroAdivinar = numeroAdivinar*10;
                numeroAdivinar+= (int)9*Math.random();
            }
            terminar = verificar.verificar(numeroAdivinar);
        }
        System.out.println("Numero a adivinar: "+ numeroAdivinar);
        //Ahora vamos a realizar el juego
        //El while termina cuando se logro todos los intentos posibles o cuando hay un ganador
        while(cantidadJugadas<12 && !ganador){
            try{//El try se usa para ver si el jugador carga un numero o una palabra alfanumerica
                //El while termina cuando el jugador carga un numero de 4 digitos todos distintos, y si se cargo la cantidad de 
                //digitos correctos.
                terminar = false;
                while(!terminar){
                    System.out.print("Intento "+(cantidadJugadas+1)+": ");
                    probar = teclado.nextInt();
                    terminar = verificar.verificar(probar);
                    if(!terminar){
                        System.out.println("El numero cargado es incorrecto. Solo tiene 4 digitos y tienen que tener distintos valores");
                        System.out.println("Intente de nuevo");
                    }
                }
                //Se obtiene la cantidad de toros y la cantidad de vacas
                cantVacas = proceso.cantidadVaca(numeroAdivinar,probar);
                cantToros = proceso.cantidadToro(numeroAdivinar,probar);
                if(cantToros==4){
                    System.out.println("Respuesta: " + cantToros + " toros, " + cantVacas + " vacas.");
                    System.out.println("Por lo tanto, gano en el intento " + ""+ (cantidadJugadas + 1));
                    ganador = true;
                    break;
                }else{
                    System.out.println("Respuesta: " + cantToros + " toros, " + cantVacas + " vacas.");
                }
                cantidadJugadas++;
                proceso.vaciarContador();//Reinicia el contador para ver la cantidad de vacas y toros en el proximo intento.
            }catch(Exception e){//Esto capta el error de cuando el jugador no ingreso un numero
                System.out.println("Tiene que cargar un numero, no una palabra alfanumerica o equivalente");
                break;
            }
        }//Se imprime el mensaje de perdedor si no gano el juego
        if(!ganador){
            System.out.println("No gano el juego");
        }
        System.out.println("Fin del juego");
        teclado.close();
    }
}