Método para crear mapas (Map m)
Hola, estoy creando un método que ordene al azar de 3 a 5 jugadores. Si hay 3 jugadores hay que crear un mapa para asignarle a cada jugador un número del 0 al 2. El mapa sería así Map<Player,Integer>. Si hay 4 jugadores pues crear cuatro mapas para asignarle a cada jugador un número del 0 al 3 y con 5 jugadores exactamente igual.
Estoy usando el lenguaje de programación Java.
Pongo aquí el código que tengo echo:
public void OrdenAzar(List<Player> jugadores){
if(jugadores.size()==3){
creaMapa();
}else if(jugadores.size()==4){
creaMapa();
}else{
creaMapa();
}
int[] players = new int[jugadores.size()]; //Acoto los números del azar con el tamaño de la lista jugadores
Random rand = new Random(); // Es la clase encargada de generar los números al azar
for(int i = 0; i < players.length;){ // Recorro el array players
boolean existe = false; // Si al jugador no se le ha asignado un número al azar sigo:
players = rand.nextInt(jugadores.size()); //Asigno al jugador un número del 0 al 4
for(int j = 0; j < i; j++){ // Compruebo jugadores que ya tienen asignado número
if(players == players[j])
existe = true; //Ya existe jugador con número asignado
}
if(existe) continue;// Si ya tiene asignado número seguimos con el siguiente jugador.
i++;
}
}
---------------------------------------------------------------------------------
Lo del azar ya está programado, lo único que me hace falta es hacer el método creaMapa( ), no sé exactamente que recibiría ni qué devolvería y cómo se podría hacer.
Es lo único que me hace falta, ¿cómo se haría en java?.
Saludos.
Estoy usando el lenguaje de programación Java.
Pongo aquí el código que tengo echo:
public void OrdenAzar(List<Player> jugadores){
if(jugadores.size()==3){
creaMapa();
}else if(jugadores.size()==4){
creaMapa();
}else{
creaMapa();
}
int[] players = new int[jugadores.size()]; //Acoto los números del azar con el tamaño de la lista jugadores
Random rand = new Random(); // Es la clase encargada de generar los números al azar
for(int i = 0; i < players.length;){ // Recorro el array players
boolean existe = false; // Si al jugador no se le ha asignado un número al azar sigo:
players = rand.nextInt(jugadores.size()); //Asigno al jugador un número del 0 al 4
for(int j = 0; j < i; j++){ // Compruebo jugadores que ya tienen asignado número
if(players == players[j])
existe = true; //Ya existe jugador con número asignado
}
if(existe) continue;// Si ya tiene asignado número seguimos con el siguiente jugador.
i++;
}
}
---------------------------------------------------------------------------------
Lo del azar ya está programado, lo único que me hace falta es hacer el método creaMapa( ), no sé exactamente que recibiría ni qué devolvería y cómo se podría hacer.
Es lo único que me hace falta, ¿cómo se haría en java?.
Saludos.
1 Respuesta
Respuesta de Pastor Romero
-1