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

programa para hacer 2 equipos aleatorios

Estas en el tema de programa para hacer 2 equipos aleatorios en el foro de Java en Foros del Web. Buenas, he intentado hacer un programa para que me haga 2 equipos aleatorios de 5 jugadores. Pero es muy mejorable, mi duda es como pueda ...
  #1 (permalink)  
Antiguo 31/03/2012, 14:44
 
Fecha de Ingreso: noviembre-2011
Ubicación: Palma de Mallorca
Mensajes: 33
Antigüedad: 13 años
Puntos: 2
programa para hacer 2 equipos aleatorios

Buenas, he intentado hacer un programa para que me haga 2 equipos aleatorios de 5 jugadores. Pero es muy mejorable, mi duda es como pueda hacer para obtener los jugadores que no se han seleccionado porque uno de los 2 equipos ya tiene 5 jugadores.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package equiposaleatorios;

public class EquiposAleatorios {


public static void main(String[] args) {
// TODO code application logic here
String jugadores[] = new String[10];
int aleatorio[] = new int[10];

jugadores[0] = "Juan";
jugadores[1] = "Pepe";
jugadores[2] = "Jesús";
jugadores[3] = "Jorge";
jugadores[4] = "David";
jugadores[5] = "Enrique";
jugadores[6] = "Andreu";
jugadores[7] = "Gabri";
jugadores[8] = "Jose";
jugadores[9] = "Nando";

int contadorequipo1 = 0;
int contadorequipo2 = 0;

aleatorio[0]= (int) (Math.random()*2+1);
aleatorio[1]= (int) (Math.random()*2+1);
aleatorio[2]= (int) (Math.random()*2+1);
aleatorio[3]= (int) (Math.random()*2+1);
aleatorio[4]= (int) (Math.random()*2+1);
aleatorio[5]= (int) (Math.random()*2+1);
aleatorio[6]= (int) (Math.random()*2+1);
aleatorio[7]= (int) (Math.random()*2+1);
aleatorio[8]= (int) (Math.random()*2+1);
aleatorio[9]= (int) (Math.random()*2+1);

int numeroAleatorio1 = (int) (Math.random()*2+1);



for(int i=0; i<10; i++){
System.out.println(jugadores[i] + " juega en el equipo " + aleatorio[i]);

if(aleatorio[i]==1){
contadorequipo1++;

}
else{
contadorequipo2++;
}
if(contadorequipo1>=5){
Aquí me dijera los jugadores del array que no se han utilizado y ponerle automaticamente en el equipo 2
break;
}
if(contadorequipo2>=5){
Aquí me dijera los jugadores del array que no se han utilizado y ponerle automaticamente en el equipo 1
break;
}
}


}
}

Saludos.
  #2 (permalink)  
Antiguo 16/06/2012, 19:16
 
Fecha de Ingreso: junio-2012
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: programa para hacer 2 equipos aleatorios

Hace algunos dias uno de nuestros estudiantes vine con una pregunta muy similar, pero en un juego de cartas. y La respuesta que le dimos fue la siguiente, como le haces tu como persona, si en lugar de ser 10 jugadores fueran 100?
y nos contesto que pondria en una hoja de papel todos los nombre e iria borrando los que ya han sido seleccionados.
Asi que asi fue como lo soluciono, creando un tercer array que clone la informacion y un for loop que valla borrando o transformando en 0 los usuarios que ya han sido seleccionados.
Suerte.
  #3 (permalink)  
Antiguo 11/12/2014, 08:27
 
Fecha de Ingreso: junio-2013
Ubicación: Mendoza
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: programa para hacer 2 equipos aleatorios

Modifiqué el código un poco para que tome del argumento los nombres de los jugadores. Se le puede también agregar un argumento para la cantidad de jugadores por equipo, pero para esto, hay que hacer otras modificacions
Código Java:
Ver original
  1. public class RandomEquipos {
  2.  
  3.     public static void main(String[] args) {
  4.         String jugadores[] = new String[10];
  5.         String equipoA[] = new String[5];
  6.         String equipoB[] = new String[5];
  7.         System.out.println("Jugadores: ");
  8.  
  9.         for (String a : args) {
  10.             System.out.print(a + ", ");
  11.         }
  12.         System.out.println();
  13.  
  14.         jugadores[0] = args.length >= 1 ? args[0] : "Jug 1";
  15.         jugadores[1] = args.length >= 2 ? args[1] : "Jug 2";
  16.         jugadores[2] = args.length >= 3 ? args[2] : "Jug 3";
  17.         jugadores[3] = args.length >= 4 ? args[3] : "Jug 4";
  18.         jugadores[4] = args.length >= 5 ? args[4] : "Jug 5";
  19.         jugadores[5] = args.length >= 6 ? args[5] : "Jug 6";
  20.         jugadores[6] = args.length >= 7 ? args[6] : "Jug 7";
  21.         jugadores[7] = args.length >= 8 ? args[7] : "Jug 8";
  22.         jugadores[8] = args.length >= 9 ? args[8] : "Jug 9";
  23.         jugadores[9] = args.length >= 10 ? args[9] : "Jug 10";
  24.  
  25.         int cantA = 0;
  26.         int cantB = 0;
  27.  
  28.         for (int i = 0; i < 10; i++) {
  29.             int equipo = (int) (Math.random() * 2 + 1);
  30.  
  31.             if (equipo == 1 && cantA < 4) {         //random = 1 --> Equipo A
  32.                 equipoA[cantA] = jugadores[i];
  33.                 cantA++;
  34.             } else {
  35.                 if (cantB < 5) {                    //random = 2 --> Equipo B
  36.                     equipoB[cantB] = jugadores[i];
  37.                     cantB++;
  38.                 } else {                            //Si equipo B esta completo --> Equipo A
  39.                     equipoA[cantA] = jugadores[i];
  40.                     cantA++;
  41.                 }
  42.             }
  43.  
  44.         }
  45.  
  46.         System.out.println("Equipo A:");
  47.         for (String a : equipoA) {
  48.             System.out.println("\t" + a);
  49.         }
  50.  
  51.         System.out.println("\nEquipo B:");
  52.         for (String a : equipoB) {
  53.             System.out.println("\t" + a);
  54.         }
  55.  
  56.     }
  57. }
  #4 (permalink)  
Antiguo 12/12/2014, 01:51
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: programa para hacer 2 equipos aleatorios

Te dejo aquí un código que considero más apropiado.

Código Java:
Ver original
  1. public class EquiposAleatorios {
  2.  
  3.  
  4. public static void main(String[] args) {
  5. // TODO code application logic here
  6. String jugadores[] = new String[10];
  7. int aleatorio[] = new int[10];
  8.  
  9. jugadores[0] = "Juan";
  10. jugadores[1] = "Pepe";
  11. jugadores[2] = "Jesús";
  12. jugadores[3] = "Jorge";
  13. jugadores[4] = "David";
  14. jugadores[5] = "Enrique";
  15. jugadores[6] = "Andreu";
  16. jugadores[7] = "Gabri";
  17. jugadores[8] = "Jose";
  18. jugadores[9] = "Nando";
  19.  
  20. int[] contadorequipo=new int[2];
  21. for(int i=0;i<10;i++)
  22. {
  23.    //Seleccionamos el equipo al que ira
  24.    int equiposel=(int) ((Math.random()*2+1)-1);
  25.    
  26.    //Si el equipo ya esta lleno, ira al otro
  27.    if(contadorequipo[equiposel]==5)
  28.            equiposel=(equiposel+1)%2;
  29.    //Añadimos el jugador al equipo y incrementamos el contador
  30.    contadorequipo[equiposel]++;
  31.    aleatorio[i]=equiposel;
  32. }
  33.  
  34. for(int i=0; i<10; i++){
  35. System.out.println(jugadores[i] + " juega en el equipo " + aleatorio[i]);
  36.  
  37. }
  38. }
  39. }

Si no te gusta que sean los equipos 0 y 1 le sumas 1 al equipo en el System.out:

System.out.println(jugadores[i] + " juega en el equipo " + (aleatorio[i]+1));

Saludos,

Etiquetas: equipos, programa, string, aleatoria
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:39.