¿Qué es un ACM Student Chapter y por qué es tan importante que la UAS ya tenga uno?

Imagen
Iniciamos el año 2026 con un entrada un poco diferente a las anteriores, describiré algo que le puede interesar a mis alumnos en la Universidad Autónoma de Sinaloa y espero sirva para promover su difusión en otras universidades. Si estudias informática, computación, software o alguna carrera relacionada con tecnología, es muy probable que en algún momento hayas escuchado las siglas ACM. Y si no, no pasa nada, porque justo de eso se trata este texto: explicar de forma clara y sin rollos qué es un ACM Student Chapter y por qué es una gran noticia que en la Universidad Autónoma de Sinaloa ya contemos con uno. La Association for Computing Machinery, mejor conocida como ACM, es la organización profesional más importante del mundo en el área de la computación. Existe desde 1947 y agrupa a investigadores, profesionistas, docentes y estudiantes de prácticamente todas las ramas de la informática. Gran parte de la investigación científica que se produce a nivel mundial en computación se publica ...

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)

Hablemos de Propiedad Intelectual

Creando un API REST para Estadísticas de Basket-ball con PHP, MySQL y PDO