Artículos
Java

Un juego sencillo con Java Swing

13/Oct/2012

Vamos a realizar un programa de escritorio usando Java Swing. Consiste en hacer un juego de adivinar la suma de dos números generados aleatoriamente.

Necesitamos los siguientes controles:

  1. 6 JTextField
  2. 6 JLabel
  3. 3 JButton

Un botón se encargará de generar y mostrar los dos números aleatorios, el siguiente botón activa una ventanita para introducir la suma de esos dos y comprobar si es correcta (acierto) o no (fallo) y mostrará el número de intentos realizados.

Y por último un botón para quitar la aplicación.

Como se trata de una aplicación gráfica es necesario importar las librerías javax.swing.* y java.awt.*.

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.UIManager;

public class Aleatorio extends JFrame{

  public Aleatorio(){
  //..
 //..
 }
}

Los controles a usar para los que utilizaremos las clases JTextField y JButton:

final private JTextField txtNum1,txtNum2,txtResultado,txtIntentos,txtAciertos,txtFallas;
private JButton btnActiva,btnComprueba;
private JButton btnSalir;

También necesitamos definir las variables que controlarán los valores aleatorios y su suma, así como los aciertos, fallos e intentos:

//los dos números tomarán un valor aleatoriamete
private long num1,num2,valor;
//la suma
long suma_prog;
int intentos=0,aciertos=0,fallas=0;

Para generar los números aleatorios creamos una función:

public long obtenerAleatorio1(){
    return (long)(Math.random()*1000);
}

Puedes leer más información sobre como crear un número aleatorio con Java.

Ahora pasamos a codificar los botones Activar, Comprobar y Salir.

Activar
Este botón inicia el juego, para ello lo que hacemos es crear dos números aleatorios, con la clase creada anteriormente, y los ponemos dentro de los campos de texto sus valores.

btnActiva= new JButton("Activar");
btnActiva.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Aleatorio aleatorio=new Aleatorio();				
        aleatorio.setNum1(aleatorio.obtenerAleatorio1());
        aleatorio.setNum2(aleatorio.obtenerAleatorio2());
				
        txtNum1.setText(String.valueOf(aleatorio.getNum1()));// no. 1
        txtNum2.setText(String.valueOf(aleatorio.getNum2()));// no.2
        txtResultado.setText("");
    }
});

Comprobar
Es el botón que lanza el juego, lo que hace es crear un dialogo, mediante una clase JOptionPane. Cogemos el valor insertado por el usuario y comprobamos si coincide con la suma de los números aleatorios. Si es así incrementamos los aciertos, si no coincide, incrementamos los fallos.

btnComprueba= new JButton("Comprobar");
btnComprueba.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Aleatorio alea=new Aleatorio();				
        valor=Long.parseLong(JOptionPane.showInputDialog("Introduce valor"));
        alea.setValor(valor);
        txtResultado.setText(String.valueOf(alea.getValor()));//valor del usuario
        suma_prog=Long.parseLong(txtNum1.getText())+ Long.parseLong(txtNum2.getText());
				
        if(suma_prog==alea.getValor()){
            aciertos+=1;
            intentos+=1;
            txtIntentos.setText(String.valueOf(intentos));
            txtAciertos.setText(String.valueOf(aciertos));
        }else{
            fallas+=1;
            intentos+=1;
            txtIntentos.setText(String.valueOf(intentos));
            txtFallas.setText(String.valueOf(fallas));
        }
    }
});

Salir
En este caso, lo que hacemos es salir de la aplicación mediante el método System.exit.

btnSalir= new JButton("Salir");
btnSalir.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.exit(0);
    }
});

Espero les sea de utilidad.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
4 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios