Sem repetição

eu gostaria de saber como eu faço para não repetir os numeros aleatorios

[code]
import javax.swing.*;
public class Bingo {
public Bingo() {
}
public static void main(String[] args) {
int c[][]=new int[5][5];
int s[]=new int[60];
int contl1=0, contl2=0, contl3=0, contl4=0, contl5=0, contt=0;
double numsort;
String cartela="";
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
double x=Math.random()*60;
c[i][j]=(int)x;
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cartela=cartela+" “+c[i][j];
}
cartela=cartela+”\n";
}

  JOptionPane.showMessageDialog(null,"Sua cartela é:"+"\n"+cartela);
  do{
   	double x=Math.random()*59+1;
   	numsort=x;
   	for(int i=0;i<5;i++){
   	  for(int j=0;j<5;j++){
   	    if(numsort!=c[i][j]){
   		  if(c[i][j]==x){
   		    contt++;
   		    if(i==1){
   		      contl1++;
   		      if(contl1==5)
   		        JOptionPane.showMessageDialog(null,"A 1º linha foi completada. ");
   			}
   			if(i==2){
   			  contl2++;
   			  if(contl1==5)
   		        JOptionPane.showMessageDialog(null,"A 2º linha foi completada. ");
   			}
   			if(i==3){
   			  contl3++;
   			  if(contl1==5)
   				JOptionPane.showMessageDialog(null,"A 3º linha foi completada. ");
   			 }
   			 if(i==4){
   			   contl4++;
   			   if(contl1==5)
   				 JOptionPane.showMessageDialog(null,"A 4º linha foi completada. ");
   			 }
   			 if(i==5){
   			   contl5++;
   			   if(contl1==5)
   				 JOptionPane.showMessageDialog(null,"A 5º linha foi completada. ");
   			 }
   		  } 
        }
      }
   	}
  }while(contt==25);
  JOptionPane.showMessageDialog(null,"a cartela foi completa");
}

}[/code]

deu ateh vontade de resolver o exercicio inteiro…
mas a etica não permite xD

tipo… nao de um passo maior q a perna…

vc nao deveria controlar os numeros repetidos… enquanto vc não fazer os numeros funcionarem…
por exemplo…

por mais q vc sorteie um numero X…
esta uma bagunça e verificação pra saber se esse numero existe…
double x=Math.random()*59+1;
numsort=x;
??? x = numsort … praq 2 variaveis ?
nao seria melhor
double numsort = Math.random()*59+1 ?

alias… int numsort = (int)(Math.random()*60)+1 ?

depois … ok … for(I) for(J)…

mas if(numsort!=c[i][j]) … se o numero for diferente ao C[i][j] ele prossegue … não deveria ser igual?
if(numsort==c[i][j]…

e depois vc fez o c[i][j]==x
onde X já seria o numsort… entao essa condição eh a mesma q a anterior… e inversa a ela

esses contl1 contl2… contl3…
nao poderia ser um array? int[] contl = new int[5];

ai ao inves de fazer contl1++
vc faria contl[i]++
odne I jah seria o numero da linha q vc esta

esses são alguns dos erros q encontrei… com certeza existem varios outros

Aff…

Ao invés de tantos ifs use pelo menos um switch…!

Aliás… isso aí merece uma bela refatorada!

:smiley:

[quote] if(numsort!=c[i][j]){ if(c[i][j]==x){ contt++; if(i==1){ contl1++; if(contl1==5) JOptionPane.showMessageDialog(null,"A 1º linha foi completada. "); } if(i==2){ contl2++; if(contl1==5) JOptionPane.showMessageDialog(null,"A 2º linha foi completada. "); } if(i==3){ contl3++; if(contl1==5) JOptionPane.showMessageDialog(null,"A 3º linha foi completada. "); } if(i==4){ contl4++; if(contl1==5) JOptionPane.showMessageDialog(null,"A 4º linha foi completada. "); } if(i==5){ contl5++; if(contl1==5) JOptionPane.showMessageDialog(null,"A 5º linha foi completada. "); } } } [/quote]

o mais engraçado eh q… o codigo ai em cima poderia virar…

if(numsort==c[i][j]{
  contt++;
  contl[i]++;
  if(contl[i]==5) JOptionPane.showMessageDialog(null,"A "+(i+1)+"º linha foi completada.");
}

na verdade o programa não tinha o numsort , esse eu coloquei depois quando eu estava tentando fazer o programa não repetir numeros. e o switch ao cara que esta fazendo comigo ele ainda não entendeu como usar , e para não confundir mais ele eu preferir fazer com o if mesmo.
mas agora o que eu preciso mesmo é como fazer para não repetir numeros

[quote=yuribom]na verdade o programa não tinha o numsort , esse eu coloquei depois quando eu estava tentando fazer o programa não repetir numeros. e o switch ao cara que esta fazendo comigo ele ainda não entendeu como usar , e para não confundir mais ele eu preferir fazer com o if mesmo.
mas agora o que eu preciso mesmo é como fazer para não repetir numeros[/quote]

desculpa… mas eu acho q se alguem explicar como não fazer numeros repitidos… quem vai se confundir é vc…

coloquei varias dicas nos outros posts… qdo vc conseguir aplicar elas e me mostrar…
ai sim eu te ajudo com o proximo passo… =)