¿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.
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.
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
0