Commit 389623a5 by roshka

La clase InicioJuego es la clase principal. Vaca y Toro 1.0.

parents
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
La clase principal es InicioJuego.class en ambos juegos.
Disfrute
File added
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
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment