Accesibilidad web e inteligencia artificial: el reto de construir una universidad digital realmente inclusiva

Imagen
La transformación digital está cambiando profundamente la educación superior. Plataformas educativas, aplicaciones móviles, videoconferencias, servicios en la nube y, más recientemente, inteligencia artificial generativa forman ya parte de la experiencia cotidiana de estudiantes y profesores. Sin embargo, existe una pregunta que deberíamos hacernos con mayor frecuencia: ¿Digitalizar significa necesariamente incluir? La respuesta es no. Podemos tener una universidad tecnológicamente avanzada y, al mismo tiempo, mantener barreras digitales que impidan a determinados estudiantes utilizar plenamente sus servicios. Y aquí aparece un concepto que quienes trabajamos en informática, desarrollo web, experiencia de usuario e inteligencia artificial deberíamos incorporar como un requisito fundamental de nuestros sistemas: la accesibilidad digital. Cuando el software funciona, pero el usuario no puede utilizarlo Pensemos en situaciones relativamente sencillas. Un estudiante ciego intenta entregar ...

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

Todo lo que debes saber sobre el Model-View Controller (MVC) para Aplicaciones Web

Stateful vs Stateless Design - ¿Cuál es la diferencia?

Conceptos Básicos de la Arquitectura REST (REpresentational State Transfer)