Gerador de números da LotoFácil

Boa noite pessoal,

Estou criando um programa gerador de jogos aleatórios da lotofácil que deveria parar só quando acertasse a aposta de entrada. O programa é o que está a seguir:
package LotoFacil;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;

public class LotoFacil {
public static void main(String[] args) {

    //Entrando com 15 números inteiros (ainda não a regra de menor ou igual a 25 ou repetição)     
    Scanner input = new Scanner(System.in);
    int[] numeros = new int[15];

    for (int i = 0; i < numeros.length; i++)
    {
        System.out.print("Coloque um número:");
        numeros[i] = input.nextInt();
    }

    for (int i = 0; i < numeros.length; i++) {;
    }
    
    {

{

    // Criação de uma variável tipo lista com os 15 números escolhidos 
   ArrayList<Integer> minhaaposta = new ArrayList<Integer>(); 
   minhaaposta.add(numeros[0]);
   minhaaposta.add(numeros[1]); 
   minhaaposta.add(numeros[2]); 
   minhaaposta.add(numeros[3]); 
   minhaaposta.add(numeros[4]); 
   minhaaposta.add(numeros[5]); 
   minhaaposta.add(numeros[6]); 
   minhaaposta.add(numeros[7]); 
   minhaaposta.add(numeros[8]); 
   minhaaposta.add(numeros[9]); 
   minhaaposta.add(numeros[10]); 
   minhaaposta.add(numeros[11]); 
   minhaaposta.add(numeros[12]); 
   minhaaposta.add(numeros[13]); 
   minhaaposta.add(numeros[14]); 
    
   
     Collections.sort(minhaaposta); 

// Mostrando os números escolhidos 
System.out.println("Minha Aposta: " + minhaaposta); 
 
// Criando jogos aleatórios com o random
System.out.println("Gerador de jogos: ");

// System.out.println();

	int numeroDeBolasNaUrna = 25;
	int numeroDeBolasASortear = 15;
	Random roleta = new Random();
            
            
	ArrayList<Integer> urna = new ArrayList<>(numeroDeBolasNaUrna);
	int[] resultados = new int[numeroDeBolasASortear];
            
	
            for (int i = 0; i < numeroDeBolasNaUrna; i++) 
		urna.add(i+1); //adiciona 1 pois as bolas na urna iniciam de 1 e não de 0
	for (int i = 0; i < numeroDeBolasASortear; i++)
	
		resultados[i] = urna.remove(roleta.nextInt(urna.size()));
	//imprimindo resultado:                       
	for (int resultado : resultados) {
		System.out.print(" " ); }
            
            ArrayList<Integer> resultado = new ArrayList<Integer>(); 
   resultado.add(resultados[0]);
   resultado.add(resultados[1]); 
   resultado.add(resultados[2]); 
   resultado.add(resultados[3]); 
   resultado.add(resultados[4]); 
   resultado.add(resultados[5]); 
   resultado.add(resultados[6]); 
   resultado.add(resultados[7]); 
   resultado.add(resultados[8]); 
   resultado.add(resultados[9]); 
   resultado.add(resultados[10]); 
   resultado.add(resultados[11]); 
   resultado.add(resultados[12]); 
   resultado.add(resultados[13]); 
   resultado.add(resultados[14]);
     Collections.sort(resultado);       
   System.out.println("Resultado: " + resultado); 
           
   //Verificando se ganhei ou não 

boolean Eigual = resultado.equals(minhaaposta);
System.out.println(“Diferente”);

 do {   
      
      Random roleta2 = new Random();
	ArrayList<Integer> urna2 = new ArrayList<>(numeroDeBolasNaUrna);
	
            int[] resultados2 = new int[numeroDeBolasASortear];

     for (int j = 0; j < numeroDeBolasNaUrna; j++) 
		urna2.add(j+1); //adciona 1 pois as bolas na urna iniciam de 1 e não de 0
	for (int j = 0; j < numeroDeBolasASortear; j++)
	
		resultados2[j] = urna2.remove(roleta.nextInt(urna2.size()));
	//imprimindo resultado                            
	//for (int resultado2 : resultados2) {}
          
	//imprimindo resultado                            
        
      
 ArrayList<Integer>resultado3 = new ArrayList<>(numeroDeBolasNaUrna);
   resultado3.add(resultados2[0]);
   resultado3.add(resultados2[1]); 
   resultado3.add(resultados2[2]); 
   resultado3.add(resultados2[3]); 
   resultado3.add(resultados2[4]); 
   resultado3.add(resultados2[5]); 
   resultado3.add(resultados2[6]); 
   resultado3.add(resultados2[7]); 
   resultado3.add(resultados2[8]); 
   resultado3.add(resultados2[9]); 
   resultado3.add(resultados2[10]); 
   resultado3.add(resultados2[11]); 
   resultado3.add(resultados2[12]); 
   resultado3.add(resultados2[13]); 
   resultado3.add(resultados2[14]);
   Collections.sort(resultado3);
  System.out.println("Resultado3: " + resultado3); 
 }
 
   while (Eigual != true);
       		
            } }}}

O problema é que ele não lê a variável minhaaposta no laço de repetição a cada geração e portanto está com repetição infinita. Como poderia resolver isso? Alguém poderia ajudar?

Teu código está bem confuso. Destaca apenas o trecho em que deveria fazer essa validação.

1 curtida

eu criei uma formula de do 1 ao 5 com 31 JOGOS, 1 ao 10 com 961 JOGOS, 1 ao 15 com 29.791 JOGOS. porem do 1 ao 20 e do 1 ao 25 estou trabalhando nela pra NÃO dar 923.521 JOGOS…