Java - ¿Alguien puede ayudarme con un ejercicio? Está casi acabado

 
Vista:
sin imagen de perfil
Val: 51
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Alguien puede ayudarme con un ejercicio? Está casi acabado

Publicado por mano01 (32 intervenciones) el 22/01/2017 22:27:13
Este es el ejercicio: Haga un programa en java que cuente las veces que un jugador tiene que apostar hasta acertar los seis números de la lotería primitiva. Es decir, el jugador hará una apuesta única de seis números
donde cada número está comprendido entre 1 y 49, y el programa deberá generar combinaciones
aleatorias de seis números hasta que una coincida con la apuesta que hizo el jugador. En este
proceso se deberá ir contando cuántas combinaciones se han generado hasta que una coincida con la
del jugador.

Y este es mi código.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Scanner sc = new Scanner(System.in);
    int aux, aux2;
    int cont = 0;
    int comprobaciones = 0;
    boolean c = false;
    int[] num = new int[6];
    int aleatorio = (int) (Math.random()*49+1);
    int[] insertar = new int[6];
 
    for(int s = 0; s < insertar.length;s++){
        System.out.print("Inserte 6 números comprendido entre 1 y 49 (de uno en uno): ");
        insertar[s] = sc.nextInt();
    }
    //Ordenación del array de los números que se insertan por teclado. Ordenación del array insertar[]
    for(int j = 0;j < num.length;j++){
        for(int y = j + 1;y < num.length;y++){
            if(num[y] < num[j]){
                aux = num[j];
                num[j] = num[y];
                num[y] = aux;
            }
        }
 
    }//Fin de la ordención de los números insertados por teclado
    do{
    comprobaciones++;
    //Parte del codigo que genera los números aleatorios
    for(int i = 0;i<num.length;i++){
        num[i] = (int) (Math.random()*49+1);
    }//Fin de la parte de codigo que genera números aleatorios
 
//Ordenacion del array de los números generados aleatoriamente. Ordenacion del array num[]
    for(int h = 0;h < insertar.length;h++){
        for(int k = 0; k < insertar.length;k++){
            if(insertar[k] < insertar[h]){
               aux2 = insertar[h];
               insertar[h] = insertar[k];
               insertar[k] = aux2;
            }
        }
    }
//Fin de la ordenación del array con lso números ordenados aleatoriamente
 
//Inicio de la comprobacion de los números insertados y aleatorios. Si coindicen, cont llegara a 6 y al llegar a 6, permitirá la salida
//del do
    for(int x = 0;x < num.length;x++){
        if(num[x]==insertar[x]){
            cont++;
            }else{
                cont = 0;
            }
        }
 
    }while(cont != 6);{
            System.out.println("¡Has acertado todos los números! Número de comprobaciones: " +comprobaciones);
 
        }
 
    }
 
}

Mi idea es almacenar los numeros aleatorios y los numeros introdidos por el usuario en arrays distintos. Luego se ordenaran de menor a mayor para poder ser comparados. Mi problema está en que al ejecutarlo todo, me pide los 6 números y a después de introducirlos no hace nada. Espero que me ayuden, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 96
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

¿Alguien puede ayudarme con un ejercicio? Está casi acabado

Publicado por Bruno (43 intervenciones) el 23/01/2017 18:07:49
En las lineas 10 y 13 el usuario inserta los 6 números y lo almacenas en el array "insertar".

Entre las líneas 14 y 22, el ordenamiento del array que se insertan por teclado, osea el usuario, estas trabajando sobre "num" y en realidad lo que inserto el usuario lo pusiste en el array "insertar". Entonces, deberías cambiar "num" por "insertar.

Con respecto a la ejecución, puede demorar bastante en coincidir, por eso puede ser que te demore y te parece que no hace nada el programa. Podrías mostrar por ejemplo la variable "combinaciones" en cada jugada para que te informe que el programa esta ejecutandose y no pienses que se ha clavado.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar