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!

[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… =)