You are on page 1of 6

import java.util.

*;
public class HangMan {
private static Scanner in;
static String respuesta = "no";
static String enteredPassword;
static void menuBienvenida() {
System.out.println("*********************************");
System.out.println("*
HANGMAN
*");
System.out.println("*********************************");
System.out.println("*
BIENVENIDO
*");
System.out.println("*
*");
System.out.println("* M. PARA JUGAR SOLO
*");
System.out.println("*
*");
System.out.println("* P. PARA JUGAR CON UN AMIGO *");
System.out.println("*********************************");
}
static void menuSolo() {
System.out.println("*********************************");
System.out.println("*
HANGMAN
*");
System.out.println("*********************************");
System.out.println("* Ha Elegido jugar solo
*");
System.out.println("*
*");
System.out.println("* F. Para jugar en nivel fcil *");
System.out.println("*
*");
System.out.println("* M. Para jugar en nivel medio *");
System.out.println("*
*");
System.out.println("* D. Para jugar en nivel dificil*");
System.out.println("*********************************");
}
static void menuDuo() {
System.out.println("*********************************");
System.out.println("*
HANGMAN
*");
System.out.println("*********************************");
System.out.println("* Ha Elegido jugar con un amigo *");
System.out.println("*
*");
System.out.println("* Tu amigo debera introducir *");
System.out.println("* una palabra.
*");
System.out.println("* Escriba la palabra
*");
System.out.println("*********************************");
}
static void fallo1(int intentos) {
System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println("
***
}

");
");
");
");

static void fallo2(int intentos) {


System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println("
***
System.out.println("
*
System.out.println("
*

");
");
");
");
");
");

System.out.println("
System.out.println("

*
*

");
");

}
static void fallo3(int intentos) {
System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println("
*** *
System.out.println("
* *
System.out.println("
*
System.out.println("
*
System.out.println("
*
}

");
");
");
");
");
");
");
");

static void fallo4(int intentos) {


System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println(" * *** *
System.out.println(" * * *
System.out.println("
*
System.out.println("
*
System.out.println("
*
}

");
");
");
");
");
");
");
");

static void fallo5(int intentos) {


System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println(" * *** *
System.out.println(" * * *
System.out.println("
*
System.out.println("
*
System.out.println("
*
System.out.println("
*
System.out.println("
*
}

");
");
");
");
");
");
");
");
");
");

static void fallo6(int intentos) {


System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println(" * *** *
System.out.println(" * * *
System.out.println("
*
System.out.println("
*
System.out.println("
*
System.out.println("
* *
System.out.println(" * *
}

");
");
");
");
");
");
");
");
");
");

static void fallo7(int intentos) {


System.out.println(" HANGMAN
System.out.println("
System.out.println("
***
System.out.println(" * *** *
System.out.println(" * * *
System.out.println("
*
System.out.println("
*

");
");
");
");
");
");
");

System.out.println("
System.out.println("
System.out.println("
System.out.println("

*
* *
*

*
DEAD

");
");
");
");

}
/**
* Metodo que segun los fallos que el usuario cometa, le mostrar por
* pantalla unos de los dibujos de arriba
*
* @param fallos
*/
static void elegirFallo(int fallos) {
switch (fallos) {
case 0:
break;
case 1:
fallo1(fallos);
break;
case 2:
fallo2(fallos);
break;
case 3:
fallo3(fallos);
break;
case 4:
fallo4(fallos);
break;
case 5:
fallo5(fallos);
break;
case 6:
fallo6(fallos);
break;
case 7:
fallo7(fallos);
break;
}
}
/**
* Este metodo convierte la palabra que el ordenador seleccionada de forma
* aleatoria o la palabra que el usuario introduce por pantalla en un
* String[] con cada caracter en una posicin.
*
* @param palabra
* @return
*/
static String[] stringArray(String palabra) {
String[] palabraArray = new String[palabra.length()];
for (int i = 0; i < palabra.length(); i++) {
palabraArray[i] = String.valueOf(palabra.charAt(i));
}
return palabraArray;
}
/**
* Metodo que pide por teclado un String y lo cambia de maysculas en caso
* de haberlas a minsculas.
*

* @return
*/
static String pedirPorTeclado() {
in = new Scanner(System.in);
return in.nextLine().toLowerCase();
}
// static String mostrarArray(String[] array){
// String resultado = "";
// for(int i=0;i<array.length;i++){
// resultado += array[i];
// }
// return resultado;
// }
// static String[] rellenoInicial(String palabra){
// String[] resultado = new String[palabra.length()];
// for (int i = 0; i < palabra.length(); i++) {
// resultado[i] = "_ ";
// System.out.print(resultado[i]);
// }
// mostrarArray(resultado);
// return resultado;
// }
/**
* Mtodo que elige una palabra al azar del conjunto de palabras definidos
* en nuestro main depediendo de la longitud de cada uno.
*
* @param conjunto
* @return resultado
*/
static String elegirPalabra(String[] conjunto) {
String resultado;
int azar = (int) (Math.random() * conjunto.length);
resultado = conjunto[azar];
return resultado;
}
// String[] palabraUsuario = new String[palabraSeleccionada.length()];
// for (int i = 0; i < palabraSeccionada.length; i++) {
//
palabraUsuario[i] = "_ ";
//
System.out.print(palabraUsuario[i]);
// }
/**
* Metodo que rellena el array, que el usuario va a ir rellenando con sus ac
ierto, con "_" para mostrar
* las letras que tiene la palabra a adivinar
* @param palabra
* @return
*/
static String[] rellenoInicial(String palabra){
String[] resultado=new String[palabra.length()];
for (int i = 0; i < palabra.length(); i++) {
resultado[i] = "_ ";
System.out.print(resultado[i]);
}
return resultado;
}
/**
* Metodo que devuelve un String formado por el contenido
* de un Array String[]
* @param vector

* @return
*/
static String mostrarArray(String[] vector){
String resultado = "";
for(int i=0;i<vector.length;i++){
resultado+=vector[i]+ ",";
}
return "["+resultado+"]";
}
public static void main(String[] args) {
String[] palabrasFaciles = { "microsoft", "linux", "leon", "coche",
"mundo", "lol", "teemo", "calor", "verano", "primavera",
"otoo", "invierno", "blanco", "negro", "dado", "oca", "pato",
"bravo", "valiente", "libro" };
String[] palabrasMedias = { "cocacola", "pepsi", "agua", "raton",
"gato", "zumo", "ventana", "ordenador", "portatil", "java",
"python", "php", "horno", "microondas", "botella", "llaves",
"puerta", "firefox", "chrome", "opera" };
String[] palabrasDificiles = { "whisky", "taekwondo", "mision",
"dimension", "correccion", "compresion", "exento", "isosceles",
"almacen", "sabueso", "excentrico", "gragea", "halago",
"hacienda", "neodarwinismo", "nietzsche", "schwarzkopf",
"hazmerreir", "hechicero", "herido" };
in = new Scanner(System.in);
int fallos = 0;
boolean palabraEntera = false;
String[] letrasUtilizadas = new String[8];
// Cierre de definiciones del propoio main
do { //inicio menu
String palabraSeleccionada = null;
String opcion = null;
menuBienvenida(); //muestra el menu principal
String seleccion = pedirPorTeclado();
if (seleccion.equalsIgnoreCase("m")) {
do {
menuSolo();
opcion = pedirPorTeclado();
} while (!opcion.equalsIgnoreCase("f")
&& !opcion.equalsIgnoreCase("d")
&& !opcion.equalsIgnoreCase("m"));
if (opcion.equalsIgnoreCase("f")) {
palabraSeleccionada = elegirPalabra(palabrasFaciles);
} else if (opcion.equalsIgnoreCase("m")) {
palabraSeleccionada = elegirPalabra(palabrasMedias);
} else if (opcion.equalsIgnoreCase("d")) {
palabraSeleccionada = elegirPalabra(palabrasDificiles);
}
} else if (seleccion.equalsIgnoreCase("p")) {
menuDuo();
palabraSeleccionada = pedirPorTeclado();
System.out.println("\n \n \n \n \n"); // mueve la pantalla hacia
arriba para que no se ve la palabra introducida
}
String[] palabraSeccionada = stringArray(palabraSeleccionada);
//
System.out.println(palabraSeleccionada);

String[] palabraUsuario = rellenoInicial(palabraSeleccionada);


for (int i = 0; i < palabraSeccionada.length; i++) {
palabraUsuario[i] = "_ ";
System.out.print(palabraUsuario[i]);
}
System.out.println();
do {
int con=0;
String[] verificacion = palabraUsuario.clone();
System.out.println("\nIngrese una letra o la palabra entera: ");
String letra = pedirPorTeclado();
letrasUtilizadas[con] = letra;
con++;
if (letra.equalsIgnoreCase(palabraSeleccionada)) {
palabraUsuario=palabraSeccionada.clone();
palabraEntera = letra.equals(palabraSeleccionada);
}
for (int i = 0; i < palabraSeccionada.length; i++) {
if (palabraSeccionada[i].equalsIgnoreCase(letra)) {
palabraUsuario[i] = letra;
}
System.out.print(palabraUsuario[i]);
}
if (Arrays.equals(verificacion, palabraUsuario)) {
fallos++;
}
System.out.println();
System.out.println(mostrarArray(letrasUtilizadas));
System.out.println("MUECO: ");
elegirFallo(fallos);

//
//
//
//

} while (!Arrays.equals(palabraSeccionada, palabraUsuario)


&& fallos <= 6 && palabraEntera == false);
if (fallos == 7) {
System.out.println("Ya no tiene intentos");
elegirFallo(7);
System.out.println("La palabra era: " + palabraSeleccionada);
} else {
System.out.println("Ha acertado!");
System.out.println("La palabra era: " + palabraSeleccionada);
}
System.out.println("Desea jugar otra partida? Si/No");
respuesta = pedirPorTeclado();
} while (respuesta.equalsIgnoreCase("si"));
}
}

You might also like