From 389623a504760b1e88c747be537a175b37f2d78b Mon Sep 17 00:00:00 2001 From: roshka Date: Mon, 8 Oct 2018 16:15:14 -0300 Subject: [PATCH] La clase InicioJuego es la clase principal. Vaca y Toro 1.0. --- InicioJuego.class | Bin 0 -> 2058 bytes InicioJuego.java | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Intrucciones.txt | 3 +++ VacaYToro.class | Bin 0 -> 1018 bytes VacaYToro.java | 39 +++++++++++++++++++++++++++++++++++++++ Verificador.class | Bin 0 -> 705 bytes Verificador.java | 21 +++++++++++++++++++++ 7 files changed, 133 insertions(+) create mode 100644 InicioJuego.class create mode 100644 InicioJuego.java create mode 100644 Intrucciones.txt create mode 100644 VacaYToro.class create mode 100644 VacaYToro.java create mode 100644 Verificador.class create mode 100644 Verificador.java diff --git a/InicioJuego.class b/InicioJuego.class new file mode 100644 index 0000000..1754307 Binary files /dev/null and b/InicioJuego.class differ diff --git a/InicioJuego.java b/InicioJuego.java new file mode 100644 index 0000000..6f50a85 --- /dev/null +++ b/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 a/Intrucciones.txt b/Intrucciones.txt new file mode 100644 index 0000000..9e65edb --- /dev/null +++ b/Intrucciones.txt @@ -0,0 +1,3 @@ +La clase principal es InicioJuego.class en ambos juegos. + +Disfrute diff --git a/VacaYToro.class b/VacaYToro.class new file mode 100644 index 0000000..0897b30 Binary files /dev/null and b/VacaYToro.class differ diff --git a/VacaYToro.java b/VacaYToro.java new file mode 100644 index 0000000..a269b92 --- /dev/null +++ b/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 a/Verificador.class b/Verificador.class new file mode 100644 index 0000000..bd7dbfd Binary files /dev/null and b/Verificador.class differ diff --git a/Verificador.java b/Verificador.java new file mode 100644 index 0000000..a80c8cf --- /dev/null +++ b/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 -- libgit2 0.26.0