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;
    }

}












