correção - uma ajuda em um programa

9 respostas
Y

[color=blue]desculpas, eu coloquei o enunciado errado antes.[/color]

[color=red]Eu preciso simular um jogo de bingo, onde, eu tenho que sortear numeros aleatorios de 0 a 60 e imprimir a tabela (5x5). depois simular o sorteio , e imprimir qual linha foi preenchida primeiro e depois mostrar quando a cartela toda for preenchida.[/color]

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;
       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);
       	
       	double x=Math.random()*59+1;
       	for(int i=0;i<5;i++){
       		for(int j=0;j<5;j++){
       	         
       		     if(c[i][j]==x){
       		     	contt++;
       			     if(i==1){
       			          contl1++;
       			           if(contl1==5)
       				          System.out.println("A 1º linha foi completada. ");
       			     }
       			     if(i==2){
       			           contl2++;
       			           if(contl2==5)
       				          JOptionPane.showMessageDialog(null,"A 2º linha foi completada. ");
       			     }
       			     if(i==3){
       			           contl3++;
       			           if(contl3==5)
       				          JOptionPane.showMessageDialog(null,"A 3º linha foi completada. ");
       			     }
       			     if(i==4){
       			           contl4++;
       			           if(contl4==5)
       				          JOptionPane.showMessageDialog(null,"A 4º linha foi completada. ");
       			     }
       			     if(i==5){
       			           contl5++;
       			           if(contl5==5)
       				          JOptionPane.showMessageDialog(null,"A 5º linha foi completada. ");
       				 }
       				 
       		     
                 } 
              }
             }
    }
}

9 Respostas

shoko

sim sim, e qual o seu problema?

alucardeck

agora fez sentido…

mas tb nao espere q alguem vá resolver o programa pra vc…

poste a sua duvida… e a gente responde…

Y

eu não quero que façam o trabalho para mim, eu só naum estou conseguindo fazer apartir da linha 24 que é preencher a tabela.

alucardeck

bom vamos ver..
se for um bingo de verdade... os numeros não poderiam repetir na cartela..
mas isso creio q vc vai pensar em resolver depois..

eu faria o seu programa da seguinte maneira:

Arraylist cartela, sorteadas ... q vai marcar os numeros q a sua cartela possui, e os numeros q foram retirados no sorteio...
int[] total_linhas .... q vai marcar o numero de numeros sorteados na linha X
int total_sorteado ... q vai marcar o numero de numeros q possuem na sua cartela ateh agora

entao um loop q vai ser o programa...

- retira uma bola
- se a bola não for repitida
  - verifica se vc tem ela na cartela
  - se tiver
    - descobre a linha dela, e soma 1 na total_linhas dela, e soma 1 na total_sorteado
    - se alguma total_linhas chegar a 5... ela foi a primeira linha..
    - se total_sorteado chegar a 25... quer dizer q terminou a cartela
      - entao finaliza o programa, e mostra o size() da arraylist sorteadas
  - se não
    - adiciona ela na arraylist sorteadas
- se nao
  - volta para sortear outra

fazendo de "cabeça" assim... parece q vai funcionar de forma correta o programa...

mais facil q essa dica.. soh resolvendo o exercicio pra vc =)

Y

eu acho que descobri um jeito
obrigado

Y

não concegui

alucardeck

eu te dei a resposta praticamente…
basta programar ela =)

P

Repetir topico e feio, meu filho.

rodrigo1

Bom vamos lá …

[color=blue]primeiro: [/color]

vc tá comparando int com double

if(c[i][j]==x) // linha 29

[color=blue]segundo:[/color]

vc tem que criar um loop para sortear as dezenas:

a partir da linha 24 faça alguma coisa do tipo:

boolean test = true; while (test){ int x = (int) (Math.random()*59+1);

Criado 7 de julho de 2008
Ultima resposta 7 de jul. de 2008
Respostas 9
Participantes 5