MegaSena - Comparação de números

3 respostas
felipexavier

galera o seguinte, não estou conseguindo de jeito nenhum comparar o números inserido pelo usuário com o número sorteado!
alguem pode analisar o codigo por favor? quero comparar o número inserido pelo usuário com os números sorteados e também saber quanto tempo levaria parar sair a combinação dos números que ele colocou: exemplo:

quando tempo levaria para sortear 15 12 14 13 16 17

entende?

meu codigo:
import java.util.*;
/**
 * Write a description of class Megasena here.
 * 
 * @author (Felipe Xavier) 
 * @version (1.0)
 */
public class TesteMega
{
    public static void main(String args[])//static chama um metodo sem criar obj.
    {
        int vet[] = new int[6];//vetor
        int vet1[] = new int[6];
       
        int n, n1, cont=1, cont2=1, cont3=0, cont4=0, cont5=0;// declarando variaveis do tipo inteiro
        Scanner entrada= new Scanner(System.in);//criando um objeto entrada do tipo Scanner
       
        for (int j=0; j<6; j++){ //laço de repetição
            System.out.print("Entre com o "+cont2+"º número: "); //mensagem pedindo o primeiro numero
            n1 = entrada.nextInt();// variavel n recebe o valor digitado
            vet1[j] = n1;// vet1 = n
            System.out.println(cont2+"º numero escolhido "+vet1[j]);
            System.out.println("-------------------------------------------");
            cont2=cont2+1;
        }
       
        vet[0] = (int)(Math.random()*59+1);
       for (int i=1; i<6; i++){
            do{
                n = (int)(Math.random()*59+1);
        
            } while ( verificarRepeticao(vet,n) == true);// enquanto o vet for == n vai continuar fazendo o do
    
            vet[i]=n;
            System.out.println("Número sortedo "+vet[i]);
            System.out.println("-------------------------------------------");
       }    
       
       while (cont5<7){
           for (int i=0; i<6; i++){
               do{
                    System.out.println("Seu número "+vet1[i]+" foi sorteado");
                    cont3=cont3+1;
                                        
               }while (verificarAcerto(vet, vet1) == true);
               
               if(cont3==6){
                   cont5=cont3;
               }else{
                    System.out.println("Voce teve "+cont3+" acerto(s)");
                    System.out.println("-------------------------------------------");
                }
                    
              
            } 
           cont4=cont4+1;
        }  
        
       if (cont3==6){
           System.out.println("Para voce ganhar com os números escolhidos terá que esperar por "+cont4+" sorteios");
        }
    }

    static boolean verificarRepeticao(int v[], int num)//v é a copia de vet
    {
        for(int i=0; i<v.length; i++)//length mostra o tamanho
        {
            if(v[i] == num)
                return(true);
        }
                return(false);
    }
    
    static boolean verificarAcerto(int v1[], int v2[]){
        for (int j=0; j<v1.length; j++){
           for (int i=0; i<v2.length; i++){
                if ( v1[j] == v2[i]){
                   return(true);
                }
                
            }
        }
        return(false);
    }
}

obs: o professor nao quer que crie outra classe

3 Respostas

felipexavier
Modifiquei e agora ta comparando, mas tenho que comseguir que a cada 6 ele faça o sorteio denovo ><
import java.util.*;
/**
 * Write a description of class Megasena here.
 * 
 * @author (Felipe Xavier) 
 * @version (1.0)
 */
public class TesteMega
{
    public static void main(String args[])//static chama um metodo sem criar obj.
    {
        int vet[] = new int[6];//vetor
        int vet1[] = new int[6];
       
        int n, n1, cont=1, cont2=1, cont3=0, cont4=0, cont5=0;// declarando variaveis do tipo inteiro
        Scanner entrada= new Scanner(System.in);//criando um objeto entrada do tipo Scanner
       
        for (int j=0; j<6; j++){ //laço de repetição
            System.out.print("Entre com o "+cont2+"º número: "); //mensagem pedindo o primeiro numero
            n1 = entrada.nextInt();// variavel n recebe o valor digitado
            vet1[j] = n1;// vet1 = n
            System.out.println(cont2+"º numero escolhido "+vet1[j]);
            System.out.println("-------------------------------------------");
            cont2=cont2+1;
        }
       
        vet[0] = (int)(Math.random()*59+1);
       for (int i=1; i<6; i++){
           System.out.println(vet[i]);
           System.out.println(vet1[i]);
            do{
                n = (int)(Math.random()*59+1);
        
            } while ( verificarRepeticao(vet,n) == true);// enquanto o vet for == n vai continuar fazendo o do
    
            vet[i]=n;
            System.out.println("Número sortedo "+vet[i]);
            System.out.println("-------------------------------------------");
       }    
       
       while (cont5<7){
           for (int i=0; i<6; i++){
           System.out.println(vet[i]);
           System.out.println(vet1[i]);
               if (verificarAcerto(vet, vet1) == true){
                System.out.println("Seu número "+vet1[i]+" foi sorteado");
                cont3=cont3+1;               
                }
               if(cont3==6){
                   cont5=cont3;
               }else{
                    System.out.println("Voce teve "+cont3+" acerto(s)");
                    System.out.println("-------------------------------------------");
                }
                    
              
            } 
           System.out.println("-----------------Sorteio--------------------------");
           cont4=cont4+1;
        }  
        
       if (cont3==6){
           System.out.println("Para voce ganhar com os números escolhidos terá que esperar por "+cont4+" sorteios");
        }
    }

    static boolean verificarRepeticao(int v[], int num)//v é a copia de vet
    {
        for(int i=0; i<v.length; i++)//length mostra o tamanho
        {
            if(v[i] == num)
                return(true);
        }
                return(false);
    }
    
    static boolean verificarAcerto(int v1[], int v2[]){
        for (int j=0; j<v1.length; j++){
           for (int i=0; i<v2.length; i++){
                if ( v1[j] == v2[i]){
                   return(true);
                }
                
            }
        }
        return(false);
    }
}
C

seria algo assim?

a leitura, sorteio e comparação

package teste2;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

/**
 *
 * @author aluno
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

       ArrayList<Integer> jogador = new ArrayList<Integer>();
       ArrayList<Integer> sorteio = new ArrayList<Integer>();

      int i = 0;

      Scanner sc = new Scanner(System.in);

      //le valores do usuario e faz o sorteio
      for(i = 0;i<6;i++){

          System.out.println("Digite o numero "+ (i+1) +":");
          jogador.add(sc.nextInt());
          Random random = new Random();
          sorteio.add(random.nextInt(59)+1);
      }

       for(i = 0;i<6;i++){

           if(sorteio.contains(jogador.get(i))){

               System.out.println("Acertou número "+jogador.get(i));
           }
       }

      //listar todos numeros do jogador
      for(int jog : jogador){

          System.out.println("Número do jogador: " + jog);
      }

       //listar todos numeros sorteados
      for(int sort : sorteio){

          System.out.println("Número sorteado: " + sort);
      }

    }






}

para verificar quanto tempo levaria, mande o programa odar o sorteio, até todos os numeros do usuario estiverem dentro do arraylist sorteio

se entendi eh isso...

R

ja fiz um simulador mega sena. se interessar ainda posso postar o jar ou talvez até o código mesmo

Criado 8 de abril de 2011
Ultima resposta 9 de abr. de 2011
Respostas 3
Participantes 3