Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

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.

 

Etiquetas:,

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Home JAVA Ejemplo formativo JAVA, aplicación Loterías y Apuestas.
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies