Cuadro de Dialogo de Confirmación
Antes de empezar con el desarrollo del código del juego, primero debemos familiarizarnos con la herramienta que vamos a utilizar, en este caso es el cuadro de dialogo de confirmación, este cuadro lo que hace es presentar un mensaje con 3 opciones: Si, No y Cancelar, cuando el usuario hace click en Si o No e inclusive en Cancelar recibiremos una respuesta que podremos utilizar en nuestro programa como parámetro para evaluar nuestras condiciones.
La sintaxis para utilizar este cuadro de dialogo es muy sencilla, veamos el siguiente código:
int option = JOptionPane.showConfirmDialog(null, "Continuar");
Declaramos una variable a la cual le vamos a asignar el valor de la respuesta del cuadro y en la inicialización del cuadro le colocamos el mensaje que queremos que el usuario vea. Como podemos notar es muy sencilla esta implementación.
El Juego
Vamos a lograr adivinar el día de nacimiento de la persona a través de 5 preguntas, la idea es que vamos a sumar una cantidad dependiendo de dónde aparezca la fecha de la persona, así pues si el día de nacimiento es el 19 debe responder que si a la pregunta 1, 2 y 5, y entonces sumamos 1 + 2+ 16 ya que esos son los valores por los que inician las preguntas, veamos en la imagen a que nos referimos:
Como vemos es algo bastante sencillo, pero que lleva un poco de código para lograr automatizarlo, la idea es que aparezca cada grupo de fechas en un cuadro de dialogo de confirmación diferente y utilizaremos el Si y el No para lograr “adivinar” la fecha.
Veamos el código fuente:
import javax.swing.JOptionPane; public class AdivinaCumple { public static void main(String[] args) { //Preparamos las Preguntas String set1 = " 1 3 5 7\n" + " 9 11 13 15\n" + "17 19 21 23\n" + "25 27 29 31"; String set2 = " 2 3 6 7\n" + "10 11 14 15\n" + "18 19 22 23\n" + "26 27 30 31"; String set3 = " 4 5 6 7\n" + "12 13 14 15\n" + "20 21 22 23\n" + "28 29 30 31"; String set4 = " 8 9 10 11\n" + "12 13 14 15\n" + "24 25 26 27\n" + "28 29 30 31"; String set5 = "16 17 18 19\n" + "20 21 22 23\n" + "24 25 26 27\n" + "28 29 30 31"; //Construimos la lógica int day = 0; //Primer Set int answer = JOptionPane.showConfirmDialog(null,"Esta tu dia de Cumple aqui?\n" + set1); if (answer == JOptionPane.YES_OPTION) day += 1; //Segundo Set answer = JOptionPane.showConfirmDialog(null,"Esta tu dia de Cumple aqui?\n" + set2); if (answer == JOptionPane.YES_OPTION) day += 2; //Tercero Set answer = JOptionPane.showConfirmDialog(null,"Esta tu dia de Cumple aqui?\n" + set3); if (answer == JOptionPane.YES_OPTION) day += 4; //Cuarto Set answer = JOptionPane.showConfirmDialog(null,"Esta tu dia de Cumple aqui?\n" + set4); if (answer == JOptionPane.YES_OPTION) day += 8; //Quinto Set answer = JOptionPane.showConfirmDialog(null,"Esta tu dia de Cumple aqui?\n" + set5); if (answer == JOptionPane.YES_OPTION) day += 16; JOptionPane.showMessageDialog(null, "Tu dia de cumple es: " + day + "!"); } }
Como vemos es un poco extenso debido a la cantidad de números que debemos imprimir sin embargo al compilar y ejecutar obtendremos un juego muy divertido, veamos el ejemplo corriendo, supongamos que la fecha que queremos es 26, debemos decir que Si a las preguntas 2, 4 y 5 lo que nos debería sumar 2 + 8 + 16 = 26, veamos el resultado en la siguiente imagen de nuestro programa:
Con esto finalizamos este tutorial, ya hemos creado un juego que nos hace utilizar todos nuestros conocimientos adquiridos y además nos enseña a utilizar los cuadros de confirmación.