diff --git b/InicioJuego.class a/InicioJuego.class new file mode 100644 index 0000000..1754307 Binary files /dev/null and a/InicioJuego.class differ diff --git b/InicioJuego.java a/InicioJuego.java new file mode 100644 index 0000000..6f50a85 --- /dev/null +++ a/InicioJuego.java @@ -0,0 +1,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(); + } +} \ No newline at end of file diff --git b/Intrucciones.txt a/Intrucciones.txt new file mode 100644 index 0000000..9e65edb --- /dev/null +++ a/Intrucciones.txt @@ -0,0 +1,3 @@ +La clase principal es InicioJuego.class en ambos juegos. + +Disfrute diff --git b/VacaYToro.class a/VacaYToro.class new file mode 100644 index 0000000..0897b30 Binary files /dev/null and a/VacaYToro.class differ diff --git b/VacaYToro.java a/VacaYToro.java new file mode 100644 index 0000000..a269b92 --- /dev/null +++ a/VacaYToro.java @@ -0,0 +1,39 @@ +public class VacaYToro{ + private int vaca; + private int toro; + + public VacaYToro(){ + this.vaca = 0; + this.toro = 0; + } + + public int cantidadVaca(int Aanalizar, int probando){ + String temporalAna = ""+Aanalizar; + String temporalPro = ""+probando; + for(int i = 0; i < 4;i++){ + for(int j = 0;j < 4;j++){ + if(temporalAna.charAt(i)==temporalPro.charAt(j) && i!=j){ + this.vaca++; + } + } + } + return this.vaca; + } + + public int cantidadToro(int Aanalizar, int probando){ + String temporalAna = ""+Aanalizar; + String temporalPro = ""+probando; + for(int i = 0;i<4;i++){ + if(temporalAna.charAt(i)==temporalPro.charAt(i)){ + this.toro++; + } + } + return this.toro; + } + + public void vaciarContador(){ + this.vaca = 0; + this.toro = 0; + } + +} \ No newline at end of file diff --git b/Verificador.class a/Verificador.class new file mode 100644 index 0000000..bd7dbfd Binary files /dev/null and a/Verificador.class differ diff --git b/Verificador.java a/Verificador.java new file mode 100644 index 0000000..a80c8cf --- /dev/null +++ a/Verificador.java @@ -0,0 +1,21 @@ +public class Verificador{ + + + public boolean verificar(int numero){ + boolean resultado = true; + String temporal = ""+numero; + if(temporal.length()!=4){//Comprueba si el numero cargado por el usuario tiene la cantidad correcta de digitos + resultado = false; + }else{//Analiza si existe digitos repetidos + for(int i = 0;i<3 && resultado;i++){ + for(int j = i+1;j<4;j++){ + if(temporal.charAt(i)==temporal.charAt(j)){ + resultado = false; + break; + } + } + } + } + return resultado; + } +} \ No newline at end of file