package ahorcado; /* @author Pablo*/
import javax.swing.JOptionPane;
public class Ahorcado {
public static void main(String[] args) {
boolean GANO=false;
char[][]lista=new char[5][10]; /*ARMA LA MATRIZ de 5x10*/
lista[0][0]='i';lista[0][1]='n';lista[0][2]='m';
lista[0][3]='u';lista[0][4]='e';lista[0][5]='b';
lista[0][6]='l';lista[0][7]='e';
lista[1][0]='s';lista[1][1]='u';lista[1][2]='s';
lista[1][3]='t';lista[1][4]='a';lista[1][5]='n';
lista[1][6]='t';lista[1][7]='i';lista[1][8]='v';
lista[1][9]='o';
lista[2][0]='m';lista[2][1]='o';lista[2][2]='h';
lista[2][3]='o';
lista[3][0]='p';lista[3][1]='s';lista[3][2]='i';
lista[3][3]='c';lista[3][4]='o';lista[3][5]='l';
lista[3][6]='o';lista[3][7]='g';lista[3][8]='o';
lista[4][0]='e';lista[4][1]='x';lista[4][2]='t';
lista[4][3]='r';lista[4][4]='a';lista[4][5]='n';
lista[4][6]='g';lista[4][7]='e';lista[4][8]='r';
lista[4][9]='o';
JOptionPane.showMessageDialog( null,"*****BIENVENIDO/A AL AHORCADO!!!****");
int oportunidad=6,contadorLetras=0,letrasAcertadas=0;
double n=Math.random();
int fil=(int)(n*6);
String palabra=armarPalabra(fil,lista);/*LLAMA METODO ARMAR PALABRA*/
int largo=palabra.length();
System.out.print(palabra.charAt(0));
int contA;/*IMPRIME LA PALABRA CON SU PRIMER Y ULTIMA LETRA COMO PISTA; POR UNICA VEZ EN LA CONSOLA*/
for (contA=1;contA<largo-2;contA++){
System.out.print("* ");
}
System.out.print(palabra.charAt(largo-1));
System.out.print(" <--CADA * ES UNA LETRA");
char palabra2[]=new char[largo];/*ACA SE CREA UN ARREGLO QUE SERA LA PALABRA A COMPLETAR*/
palabra2[0]=lista[fil][0];
palabra2[largo-1]=lista[fil][largo-1];
for(int i=1;i<largo-2;i++){
palabra2[i]='*';
}
while((GANO==false)&&(oportunidad>0)){
JOptionPane.showMessageDialog( null,"¿qué letra posee la palabra?");
char letra=TecladoIn.readNonwhiteChar();
contadorLetras++;
boolean error=buscarLetra(palabra,letra,largo);/*LLAMA METODO BUSCARLETRA*/
if(error==true){
oportunidad=oportunidad-1;
switch(oportunidad){
case 5: JOptionPane.showMessageDialog( null," O");
break;
case 4: JOptionPane.showMessageDialog( null," O \n <");
break;
case 3: JOptionPane.showMessageDialog( null," O \n <V");
break;
case 2: JOptionPane.showMessageDialog( null," O \n <V>");
break;
case 1:JOptionPane.showMessageDialog( null," O \n <V> \n J");
break;
case 0:JOptionPane.showMessageDialog( null," O \n <V> \n J L");
JOptionPane.showMessageDialog( null,"AHORCADO");
break;
}
}
else{letrasAcertadas++;
}
String muestra=nuevaImpresion(palabra,largo,letra,palabra2);/*LLAMA METODO NUEVAIMPRESION*/
if(muestra.equals(palabra)==true){
GANO=true;
}
JOptionPane.showMessageDialog( null,muestra);
}
if(oportunidad==0){
JOptionPane.showMessageDialog( null,"Has perdido, mejor suerte para la proxima");
}
else{
JOptionPane.showMessageDialog( null,"FELICITACIONES, HAS GANADO!!!");
}
double porc=(letrasAcertadas*100)/contadorLetras;
JOptionPane.showMessageDialog( null,"PORCENTAJE DE ACIERTOS:"+porc+"%");
}
public static String armarPalabra (int fil, char lista[][]){ /*GENERA LA LISTA Y SACA LA PALABRA AL AZAR*/
String palabra="";
int col=0;
while((col<10)&&(lista[fil][col]!=' ')){char temp=lista[fil][col];
palabra=palabra+temp;
col++;
}
return palabra;}
public static boolean buscarLetra (String palabra, char letra, int largo){/*BUSCA LA LETRA EN LA PALABRA*/
int contA=0;
boolean error=true;
while(largo>contA){
if(palabra.charAt(contA)==letra){
error=false;
}
contA++;
}
return error;
}
public static String nuevaImpresion (String palabra, int largo,char letra,char palabra2[]){
String muestra="";
int contB=0;
while(largo>contB){
if(palabra.charAt(contB)==letra){
palabra2[contB]=letra;
}
muestra=muestra+palabra2[contB];
contB++;}
return muestra;
}
}