Palentino Blog

Ejemplo formativo JAVA, aplicación Loterías y Apuestas.

En esta entrada dejo un ejemplo formativo de Aplicación creada en JAVA-J2SE (IDE  Netbeans).
Permite realizar juegos de primitiva, quiniela y loterías, aleatorios y manuales. Ideal para propósitos formativos. Aprendizaje de las técnicas de programación.

Se encuentra compuesta por 2 clases en un paquete llamado AplicaciónJuego.

Veamos cómo resolver el problema…

AplicacionJuego.java

package AplicacionJuego;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 *
 * @author Oscar de la Cuesta Campillo
 */
public class AplicacionJuego {
    
     static  Date fecha;
     static double totalapuestas=0;
   
     public static void main(String[] args) {
        try { 
            Juego mijuego = new Juego();
            BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
            String texto="";
            char opcion=' ';
            do {
                fecha=new Date();
                System.out.println("**********************");
                System.out.println("LOTERIAS Y APUESTAS");
                System.out.println("**********************");
                System.out.println("1 - Primitiva.");
                System.out.println("2 - Quiniela.");
                System.out.println("3 - Loteria");
                System.out.println("0 - Salir");
                System.out.println("\nElige juego:");
                texto=teclado.readLine();
                opcion=texto.charAt(0);
                if (opcion=='1'){
                    //Llamo al método juego de la Primitiva          
                    mijuego.primitiva();
                    }
                 if (opcion=='2'){
                    //Llamo al método juego de la Quiniela 
                      mijuego.quiniela();
                    }
                  if (opcion=='3'){
                    //Llamo al método juego de la Lotería Nacional
                      mijuego.loteria_nacional();
                    }
               
            } while ( opcion!='0' );
            
            // Mostramos el total mediante la variable de clase tipo static (no se han instanciado objetos.
            System.out.println("........................");
            System.out.println("Total a Pagar: " + Double.toString(mijuego.totalapuestas) + " €");
            
            
        } catch (IOException ex) {
            Logger.getLogger(Juego.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
 

Juego.java

package AplicacionJuego;
import com.sun.org.apache.bcel.internal.generic.InstructionConstants;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Date;
// Clases añadidas para el correcto funcionamiento del programa
import java.util.Calendar;
import java.util.GregorianCalendar;
// Para los numeros aleatorios
import java.util.Random;
/**
 *
 * @author Oscar de la Cuesta - palentino.es
 * Creado con NetBeans
 */
public class Juego {
  //Creo una variable de clase para almacenar el total. Esta variable es visible para el resto de métodos de la clase
    static  String fechacadena;
    static  Date fecha;
    static double totalapuestas=0;
 
    private static void borrar_pantalla()
    {
      for ( int i=0;i<50;i++)
            System.out.println("\n");
       
    }
    private static void tecla_para_continuar() throws IOException
    {
        String texto;
        BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("\nPulse una tecla para continuar ...");
        texto=teclado.readLine();
    }
    
    
    public static String sumar_fechas_dias(Date fch, int dias) {
        Calendar cal = new GregorianCalendar();
        cal.setTimeInMillis(fch.getTime());
        cal.add(Calendar.DATE, dias);
        // Direccion  para ver los delimitadores http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
        SimpleDateFormat formateador = new SimpleDateFormat("EEEE dd 'de' MMMM 'de' yyyy");
        String formateada = formateador.format(cal.getTime());
      return formateada;
       
    }
       
    // Metodo de clase que calcula el dia del sorteo.
    private static String dia_del_sorteo (Date dia_actual, int tipo_sorteo)
    {
       
      Date fecha;
      fecha=new Date();
      int Dias_A_Anadir=0;
      String fechacadena,diaactual;
      fechacadena=fecha.toString();
      fechacadena=fechacadena.substring(0,3).toLowerCase();
      
      if (tipo_sorteo==1) // Sorteo de la primitiva
      {
         if (fechacadena.equals("thu"))
         { 
       
          return fecha.toString();
         }
        else
         {
            if (fechacadena.equals("mon"))
             Dias_A_Anadir=3;
            if (fechacadena.equals("tue"))
             Dias_A_Anadir=2;
            if (fechacadena.equals("wed"))
             Dias_A_Anadir=1;
            if (fechacadena.equals("fri"))
             Dias_A_Anadir=6;
            if (fechacadena.equals("sat"))
             Dias_A_Anadir=5;
            if (fechacadena.equals("sun"))
             Dias_A_Anadir=4;  
         }
      }
      
      if (tipo_sorteo==2) // Sorteo de la Quiniela
      {
         if (fechacadena.equals("sun"))
         { 
          System.out.println(fechacadena);
          return fecha.toString();
         }
        else
         {
            if (fechacadena.equals("mon"))
             Dias_A_Anadir=6;
            if (fechacadena.equals("tue"))
             Dias_A_Anadir=5;
            if (fechacadena.equals("wed"))
             Dias_A_Anadir=4;
            if (fechacadena.equals("thu"))
             Dias_A_Anadir=3;
            if (fechacadena.equals("fri"))
             Dias_A_Anadir=2;
            if (fechacadena.equals("sat"))
             Dias_A_Anadir=1;  
         }
      }
      
        if (tipo_sorteo==3) // Sorteo de la Loteria Nacional
      {
         if (fechacadena.equals("sat"))
         { 
          System.out.println(fechacadena);
          return fecha.toString();
         }
        else
         {
            if (fechacadena.equals("mon"))
             Dias_A_Anadir=5;
            if (fechacadena.equals("tue"))
             Dias_A_Anadir=4;
            if (fechacadena.equals("wed"))
             Dias_A_Anadir=3;
            if (fechacadena.equals("thu"))
             Dias_A_Anadir=2;
            if (fechacadena.equals("fri"))
             Dias_A_Anadir=1;
            if (fechacadena.equals("sun"))
             Dias_A_Anadir=6;  
         }
      }
    
    return sumar_fechas_dias(fecha, Dias_A_Anadir); 
    
    }
     
    public static void primitiva() throws IOException{//En este método de clase resolveremos el problema de la Primitiva   
      borrar_pantalla();
      fechacadena = dia_del_sorteo(fecha,1).toString();
      // Seguimos con lo que pide el enunciado.
       System.out.println("Próximo Sorteo :" + fechacadena);  
       int NumerosPrimitiva;
       
       //inicializamos los numeros del array
        System.out.print("Apuesta: ");
       for (int i=0;i<=7;i++)
       {
           NumerosPrimitiva=(int) Math.floor(Math.random()*49 +1);
           if (i<6)
               System.out.print(Integer.toString(NumerosPrimitiva)+ " ");
           if (i==6) // Para el complementario
               System.out.println("\nComplementario:" +  Integer.toString(NumerosPrimitiva)+ " ");
           if (i==7)  
           {
               NumerosPrimitiva=(int) Math.floor(Math.random()*9 );
               System.out.print("Reintegro:" + Integer.toString(NumerosPrimitiva)+ " ");
           }
       }
        // Sumamos el coste de la apuesta
         totalapuestas++;
         tecla_para_continuar();
    }
  
    //En este método de clase resolveremos el problema de la Quiniela.
    public static void quiniela() throws IOException
    {
      borrar_pantalla();
      fechacadena = dia_del_sorteo(fecha,2).toString();
      System.out.println("Próxima Jornada :" + fechacadena);  
      System.out.print("¿Cuántas apuestas quieres (2-8)?");
      BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
      int opcion=0;
      String texto="";
      char caracter;
      do
      {
      texto=teclado.readLine();
      caracter= texto.charAt(0);
      opcion=caracter-48; // 48 es el valor ASCII de 0
      if (opcion<=1 || opcion>=8)
               System.out.println("Número de apuestas incorrecto");
               System.out.println(caracter);
      }
      while (opcion<=1 || opcion>=8);
      
      int ApuestasX12;
      //ApuestasX12 = new int [15];
      for(int i=0;i<opcion;i++)
         {
             System.out.print("Apuesta " + Integer.toString(i+1) + ":");
             for (int j=0;j<=14;j++)
               {
                 ApuestasX12=(int) Math.floor(Math.random()*3+1 );
                 if (ApuestasX12==1)
                       System.out.print("1 ");
                 if (ApuestasX12==2)
                      System.out.print("X ");
                 if (ApuestasX12==3)
                      System.out.print("3 ");
               }
             System.out.println("");
         }
      //Calculamos las apuestas en función del numero de opciones introducido
      tecla_para_continuar();
      totalapuestas=totalapuestas + (0.5)*opcion;
    }
    
    //En este método de clase resolveremos el problema de la Loteria Nacional
    public static void loteria_nacional() throws IOException
    {
      borrar_pantalla();
      fechacadena = dia_del_sorteo(fecha,3).toString();
      System.out.println("Próximo Sorteo :" + fechacadena);  
      System.out.println("Elige la terminación hasta 3 cifras: (ENTER si te da igual):");
      BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
      String texto="";
      texto=teclado.readLine();
      int numero;
      // En caso de ser ENTER, todos los numeros, controlo si ya ha aparecido, numeros hasta el 70000
      if (texto.isEmpty())
            {
                
                numero=(int) Math.floor(Math.random()*70000+1);
                       
            }   
      else
            {
                // Comprobamos cuantos digitos ha metido
                if (texto.length()== 3)  
                {
                    String numeroconstruido;
                    int numero1,numero2;
                    numero1=(int)(Math.floor(Math.random()*9));
                    numero2=(int)(Math.floor(Math.random()*9));
                    numeroconstruido= Integer.toString(numero1)+ Integer.toString(numero2)+ texto;
                    System.out.println("Numero con el que juegas: " + numeroconstruido);
                }
                if (texto.length()== 2)  
                {
                    String numeroconstruido;
                    int numero1,numero2,numero3;
                    numero1=(int)(Math.floor(Math.random()*9));
                    numero2=(int)(Math.floor(Math.random()*9));
                    numero3=(int)(Math.floor(Math.random()*9));
                    numeroconstruido= Integer.toString(numero1)+ Integer.toString(numero2)+ Integer.toString(numero3)+ texto;
                    System.out.println("Numero con el que juegas: " + numeroconstruido);
                }
                if (texto.length()== 1)  
                {
                    String numeroconstruido;
                    int numero1,numero2,numero3, numero4;
                    numero1=(int)(Math.floor(Math.random()*9));
                    numero2=(int)(Math.floor(Math.random()*9));
                    numero3=(int)(Math.floor(Math.random()*9));
                    numero4=(int)(Math.floor(Math.random()*9));
                    numeroconstruido= Integer.toString(numero1)+ Integer.toString(numero2)+ Integer.toString(numero3)+  Integer.toString(numero4)+texto;
                    System.out.println("Numero con el que juegas: " + numeroconstruido);
                    
                    
                }
            }
      tecla_para_continuar(); 
      totalapuestas=totalapuestas + 12;
    }
    

}

Espero que os sirva.

 

Salir de la versión móvil