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?