Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2011, 17:37
link01
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 13 años, 1 mes
Puntos: 0
Juego el ahorcado (hangman)

Hola, estoy haciendo el juego el Ahorcado o the HangMan con GUI. Hasta el momento he podido hacer toda la interfaz y algunos métodos.
Es un juego super conocido, pero si no lo conocen por el nombre lo pueden ver aquí: http://www.minijuegos.com/Mini-Ahorcado/1688

El juego escoge una palabra secreta de un arreglo creado y crea tantas rayas ( _ ) como letras tenga la palabra.
Básicamente lo que me falta y lo más importante es que el juego coja una letra de un combo box que selecciona el usuario y la compare con la palabra secreta que se tiene que adivinar, si la letra forma parte de la palabra entonces que esa letra sustituya el guión bajo ( _ ) en la posición correspondiente, si no forma parte de la palabra que presente la próxima imagen (1.cabeza, 2.tronco, 3 y 4.brazos, 5 y 6.piernas) y que muestre las letras usadas y erróneas en el Jpanel de intentos.

Esto es lo que he hecho:
Código PHP:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;

public class 
Ahorcaito extends JFrame implements ActionListenerItemListener{
    private 
JMenuBar mb null;
    private 
JMenu menu null;
    private 
JLabel lbl_palabralbl_imglbl_msjlbl_letras;
    private 
String[] lista_de_palabras = {"perro","vaca","chivo","oveja","canguro","gallina""pato""conejo""aguila","avestrus","caracol"};
    private 
String palabraElegida;
    private 
double posicionDEpalabra;
    private 
int nRayas;
    private 
JComboBox jcb;
    private 
Icon[] imagen = {new ImageIcon(getClass().getResource("1.gif")), new ImageIcon(getClass().getResource("2.gif")),
                            new 
ImageIcon(getClass().getResource("3.gif")), new ImageIcon(getClass().getResource("4.gif")),
                            new 
ImageIcon(getClass().getResource("5.gif")), new ImageIcon(getClass().getResource("6.gif")),
                            new 
ImageIcon(getClass().getResource("7.gif")), new ImageIcon(getClass().getResource("icono.gif"))};
    private 
JButton boton;
    private 
TitledBorder titulo;
    private 
JMenuItem reiniciarsalir;
    private 
JTextPane tp;
    private 
int[] rayas;
    private 
String seleccion;
    private 
JPanel panelIzqpanelPalabraspanelIntentospanelLetraspanelMensajes;
    
    
//constructor
    
public Ahorcaito(){
        
//ventana unica y principal
        
this.setTitle("El Ahorcaito");
        
this.setSize(760,570);
        
this.getContentPane().setLayout(new GridLayout(1,2));
        
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
this.setVisible(true);
        
this.setIconImage(Toolkit.getDefaultToolkit().getImage("icono.gif")); 
        
        
//PANEL IZQUIERDO
        
panelIzq = new JPanel();
        
panelIzq.setSize(400,570);
        
panelIzq.setLayout(new GridLayout(4,1));
        
            
//panel de las palabras
            
panelPalabras = new JPanel();
            
panelPalabras.setLayout(new FlowLayout());
            
panelPalabras.setSize(400,90);
            
panelPalabras.setBackground(Color.lightGray);
            
titulo BorderFactory.createTitledBorder("Palabras");
            
panelPalabras.setBorder(titulo);
            
panelIzq.add(panelPalabras);
            
            
//panel de intentos
            
panelIntentos = new JPanel();
            
panelIntentos.setLayout(new FlowLayout());
            
panelIntentos.setSize(400,90);
            
panelIntentos.setBackground(Color.lightGray);
            
titulo BorderFactory.createTitledBorder("Intentos");
            
panelIntentos.setBorder(titulo);
            
lbl_letras = new JLabel();
            
panelIntentos.add(lbl_letras); 
            
panelIzq.add(panelIntentos);
            
            
//panel de letras
            
panelLetras = new JPanel();
            
panelLetras.setLayout(new FlowLayout());
            
panelLetras.setSize(400,110);
            
panelLetras.setBackground(Color.lightGray);
            
titulo BorderFactory.createTitledBorder("Letras");
            
panelLetras.setBorder(titulo);
            
            
String[] abcdario = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"
                    
+"S","T","U","V","W","X","Y","Z"};
            
jcb = new JComboBox(abcdario);
            
boton = new JButton("Aceptar");
            
panelLetras.add(jcb);
            
panelLetras.add(boton);
            
panelIzq.add(panelLetras);
            
            
//panel de mensajes
            
JPanel panelMensajes = new JPanel();
            
panelMensajes.setLayout(new FlowLayout());
            
panelMensajes.setSize(400,110);
            
panelMensajes.setBackground(Color.lightGray);
            
titulo BorderFactory.createTitledBorder("Mensajes");
            
panelMensajes.setBorder(titulo);
            
lbl_msj = new JLabel();
            
panelMensajes.add(lbl_msj);
            
panelIzq.add(panelMensajes);
            
            
this.getContentPane().add(panelIzq);
            
        
        
//PANEL DERECHO
        
JPanel panelDer = new JPanel();
        
panelDer.setSize(360,570);
        
panelDer.setLayout(new GridLayout(1,1));
        
            
//la imagen
            
JPanel panelImg = new JPanel();
            
panelImg.setLayout(new FlowLayout());
            
lbl_img = new JLabel();
            
lbl_img.setIcon(imagen[0]);
            
panelImg.add(lbl_imgBorderLayout.CENTER);
            
panelDer.add(panelImgBorderLayout.CENTER);
            
this.getContentPane().add(panelDer);
        
        
        
//menu
        
mb = new JMenuBar();
        
menu = new JMenu("Menú");
        
reiniciar = new JMenuItem("Reiniciar");
        
salir = new JMenuItem("Salir");
        
menu.add(reiniciar);
        
menu.addSeparator();
        
menu.add(salir);
        
mb.add(menu);
        
this.setJMenuBar(mb);
        
this.setVisible(true);
        
        
//componentes que escuchan
        
salir.addActionListener(this);
        
boton.addActionListener(this);
        
jcb.addItemListener(this);
        
        
//metodos que se ejecutan
        
this.elegirPalabra();
        
this.presentarNumRayas();
    }
    
        
//elige la palabra aleatoria para adivinar
        
public void elegirPalabra(){
            
posicionDEpalabra Math.random()*10;
            
palabraElegida lista_de_palabras[(int)posicionDEpalabra];
            
lbl_msj.setText(palabraElegida); // Esta palabra es para adivicar. Solo la pongo para probar que concuerda con el numero de lineas
        
}
        
        
//muestra tantos guiones bajos como tiene la palabra
        
public void presentarNumRayas(){
            for(
int i=0;i<palabraElegida.length();i++){
                
JLabel l1 = new JLabel(" _ ");
                
panelPalabras.add(l1);
            }
        }
        
        public 
String getPalabraElegida(){
            return 
palabraElegida;
        }
        
        
//obtiene la letra seleccionada del comboBox
        
public void itemStateChanged(ItemEvent e) {
            if(
e.getSource() == jcb){
                
seleccion = (((String) jcb.getSelectedItem()).toLowerCase()); 
            }
        }

        
//habilitar la funcion Salir del menu
        //mostrar la letra escogida en el panel intentos
        
public void actionPerformed(ActionEvent e) {
            if(
e.getSource() == salir)
                
System.exit(0);
            if(
e.getSource() == boton){
                
lbl_letras.setText(seleccion);
                
            }
        }

    } 
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/