Foros del Web » Programación para mayores de 30 ;) » Java »

Crear un método para seleccionar Personas al azar.

Estas en el tema de Crear un método para seleccionar Personas al azar. en el foro de Java en Foros del Web. Hola a todos, estoy intentanto crear un método en java pero no me termina de salir, os explico: “Hay 5 jugadores, el orden de los ...
  #1 (permalink)  
Antiguo 12/11/2010, 11:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 72
Antigüedad: 8 años, 9 meses
Puntos: 1
Crear un método para seleccionar Personas al azar.

Hola a todos, estoy intentanto crear un método en java pero no me termina de salir, os explico:

“Hay 5 jugadores, el orden de los jugadores es importante porque determina el orden del juego. El orden en el que cada jugador puede seleccionar un personaje se muestra en el espacio de orden de turno. De izquierda a derecha en el espacio, cada jugador debe coger su ficha de jugador y colocarla en una casilla de personaje.”

Imagen del orden de turno:



¿Lo del azar con un Math.random( )?

Saludos y muchas gracias.

Última edición por batistap; 12/11/2010 a las 11:53
  #2 (permalink)  
Antiguo 12/11/2010, 16:41
 
Fecha de Ingreso: enero-2010
Mensajes: 22
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Crear un método para seleccionar Personas al azar.

Para obtener números aleatorios utiliza la clase Random, para un número hasta el 5 sería así:

Código PHP:
Random rand = new Random();
int aleatorio rand.nextInt(5); 
  #3 (permalink)  
Antiguo 13/11/2010, 02:25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 72
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Crear un método para seleccionar Personas al azar.

Cita:
Iniciado por elanguido Ver Mensaje
Para obtener números aleatorios utiliza la clase Random, para un número hasta el 5 sería así:

Código PHP:
Random rand = new Random();
int aleatorio rand.nextInt(5); 

En primer lugar gracias por tu respuesta, a parte quería decirte que como en mi caso lo que quiero es seleccionar al azar son 5 personas, debería asociar un número del 0 al 4 a cada persona, por ejemplo:
0: Pepe
1: Juan
2: María
3: Roberto
4: Carmen

¿De esta forma se podría hacer con el Random que dices?

Saludos.
  #4 (permalink)  
Antiguo 13/11/2010, 12:57
 
Fecha de Ingreso: enero-2010
Mensajes: 22
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Crear un método para seleccionar Personas al azar.

Pues una solución rápida que se me ocurre es con un array:

Código PHP:
int[] personas = new int[5];
Random rand = new Random();
for(
int i 0personas.length;){
   
boolean existe false;
   
personas[i] = rand.nextInt(5);
   for(
int j 0ij++){
      if(
personas[i] == personas[j])
          
existe true;
   }
   if(
existe) continue;
   
i++;

con este código consigues un número aleatorio diferente entre 0 y 4 para cada posición del array, ya sólo tendrías que asignarle estos numeros a cada persona.

Al ser solo son 5 jugadores puedes hacerlo así, si fueran más, por ejemplo 300 no sería una buena técnica ya que seguramente tardaría demasiado en asignarlos.

un saludo.

Última edición por elanguido; 13/11/2010 a las 13:03
  #5 (permalink)  
Antiguo 15/11/2010, 04:20
 
Fecha de Ingreso: noviembre-2010
Mensajes: 72
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Crear un método para seleccionar Personas al azar.

Cita:
Iniciado por elanguido Ver Mensaje
Pues una solución rápida que se me ocurre es con un array:

Código PHP:
int[] personas = new int[5];
Random rand = new Random();
for(
int i 0personas.length;){
   
boolean existe false;
   
personas[i] = rand.nextInt(5);
   for(
int j 0ij++){
      if(
personas[i] == personas[j])
          
existe true;
   }
   if(
existe) continue;
   
i++;

con este código consigues un número aleatorio diferente entre 0 y 4 para cada posición del array, ya sólo tendrías que asignarle estos numeros a cada persona.

Al ser solo son 5 jugadores puedes hacerlo así, si fueran más, por ejemplo 300 no sería una buena técnica ya que seguramente tardaría demasiado en asignarlos.

un saludo.
Muchas gracias por tu ayuda, el método por ahora me va quedando así:

Código PHP:
public void OrdenAzar(List<Playerjugadores){
            
int[] personas = new int[5];
            
Random rand = new Random();
            for(
int i 0personas.length;){
               
boolean existe false;
               
personas[i] = rand.nextInt(5);
               for(
int j 0ij++){
                  if(
personas[i] == personas[j])
                      
existe true;
               }
               if(
existe) continue;
               
i++;
            }  
        } 
Para asignar un número a cada jugador tendría que hacer uso de un Map<Player, Integer> ¿voy bien?

Muchas gracias por tus respuestas.


Saludos.

Etiquetas: personas, seleccionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:23.