Java - Ayuda en el sorteo basado en el juego "comunio"

 
Vista:
sin imagen de perfil

Ayuda en el sorteo basado en el juego "comunio"

Publicado por José (5 intervenciones) el 08/06/2016 01:52:26
Hola, buenas a todos. Tengo un problema que llevo intentando solucionar desde mucho tiempo y no consigo nada y ya me doy por vencido por mi cuenta y necesito ayuda. La idea es un sorteo basado en el juego "comunio". Es una norma del comunio que tengo aplicada para este año y es la siguiente:

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
#Creo dos arrays en jframe donde estan divididos en dos filas:
 
String [] jugadores = new String [7];
 
        jugadores[0] = "Bale";
        jugadores[1] = "Benzema";
        jugadores[2] = "Cristiano";
        jugadores[3] = "Griezmann";
        jugadores[4] = "Messi";
        jugadores[5] = "Neymar";
        jugadores[6] = "Suarez";
 
        String [] miembros = new String [7];
 
        miembros[0] = "Abraham";
        miembros[1] = "Adrián";
        miembros[2] = "Ángel";
        miembros[3] = "Germán";
        miembros[4] = "José";
        miembros[5] = "Moisés";
        miembros[6] = "Pepe";
 
#Creo las variables recomendadas e importantes para proceder al bucle y a su resultado:
 
int [] guardar = new int [7];
        int [] ordenar = new int [7];
 
        int j;
        int i;
        int numero = 0;
        int aux = 0;
 
# La primera posición figura fuera del bucle para tener un valor donde poder compararlo.
 
numero = (int) (Math.random() * (7-0) + 0);
        ordenar[0] = numero;
 
# En este bucle, creo automáticamente 6 números mas.
 
        for(i=1; i<7; i++){
            numero = (int) (Math.random() * (7-0) + 0);
            ordenar[i] = numero;
        }
 
# Y en este bucle intento comprobar que los números no se repitan.
 
        for(j=0; j<7; j++){
            aux = (int) (Math.random() * (7-0) + 0);
            while(aux == ordenar[j]){
                aux = (int) (Math.random() * (7-0) + 0);
            }
            guardar[j] = aux;
        }

Esos números determinarán la posición de cada dato en el array y siempre se repiten una o más veces.

1
2
3
4
5
6
7
8
9
# Y ya muestro en cada campo de texto el valor asignado.
 
        jTextField1.setText(miembros[guardar[0]]);
        jTextField2.setText(miembros[guardar[1]]);
        jTextField3.setText(miembros[guardar[2]]);
        jTextField4.setText(miembros[guardar[3]]);
        jTextField5.setText(miembros[guardar[4]]);
        jTextField6.setText(miembros[guardar[5]]);
        jTextField7.setText(miembros[guardar[6]]);

¿Podeis resolverme este problema? Quisiera, como me he explicado antes, que se muestren todos los datos de cada array sin que se repitan. Gracias por su atención. Saludos!
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
Imágen de perfil de Alexis

Ayuda en el sorteo basado en el juego "comunio"

Publicado por Alexis (15 intervenciones) el 08/06/2016 06:11:41
No me es claro tu problema, pero por lo que entendí, necesitas que en lugar del while, devería ir preferentemente un if, ya que de todos modos va a seguir iterando tu arreglo con el for que tienes.
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
sin imagen de perfil

Ayuda en el sorteo basado en el juego "comunio"

Publicado por José (5 intervenciones) el 22/06/2016 18:06:50
En resumidas cuentas, lo que quiero es que muestre los 7 datos de tipo String sin que se repitan. He probado cambiando el while por el if y sigue igual.
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