DAW Ayala Programación
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Ejercicio 33: Ahorcado

2 participantes

Ir abajo

Ejercicio 33: Ahorcado Empty Ejercicio 33: Ahorcado

Mensaje por pabloveintitres Jue Abr 11, 2013 10:41 am

Realizar un juego del ahorcado, hay un límite de fallos, el juego debe contar con una interfaz gráfica. Se necesita revisar el tratamiento de cadenas.
Spoiler:

pabloveintitres

Mensajes : 18
Fecha de inscripción : 03/04/2013

Volver arriba Ir abajo

Ejercicio 33: Ahorcado Empty Re: Ejercicio 33: Ahorcado

Mensaje por juanmi Vie Abr 12, 2013 10:50 am

Código:
public class Ahorcado implements ActionListener{
    public static final int LONGITUD_MAXIMA=20;
    String palabra;
    String cadena="";
    String imprimir=cadena;
    int error=0;
    boolean conta=false;
    String[] array1 = new String[LONGITUD_MAXIMA];
    String[] array2 = new String[LONGITUD_MAXIMA];

    public void palabra(String palabra){
    palabra=palabra.toLowerCase();
    this.palabra=palabra;
    for(int i=0;i<palabra.length(); i++)//Llenamos array1 con los caracteres de la palabra
            {
            String caracter=palabra.substring(i, i+1);
//            Tambien se puede hacer asi:
//            char caract=texto.charAt(i);
//            String caracter=Character.toString(caract);
            array1[i]=caracter;
            }
    for(int i=0;i<palabra.length(); i++)//Llenamos array2 con _  tanto como de largo sea la palabra
            {
            array2[i]="_";
            }
    for(int i=0;i<palabra.length(); i++)//Primera vista del array2
            {
            cadena= cadena +" "+ array2[i];
            }
            l.setText(cadena);
            cadena="";
    }

    TextField tf = new TextField(1);
    Button b = new Button("Comprobar");
    Button b2 = new Button("Resolver");
    Label l = new Label();
    Label l2 = new Label("Errores: ");
    TextField tf2 = new TextField();

    public Ahorcado() {
        Frame f = new Frame();
        FlowLayout lineal = new FlowLayout();
        f.setLayout(lineal);
        f.add(l);
        l.setSize(40,10);
        f.add(tf);
        f.add(b);
        f.add(b2);
        f.add(l2);
        f.add(tf2);
        b.addActionListener(this);
        b2.addActionListener(this);
        f.pack();
        f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        Object obj=e.getSource();
        if(obj.equals(b2)){//Boton Resolver
            String minus=tf.getText().toLowerCase();
            if(minus.equals(palabra)){
                ganar();
            }
            else{
                perder();
            }
        }
        if(obj.equals(b)){//Boton comprobar
            for(int i=0;i<palabra.length();i++){
                String minus=tf.getText().toLowerCase();
                if(minus.equals(array1[i])){
                    array2[i]=array1[i];
                    conta=true;
                }
            }
            if(conta==false){error=error+1;//Sumando errores
                String conversion=Integer.toString(error);
                tf2.setText(conversion);
                if(error>=10){perder();}
            }
            for(int i=0;i<palabra.length();i++){//Creando la impresion para el settext()
                cadena= cadena + array2[i];
                imprimir= imprimir +" " + array2[i];
                }
            l.setText(imprimir);
            imprimir="";
            if((cadena.equals(palabra))){
                ganar();
            }
            cadena="";
            }
        conta=false;
    }

    public void perder(){
        JOptionPane.showMessageDialog(null, "Lose");//Clase para usar paneles salientes
        System.exit(0);
    }
    public void ganar(){
        JOptionPane.showMessageDialog(null, "Victory");
        System.exit(0);
    }
}

juanmi

Mensajes : 6
Fecha de inscripción : 03/04/2013

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.