Un Juego de Dados en Java con Random e ImageIcon mediante NetBeans

Hola, pues esta entrega no será sobre C#, como lo dice el titulo del post, haremos un juego de Dados en Java, utilizando como IDE a Netbeans, unas imágenes de un dado, y de Java usaremos Random e ImageIcon. Creamos nuestro proyecto en Netbeans y hacemos una interfaz como la que se muestra en la imagén. Los cuadros grandes que se ven en medio de la ventana (Dado 1 y Dado 2) son dos paneles con borde y dentro de cada uno de ellos debemos de colocar un label que será donde cargaremos laimagen del dado.
Lo siguiente será crear dos clases, una donde colocaremos los métodos del "juego" de dados y otra para tener el método que cargará a las imágenes del dado, que por que por separado? pues por que así como esta hecho se lo pidieron a mi hermana en la escuela y pues así tuvo que hacerse. A continuación el código fuente de la clase CDado:
import java.util.Random;
import javax.swing.JOptionPane;
/**
*
* @author José Alfonso Aguilar
*/
public class CDado
{
public int iValorTirada;
private String sNombre;

CDado(String sNombre)
{
this.sNombre = sNombre;
}

public int fCalculaValor()
{
Random rGenerador = new Random();
iValorTirada = rGenerador.nextInt(6) + 1;
System.out.println("El resultado de la tirada es: " + iValorTirada);
return iValorTirada;
}

public boolean fCalcularPartidaGanada(int iDado1,int iDado2)
{
boolean bGano=false;
int iResultado= iDado1 + iDado2;
if(iResultado==7)
{
JOptionPane.showMessageDialog(null, "Felicidades " + sNombre + "!!!!",
"Ganaste!!!!!", JOptionPane.INFORMATION_MESSAGE);
bGano=true;
}
return bGano;
}
}
Ahora el código para la clase que carga las figuras, todo estopuede hacerse en unsolo archivo pero repito, asi lo pidieron. Esta clase lo que hace es que dentro de un Switch case manda llamar la imagen correspondiente al número que "aleatoriamente" resulto de la tirada del dado, para esto es necesario tener en la unidad C de nuestro PC una carpeta llamada dados con las 6 imagenes correspondientes a cada lado del dado:
import javax.swing.ImageIcon;

/**
*
* @author José Alfonso Aguilar
*/
public class CImagenesDAdo
{
public ImageIcon icoImagen;

CImagenesDAdo()
{

}

public ImageIcon fCargarImagenDado(int iValorDado)
{
switch (iValorDado)
{
case 1:
icoImagen = new ImageIcon("C:/dados/dado1.jpg");
break;
case 2:
icoImagen = new ImageIcon("C:/dados/dado2.jpg");
break;
case 3:
icoImagen = new ImageIcon("C:/dados/dado3.jpg");
break;
case 4:
icoImagen = new ImageIcon("C:/dados/dado4.jpg");
break;
case 5:
icoImagen = new ImageIcon("C:/dados/dado5.jpg");
break;
case 6:
icoImagen = new ImageIcon("C:/dados/dado6.jpg");
break;
}
return icoImagen;
}
}
Ahora vamos a ver lo que contendrá el botón "jugar" de nuestra pantalla principal:
public int iJugados, iGanados, iPerdidos;-------Variables globales....

private void btnJugarActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:

CDado objDado= new CDado(sNombre); //instanciar la clase
CImagenesDAdo objImagenes = new CImagenesDAdo();//instanciar

iJugados= iJugados+1;
txtJugados.setText(""+ iJugados);

int iNumero1 = objDado.fCalculaValor(); /llamar a metodo Random
txtDado1.setText(""+iNumero1);
lblDado1.setIcon(objImagenes.fCargarImagenDado(iNumero1)); //cargar imagen
int iNumero2 = objDado.fCalculaValor();
txtDado2.setText(""+iNumero2);
lblDado2.setIcon(objImagenes.fCargarImagenDado(iNumero2));

if(objDado.fCalcularPartidaGanada(iNumero1, iNumero2))
{
iGanados= iGanados+1;
txtGanados.setText(""+iGanados);
}
else
{
iPerdidos= iPerdidos+1;
txtPerdidos.setText(""+iPerdidos);
}
}
Finalmente una imagen del programa en ejecución, espero a alguien le sirva, saludos.

Es cuánto. 
 

Comentarios

Mi foto
José Alfonso Aguilar
Mazatlán, Sinaloa, Mexico
Me gusta aprender y escribir sobre tecnología y desarrollo. Soy Ingeniero en Sistemas Computacionales, trabajo como Profesor-Investigador en la Facultad de Informática Mazatlán, de la Universidad Autónoma de Sinaloa. México. Me gusta combinar la docencia-investigación con el giro profesional del desarrollo de software y gestión de proyectos de innovación.

Entradas más populares de este blog

Historia y versiones de HTML (HyperText Markup Language)

Elon Musk: Neural Link y el Chip en Humanos es Real !!!

Hablemos de Propiedad Intelectual