Programa Mega-sena

20 respostas
H

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á!

20 Respostas

castiel

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

faelcavalcanti

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

.
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


bons códigos!

rod

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!

M
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:

M
mfp.c:
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]);
        }

basta algumas alterações e pronto :)

C

Gente preciso fazer um pareciso mas nao posso usar array.

e nao estou conseguindo

ViniGodoy

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.

ViniGodoy

camila.nuri:
Gente preciso fazer um pareciso mas nao posso usar array.

e nao estou conseguindo

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?

C

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);
}

}

Alkamavo
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);
}
}
C

Este codigo eu que fiz…so q nao esta completo

J

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.

C

Entao pode fazer…rs

J

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.

gregorioarthur

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.

Strings em JAVA são um tipo de Array.

xD

pedroroxd

Usa collection

ViniGodoy

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.

G

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??

G

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.<em>;

import java.awt.</em>;

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
L

Visualização melhor!!!!!

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

look this :arrow: [url]http://www.guj.com.br/posts/list/50115.java[/url]

Criado 4 de julho de 2009
Ultima resposta 15 de out. de 2010
Respostas 20
Participantes 13