Ir ao conteúdo

Posts recomendados

Postado

Galera, estou tentando fazer algo mas não estou conseguindo. Crie um sisteminha que gera combinações aleatorias, onde antes de iniciar a geração dos numeros, eu digo que numeros naõ devem participar do sorteio. Eles são jogados num array e não participam do sorteio. O programa gera os jogos apenas no console. Eu gostaria de fazer com que ao invés de apontar manualmente os numeros que não irão participar do sorteio, que o sistema gere os numeros e guarde num bando de dados. A partir de então, quando fosse gerar novamente, que ele consultasse se o numero gerado ja exisite no banco e se sim, não o utlizasse. Logo abaixo coloquei o meu codigo. Peço que alguém me ajude a melhorar isso ai

janelaPrincipal.setTitle("Gerar Números");
		

		btAddNumero.addActionListener(new ActionListener() {

			int count = 0;
			//int tmp=0;
			
			List<Integer> valoresRejeitados = new ArrayList<>();
			ArrayList<Integer> valoresAceitos = new ArrayList<Integer>();
			Random valorRandomico = new Random();
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				int tmp = 0;
				int temp = Integer.parseInt(field1.getText());
				String temp2 = String.valueOf(temp); 
				if (count < 5) {
					
					if(!valoresRejeitados.contains(temp)){
						
						valoresRejeitados.add(temp);
						label3.setText(valoresRejeitados.toString());
						
						count++;
					}else{
						JOptionPane.showMessageDialog(null, "Este número já foi inserido!");
					}
				}
				if(count==5){
					/*
					 * for que gera 10 combinações de números
					 */
					for(int j=0; j<340; j++){
						//limpa a lista de combinações
						valoresAceitos.clear();
						System.out.print("Combinação #" + (j+1) + "{");
						
						/*
						 * for que gera os cinco numeros de cada grupo
						 */
						for(int k=0; k<5; k++){
							
							/*
							 * o while se repete enquanto o numero gerado for repetido
							 */
							while(true){
								
								//gera numero aleatório entre 1 e 25
								tmp = 1 + valorRandomico.nextInt(80);
								
								/*
								 * verifica se a lista de combinações(valores aceitos) contem numeros repetidos
								 * digitados ou gerados
								 */	
								if(!valoresAceitos.contains(tmp) && !valoresRejeitados.contains(tmp)){	
									valoresAceitos.add(tmp);
									
									//sai do laço while
									break;
								}
							}
							//exibe o numero gerado
							System.out.print(" " + tmp);
						}
						System.out.println("}");
						
						switch (j) {
						case 0:
							label4.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label4.repaint();							
							break;
						case 1:
							label5.setText("Combinação "+(j+1)+ ": " + valoresAceitos.toString());
							label5.repaint();							
							break;
						case 2:
							label6.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label6.repaint();							
							break;
						case 3:
							label7.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label7.repaint();							
							break;
						case 4:
							label8.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label8.repaint();							
							break;
						case 5:
							label9.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label9.repaint();							
							break;
						case 6:
							label10.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label10.repaint();							
							break;
						case 7:
							label11.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label11.repaint();							
							break;
						case 8:
							label12.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label12.repaint();							
							break;
						case 9:
							label13.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label13.repaint();							
							break;
                                                case 10:
							label14.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label14.repaint();							
							break; 
                                                case 11:
							label15.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label15.repaint();							
							break; 
                                                case 12:
							label16.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString());
							label16.repaint();							
							break;    
						

						default:
							
							break;
						}

alguém poderia me ajudar ?

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...