PHP PDO: la forma correcta de trabajar con bases de datos en desarrollo web moderno

  En el desarrollo backend con PHP, uno de los conceptos fundamentales que todo programador debe dominar es el acceso a bases de datos. En este contexto, PHP Data Objects (PDO) se presenta como una de las herramientas más importantes para construir aplicaciones seguras, mantenibles y escalables. Muchos desarrolladores comienzan utilizando consultas directas o enfoques poco estructurados. Sin embargo, conforme los sistemas crecen, se vuelve indispensable adoptar prácticas más robustas que permitan garantizar la integridad de la información y la calidad del software. En este artículo se explica qué es PDO, su importancia en el desarrollo web moderno, su uso en sistemas reales y por qué PHP continúa siendo una tecnología vigente. ¿Qué es PHP PDO? PDO (PHP Data Objects) es una extensión de PHP que proporciona una interfaz uniforme para acceder a bases de datos. Su principal ventaja es permitir la interacción con distintos sistemas gestores como MySQL, PostgreSQL o SQ...

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)

Prototipado en Ingeniería de Software: Modelar antes de Construir

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