Programa Mega-sena

colegas,

preciso criar um programa que gera 100 jogos da mega-sena e depois gera um relatório informando a quantidade de vezes que cada número foi sorteado. Quem puder me ajudar agradeço desde já!

ehehe querendo ganha dinheiro kkk

usa um random
http://java.sun.com/j2se/1.5.0/docs/api/java/util/class-use/Random.html
vai armazenando os resultados em um array, depois usa um for para contar os numeros

você pode utilizar a classe randon pegando resto da divisão por 60
para contar a quantidade de vezes que um número foi sorteado, você pode utilizar desde arrays como hashmap

alguns sites para te ajudar

[quote].
http://www.rodrigolazoti.com.br/?p=27
http://www.koders.com/java/fidE18A804E24AEFE671AABA01ADD270A89335B18A0.aspx?s=file%3Ahex.java
http://www.javafree.org/topic-870256-Programa-da-Mega-sena.html
http://www.guj.com.br/posts/list/67752.java


[/quote]
bons códigos!

Eu ia indicar um exemplo que tem no meu blog, mas o faelcavalcanti já fiz isso! :smiley:

Mas a minha dica é a mesma que o faelcavalcanti escreveu!

 int jogo[] = new int[60];
        for(int contador=0;contador<100;contador++){
           int numero =   (int) ((1 + Math.random() * 60)-1);
           jogo[numero] +=1;
        }

        for(int contador=0;contador<60;contador++){
            System.out.println((contador+1) + " - " + jogo[contador]);
        }

você pode melhorar :slight_smile:

[quote=mfp.c][code]
int jogo[] = new int[60];
for(int contador=0;contador<100;contador++){
int numero = (int) ((1 + Math.random() * 60)-1);
jogo[numero] +=1;
}

    for(int contador=0;contador<60;contador++){
        System.out.println((contador+1) + " - " + jogo[contador]);
    }

[/code]

basta algumas alterações e pronto :)[/quote]

Gente preciso fazer um pareciso mas nao posso usar array.

e nao estou conseguindo

O programa postado pode gerar números repetidos, para um mesmo jogo.

O ideal é criar um arrayList, com números de 1 até 60. Use sobre ele o Collections.shuffle.
Então, pegue os 6 primeiros números do arrayList. Repita esse processo 100 vezes.

Para a parte de informar quantas vezes cada número foi sorteado, basta usar um Map. Crie um Map<Integer, Integer> e faça a soma nele.

[quote=camila.nuri]Gente preciso fazer um pareciso mas nao posso usar array.

e nao estou conseguindo[/quote]

Não vai conseguir mesmo. Sem usar array fica complicadíssimo fazer. Você pode postar o que você já fez e o enunciado correto em outro tópico?

Entao com array sei fazer…não estou conseguindo fazer sem

import javax.swing.JOptionPane;

public class MegaSena
{
private String palpite;

public int MegaSena()
{
	for(int cont = 0;cont < 60;cont++)	
	{
	
	}

public void geraPalpite(int quantidade)
{
	palpite = "";
	for(int i = 0; i < 6 * quantidade; i ++)
	{
		if(i > 0 && i % 6 == 0)
		{
			palpite += "\n";
		}
		
		int tmpPalpite = (int)(Math.random() * 60 + 1);
		palpite += String.valueOf(tmpPalpite) + ", ";
	}
	
	JOptionPane.showMessageDialog(null, palpite);
}

}

[code]import javax.swing.JOptionPane;

public class MegaSena
{
private String palpite;

public int MegaSena()
{
for(int cont = 0;cont < 60;cont++)
{

}

public void geraPalpite(int quantidade)
{
palpite = “”;
for(int i = 0; i < 6 * quantidade; i ++)
{
if(i > 0 && i % 6 == 0)
{
palpite += “\n”;
}

int tmpPalpite = (int)(Math.random() * 60 + 1);
palpite += String.valueOf(tmpPalpite) + ", ";
}

JOptionPane.showMessageDialog(null, palpite);
}
} [/code]

Este codigo eu que fiz…so q nao esta completo

Camila,

Conforme o Fulvio fez, nós teremos que armazenar os valores numa String, e depois apresenta-lá no final do programa. Essa é a única maneira de fazer este programa sem usar Array.

Entao pode fazer…rs

Quem me dera, eu sei exatamente o que fazer, mas tenho dificuldades na hora de colocar isso pra funcionar… Não sei o que acontece que eu travo e não sai nada.

[quote=JAQUELINEDIAS]Camila,

Conforme o Fulvio fez, nós teremos que armazenar os valores numa String, e depois apresenta-lá no final do programa. Essa é a única maneira de fazer este programa sem usar Array.

[/quote]

Strings em JAVA são um tipo de Array.

xD

Usa collection

Strings em C e C++ são um tipo de Array. Em java, não tem nada a ver com isso. Uma grande diferença é que são totalmente imutáveis.

amigos eu adorei os jogos mas preciso d um q o usuario, jogue um jogo, e depois faça o sorteio, e demonstre em baixo, si ele foi sorteado si ganhou na quadra ou quina ou mega, entenderam… si ouve ganhador como posso fazer isso??

Amigos preciso de ajuda, eu fiz esse programa mas preciso q elem de ele jogar ele abra uma janela de opçao pra o usuario jogar, e ainda mostrar o resultado si ele foi sorteado em algum processo tipo quadra ou quina alguem pode me ajudar??

Codigo da loteria
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package init;

//classes importadas
import javax.swing.;
import java.awt.
;
import java.awt.event.*;
import java.text.ParseException;
import javax.swing.text.MaskFormatter;
import java.util.Random;

/**
*

  • @author Administrador
    */

//classe Bicho
public class Bicho extends JFrame {

//cria JLabel   
JLabel lbQntNumeros, lbQntJogos, lbNumMax, lbNumSorteados;   
//cria campo para diigitar nome do usuário   
JFormattedTextField edQntNumeros, edQntJogos, edNumMax;   
MaskFormatter msQntNumeros, msQntJogos, msNumMax;   
//cria botões   
JButton btSortear;   
//Cria listas   
JList lNumSorteados;   

//array que armazena os valores de cada jogo   
int jogo[] = new int[99];   

//array que armazena todos os jogos   
String listaJogos[] = new String[9999];   

//construtor da classe   
public Bicho() {   

    //titulo da janela   
    super("Sorteia números");   

    ImageIcon icone = new ImageIcon("imagem.jpg");   
    setIconImage(icone.getImage());   

    for(int i = 0; i < listaJogos.length; ++i)   
        listaJogos[i] = "Jogo " + String.valueOf(1+i) + ": ";   

    //configura a quantidade de colunas e linhas   
    setLayout(null);   

    //cor do formulario   
    Container fundo = getContentPane();   
    //fundo.setBackground(Color.red);   

    /** Inicializa os JLabel */   
        lbQntNumeros = new JLabel("Quantidade de números");   
        lbQntJogos = new JLabel("Quantidade de jogos");   
        lbNumMax = new JLabel("Número de 1 até...");   
        lbNumSorteados = new JLabel("Números sorteados");   
    /** fim JLabel */   

    /** Inicializa os JList */   
        lNumSorteados = new JList(listaJogos);   
        lNumSorteados.setVisibleRowCount(5);   
        JScrollPane barraRolagem = new JScrollPane(lNumSorteados);   
        lNumSorteados.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);   
    /** fim JList */   

    /** Inicializa Mascaras */   
        try {   

            msQntNumeros = new MaskFormatter("##");   
            msQntJogos = new MaskFormatter("####");   
            msNumMax = new MaskFormatter("##");   

        }   
        catch(ParseException excp) {}   
    /** Fim Mascaras */   

    /** Inicializa JFormattedTextField */   
        edQntNumeros = new JFormattedTextField(msQntNumeros);   
        edQntJogos = new JFormattedTextField(msQntJogos);   
        edNumMax = new JFormattedTextField(msNumMax);   
    /** fim JTextField e JPasswordField */   

    /** inicializa os JButton */   
        btSortear = new JButton("Sortear");   
    /** fim JButton */   

    /** Posiciona os componentes */   
        //JLabel   
        lbQntNumeros.setBounds(20, 20, 300, 20);   
        lbQntJogos.setBounds(20, 70, 300, 20);   
        lbNumMax.setBounds(20, 120, 300, 20);   
        lbNumSorteados.setBounds(200, 20, 300, 20);   

        //JFormattedTextField   
        edQntNumeros.setBounds(20, 40, 150, 20);   
        edQntJogos.setBounds(20, 90, 150, 20);   
        edNumMax.setBounds(20, 140, 150, 20);   

        //JButton   
        btSortear.setBounds(225, 190, 150, 20);   

        //JList   
        barraRolagem.setBounds(200, 40, 370, 120);   
    /** fim da posição dos componentes */   

    //botão padrão ao apertar ENTER   
    getRootPane().setDefaultButton(btSortear);   

    /** Ação JButton */   
        btSortear.addActionListener(new ActionListener() {   
            public void actionPerformed(ActionEvent e) {   
                sorteador();   
                lNumSorteados.repaint();   
            }   
        });   
    /** fim Ação JButton */   

    /** insere os componentes no formulário */   
        //JLabel   
        add(lbQntNumeros);   
        add(lbQntJogos);   
        add(lbNumMax);   
        add(lbNumSorteados);   

        //JTextField   
        add(edQntNumeros);   
        add(edQntJogos);   
        add(edNumMax);   

        //JButton   
        add(btSortear);   

        //JList   
        add(barraRolagem);   
    /** fim da inserção de componentes */   

    //tamanho do formulário   
    setSize(600, 250);   

    //torna o formulário visível   
    setVisible(true);   

    //não permite redimencionamento do formulário   
    setResizable(false);   

    //mostra o furmulário sempre no centro da tela   
    setLocationRelativeTo(null);   

} //fim do construtor   

/**  
 * @param args the command line arguments  
 */   
public static void main(String[] args) {   
    // TODO code application logic here   

    Bicho app = new Bicho();   

    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   

} //fim do método main   

public void sorteador() {   

    //cria objeto Random e atribui a numeroAleatorio   
    Random numeroAleatorio = new Random();   

    //String para armazenar os resultados do array jogo acumulado   
    String jogoFinal = "";   

    //cria Strings e atribui os valores dos JFormattedTextField   
    String qntNumeros = edQntNumeros.getText();   
    String qntJogos = edQntJogos.getText();   
    String numMax = edNumMax.getText();   

    //cria integers para armazenar os valores em inteiros   
    int numeros = 0;   
    int jogos = 0;   
    int max = 0;   

    //verifica se todos os JFormattedTextField foram preenchidos, se não exibe uma mensagem   
    if (!qntNumeros.trim().equals("") &&   
            !qntJogos.trim().equals("") &&   
                !numMax.trim().equals("")) {   

        numeros = Integer.parseInt(qntNumeros);   
        jogos = Integer.parseInt(qntJogos);   
        max = Integer.parseInt(numMax);   

        //if que verifica se o valor max é suficiente em relação aos digitos   
        if (max / 2 >= numeros) {   

            for(int i = 0; i < jogo.length; ++i)   
                jogo[i] = 0;   

            //for número de jogos   
            for(int z = 0; z < jogos; ++z) {   

                //for que sorteia os números   
                for(int i = 0; i < numeros; ++i) {   

                    int jogoTmp = 1 + numeroAleatorio.nextInt(max);   
                    jogo[i] = jogoTmp;   

                } //fim do for que sorteia os números   

                //for que passa os valores do array para acumular em uma string   
                for(int i = 0; i < numeros; ++i) {   

                    jogoFinal += String.valueOf(jogo[i]) + " ";   

                } //fim do for que passa os valores do array para acumular em uma string   

                //adiciona o jogo no array que guarda os jogos   
                listaJogos[z] = "Jogo " + String.valueOf(1+z) + ": " + jogoFinal;   

                //coloca a variável jogoFinal novamente como ""   
                jogoFinal = "";   

            } //fim do for número de jogos   

        }   
        else   
            JOptionPane.showMessageDialog(null, "O valor máximo tem que ser no mínimo duas vezes maior que a quantidade de números!!",   
                    "Corriga o valor máximo", JOptionPane.INFORMATION_MESSAGE);   
            //fim do if que verifica se o valor max é suficiente em relação aos digitos   

    }   
    else   
        JOptionPane.showMessageDialog(null, "É fundamentão que seja digitado valores em todos os campos!!",   
                "Faltou campo a ser digitado", JOptionPane.INFORMATION_MESSAGE);   
        //fim do if que verifica se todos os campos foram preenchidos   
       
} //fim do método sorteador