Aplicación que simula el juego de una lotería con cupones de 5 dígitos numéricos. En el código de la aplicación se indica el número del cupón al que se va a jugar en todos los sorteos (MI_NUMERO), el saldo inicial del que se parte (saldo) y el importe de cada sorteo (PRECIO_CUPON). La aplicación repetirá el sorteo sucesivamente hasta que se acierte el número completo o bien se acabe el saldo
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Random;
public class Main {
public static void main(String[] args) {
final float PRECIO_CUPON = 1.50f;
final int MI_NUMERO = 65474;
float saldo = 100;
int numeroSorteo;
int contadorApuestas = 0;
NumberFormat formatoMoneda = NumberFormat.getCurrencyInstance();
DecimalFormat formatoLoteria = new DecimalFormat("00000");
Random random = new Random();
do {
numeroSorteo = random.nextInt(100000);
System.out.println("Número del sorteo = " + formatoLoteria.format(numeroSorteo));
saldo -= PRECIO_CUPON;
// Comprobar acierto de 5 dígitos (35000€)
if(MI_NUMERO == numeroSorteo) {
System.out.println("Acierto del número completo (35000€): ");
saldo += 35000;
} else {
// Comprobar acierto de número anterior (500€)
if(MI_NUMERO == numeroSorteo - 1 || (MI_NUMERO == 99999 && numeroSorteo == 0)) {
System.out.println("Acierto del número completo anterior (500€): ");
saldo += 500;
} else {
// Comprobar acierto de número posterior (500€)
if(MI_NUMERO == numeroSorteo + 1 || (MI_NUMERO == 0 && numeroSorteo == 99999)) {
System.out.println("Acierto del número completo posterior (500€): ");
saldo += 500;
} else {
// Comprobar acierto de 4 últimas cifras (200€)
if(MI_NUMERO % 10000 == numeroSorteo % 10000) {
System.out.print("Acierto de 4 dígitos (200€): ");
saldo += 200;
} else {
// Comprobar acierto de 3 últimas cifras (20€)
if(MI_NUMERO % 1000 == numeroSorteo % 1000) {
System.out.print("Acierto de 3 dígitos (20€): ");
saldo += 20;
} else {
// Comprobar acierto de 2 últimas cifras (6€)
if(MI_NUMERO % 100 == numeroSorteo % 100) {
System.out.print("Acierto de 2 dígitos (6€): ");
saldo += 6;
} else {
// Comprobar acierto de última cifra (1.50€)
if(MI_NUMERO % 10 == numeroSorteo % 10) {
System.out.print("Acierto de última cifra (1.50€): ");
saldo += 1.5;
} else {
// Comprobar acierto de primnera cifra (1.50€)
if(MI_NUMERO / 10000 == numeroSorteo / 10000) {
System.out.print("Acierto de primera cifra (1.50€): ");
saldo += 1.5;
} else {
//System.out.print("NO ha sido premiado: ");
}
}
}
}
}
}
}
}
System.out.println("Saldo = " + formatoMoneda.format(saldo));
System.out.println();
contadorApuestas++;
} while(MI_NUMERO != numeroSorteo && saldo >= PRECIO_CUPON);
System.out.println("Num. apuestas = " + contadorApuestas);
}
}