Cristalab

Creación de calendario de competición deportiva (tipo liga)

Citar            
MensajePublicado: Mie Feb 13, 2008 10:21 pm

Hola, me piden que haga un script para generar todo un calendario de una competición por equipos.

Tipo liga de futbol
Jornada 1 equipoA-Equipo B EquipoC-Equipo D...
Jornada 2 EquipoA-EquipoC EquipoB-EquipoD...
Jornada 3 Equpo A-EquipoD EquipoB-EquipoC...

Los equipos son variables según los grupos así que puede que en un grupo haya 20 equipos y en otro 40.

¿saben de algún script en php/asp/javascript/actionscript (me da igual el lenguaje) que realice esta funcion?

Muchas gracias

One


clabLevel: 1103
Valencia - España

1 Tutorial
3 Tips

firefox
      MP     Web
Citar            
MensajePublicado: Jue Feb 14, 2008 8:22 pm

N es el numero de jugadores.

Código :

var N:Number = 14; //ATENCIÓN!! "N" DEBE SER PAR! (2,4,8,12,20,...)
var g1:Array = new Array();
var g2:Array = new Array();
//crea los grupos
for (var i = 0; i<((N-1)/2); i++) {
   g1.push([i]);
   g1[i] = i;
   //
   g2.push([i]);
   g2[i] = N-i-1;
}
//hace girar los grupo para el siguiente round
for (var j = 0; j<N-1; j++) {//j son los rounds

   //anuncia los grupos
   trace("Round "+j);
   trace(g1);
   trace(g2);

   var temp1 = g2[0];
   var temp2 = g1[(N/2)-1];
   for (var k = 0; k<N/2; k++) {
      if (k == (N/2)-1) {
         g1[1] = temp1;
         g2[(N/2)-1] = temp2;
      } else {
         g1[(N/2)-1-k] = g1[(N/2)-1-k-1];
         g2[k] = g2[k+1];
      }
   }

}


Esto te da este Output:
Round 0
0,1,2,3,4,5,6
13,12,11,10,9,8,7
Round 1
0,13,1,2,3,4,5
12,11,10,9,8,7,6
Round 2
0,12,13,1,2,3,4
11,10,9,8,7,6,5
Round 3
0,11,12,13,1,2,3
10,9,8,7,6,5,4
Round 4
0,10,11,12,13,1,2
9,8,7,6,5,4,3
Round 5
0,9,10,11,12,13,1
8,7,6,5,4,3,2
Round 6
0,8,9,10,11,12,13
7,6,5,4,3,2,1
Round 7
0,7,8,9,10,11,12
6,5,4,3,2,1,13
Round 8
0,6,7,8,9,10,11
5,4,3,2,1,13,12
Round 9
0,5,6,7,8,9,10
4,3,2,1,13,12,11
Round 10
0,4,5,6,7,8,9
3,2,1,13,12,11,10
Round 11
0,3,4,5,6,7,8
2,1,13,12,11,10,9
Round 12
0,2,3,4,5,6,7
1,13,12,11,10,9,8

Los "combates" deben ser; por ejemlo, en el ultimo round:
0 contra 1, 2 contra 13, 3 contra 12, etc.

Por cierto, ¿lo pongo en la wikipedia? Veo que no está Confundido

Bleend

Héroes
clabLevel: 2243
Barcelona

1 Tutorial
5 Tips

firefox
Google Talk   MSN Messenger     MP   Email   Web

   Página 1 de 1

Responder al tema
Respuesta Rapida


 

 

Cristalab BabyBlue + BloodBerry © 2007 Cristalab
Powered by phpBB © 2001, 2007 phpBB Group