import java.util.Scanner;
import java.util.Random;
/**
* Juego del ahorcado en poco mas de media hora, mu simpleeeee
* @author victor
*/
public class Ahorcado {
/**
* @param args the command line arguments
*/
public static void main(String[] args) { final int INTENTOS_TOTALES = 7; // Constante con el limite de fallos
int intentos = 0;
int aciertos = 0;
// Mierdas para leer por teclado
Scanner teclado = new Scanner(System.in);
teclado.useDelimiter("\n"); char resp;
// Random para pillar una palabra al azar
Random rnd = new Random();
// Creamos unas palabras y le asignamos una aleatoria a una varibale
String arrayPalabras[] = new String[3];
arrayPalabras[0] = "hola";
arrayPalabras[1] = "adios";
arrayPalabras[2] = "cojonudo";
do {
// Desguazamos la palabra y la guardamos en un array de caracteres
int alea = rnd.nextInt(3);
char[] desguazada = desguaza(arrayPalabras[alea]);
char[] copia = desguaza(arrayPalabras[alea]); // Algo auxiliar para mas tarde
// Array para pintar mierdecillas en pantalla(Guiones o letras vamos)
char[] tusRespuestas = new char[desguazada.length];
// Rellenamos palabras ocn guiones
for(int i = 0; i < tusRespuestas.length; i++){ tusRespuestas[i] = '_';
}
// Empezamos a pintar mierdas en pantalla
System.out.println("Adivina la palabra!");
// Mientras que no nos pasemos con los intentos y no la acertemos...
while(intentos < INTENTOS_TOTALES && aciertos != tusRespuestas.length){ imprimeOculta(tusRespuestas);
// Preguntamos mierdas por teclado
System.out.println("\nIntroduce una letra: "); resp = teclado.next().toLowerCase().charAt(0);
// Recorremos el array y comprobamos si se ha producido un acierto
for(int i = 0; i < desguazada.length; i++){ if(desguazada[i]==resp){ tusRespuestas[i] = desguazada[i];
desguazada[i] = ' ';
aciertos++;
}
}
intentos++;
}
// Si hemos acertado todas imprimimos un mensahe
if(aciertos == tusRespuestas.length){ System.out.print("\nFalocidades!! has acertado la palabra: "); imprimeOculta(tusRespuestas);
}
// Si no otro
else{ System.out.print("\nMenudo ceporro eres! la palabra era: "); for(int i = 0; i < copia.length; i++){ System.out.print(copia[i] + " ");
}
}
// Reseteamos contadores
intentos = 0;
aciertos = 0;
// Volvemos a preguntarle al usuario si quiere volver a perder el tiempo
resp = pregunta("\n\nQuieres volver a jugar?",teclado); }while(resp != 'n');
}
/**
* Esto desguaza el String en un array de caracteres
* @return array de letras.
*/
private static char[] desguaza(String palAzar){ char[] letras;
letras = new char[palAzar.length()];
for(int i = 0; i < palAzar.length(); i++){ letras[i] = palAzar.charAt(i);
}
return letras;
}
/**
* Esto imprime la palabra con espacios
* @param tusRespuestas el array de caracteres
*/
private static void imprimeOculta(char[] tusRespuestas){
for(int i = 0; i < tusRespuestas.length; i++){ System.out.print(tusRespuestas[i] + " ");
}
}
/**
* Esto nos pregunta si queremos volver a jugar y comprueba los caracteres
* introducidos
* @param men texto para mostrar al usuario
* @return caracter de respuesta (s/n)
*/
public static char pregunta(String men, Scanner teclado) { char resp;
System.out.println(men + " (s/n)");
resp = teclado.next().toLowerCase().charAt(0);
while (resp != 's' && resp != 'n') { System.out.println("Error! solo se admite S o N"); resp = teclado.next().toLowerCase().charAt(0);
}
return resp;
}
}
Comentarios sobre la versión: 20160428 (1)