// Agrgamos los paquetes necesarios import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Vector; // se implementa ahora la clase juego public class Juego implements KeyListener { static char[] palabraBuscada; // contiene todas las tetras de la palabra buscada static char[] palabraAdivinada; // contiene el estado actual de la palabra adivinada static int cantLetr, counter, ind = 0; // representa la cantidad de letras existentes en la palabra buscada static int puntaje = 0; // representa la cantidad de intentos falsos static final int INTENTOS = 12; char[] adivin;// cantidad de intentos falsos hasta que el colgado sea muerto // el Constructor de la clase public Juego(String _palabra) { super(); // se crea un arreglo de characters del string pasado al constructor cantLetr = _palabra.length(); counter = cantLetr; // se copia la cantidad de letras para cuando la palabra esta solucionada palabraBuscada = new char[cantLetr]; palabraBuscada = _palabra.toCharArray(); // se crea un segundo arreglo para iniciar la palabraAdivinada palabraAdivinada = new char[cantLetr]; for(int i = 0; i < cantLetr; i++) { palabraAdivinada[i] = '-'; System.out.println(palabraAdivinada[i]); } // se crea los tres paneles del juego Interfaz.panelP = new PalabraPanel(palabraAdivinada); // se llama el Constructor con la palabraAdivinada inicial como arguemnto Interfaz.panelCh = new CaracterPanel(); // se llama el Constructor de la clase LetraPanel Interfaz.panelC = new ColgadoPanel(); // se llama el Constructor de la clase ColgadoPanel con el indice inicial como argumento // se adjunta los panels Interfaz.setLeftComponent(Interfaz.panelCh); Interfaz.setRightComponent(Interfaz.panelC); Interfaz.setTopComponent(Interfaz.panelP); Interfaz.panelP.setFocusable(true); adivin = new char[100]; } // los eventos del teclado que no necesitamos public void keyReleased(KeyEvent e) { char keyChar = e.getKeyChar(); boolean esta = false; // se toma el character ingresado por el usuario if(Character.isLetter(keyChar) == true) { // solamente si la tecla presionada fue una letra char majuscula = Character.toUpperCase(keyChar); char minuscula = keyChar; Vector vector = new Vector(); //buscamos si la letra ya ha sido ingresada for(int i = 0; i < cantLetr; i++) { if( adivin[i] == majuscula ) { esta = true; break; } } // si no esta... if( !esta ) { Interfaz.panelCh.addCaracter(majuscula); adivin[ind] = majuscula; ind++; for (int n = 0; n < cantLetr; n++) { if( majuscula == (palabraBuscada[n]) || minuscula == (Juego.palabraBuscada[n]) ) { vector.add(n); Juego.palabraAdivinada[n] = majuscula; Interfaz.panelP.setPalabra(palabraAdivinada); } } if( vector.isEmpty() ) { if( puntaje < INTENTOS -1 ) { puntaje ++; Interfaz.panelC.setImage(puntaje); } else { System.out.println("Game Over"); Interfaz.panelF = new FinPanel(); Interfaz.panelF.loose(); Interfaz.setLeftComponent(Interfaz.panelF); Interfaz.panelP = new PalabraPanel(palabraBuscada); Interfaz.setTopComponent(Interfaz.panelP); Interfaz.panelC.setImage(99); Interfaz.panelF.repaint(); // Game Over, Comienza nuevamente el juego con otro menu puntaje = 0; System.out.println("VCAMOS A VER QUE PASA AHORA"); Interfaz.setFrameSize(800, 200); if(Interfaz.frame.getKeyListeners().length != 0) Interfaz.frame.removeKeyListener(Interfaz.frame.getKeyListeners()[0]); Interfaz.frame.addKeyListener(Interfaz.menuListener); } } else { while(!vector.isEmpty()) { counter --; vector.removeElement(vector.lastElement()); } if( counter <= 0 ) { //Congratulations, Comienza nuevamente el juego con otro menu //El jugador adivino la palabra Interfaz.panelF = new FinPanel(); Interfaz.panelF.win(); Interfaz.setLeftComponent(Interfaz.panelF); Interfaz.panelC.setImage(999); Interfaz.panelF.repaint(); //Comienza nuevamente el juego con otro menu puntaje = 0; //Interfaz.setFrameSize(860, 200); if(Interfaz.frame.getKeyListeners().length != 0) Interfaz.frame.removeKeyListener(Interfaz.frame.getKeyListeners()[0]); Interfaz.frame.addKeyListener(Interfaz.menuListener); } } } } } // cuando uno presiona un boton del teclado y lo suelta public void keyTyped(KeyEvent e) {} public void keyPressed(KeyEvent e){} }