Función para crear torneos de Todos contra todos

Posted on Thursday 14 February 2008

Ahí llego de la uni y me conecto al Gtalk. En esas que sale One pidiéndome esto:


One: Bleend
estás?

Bleend: No, fui a suicidarme, regreso en 10 minutos
One: ok

Bleend: XD
One: xD

si te aburres muuuuuuuuuuuuuuuuucho
pero muuuuuuuuuuuuuucho muuuuuuuuuuuuucho

Bleend: no creo que sea el caso..

One: necesito hacer el algoritmo que genere esto
http://es.wikipedia.org/wiki/Sistema_de_todos-contra-todos#Algoritmos_de_selecci.C3.B3n

Bleend: en C++¿

One: http://www.cristalab.com/foros/t52450.html
en lo que sea, actionscript me vale


Así que me puse manos a la obra. Programar en POO me costará mucho, pero en hacer secuencias , de eso si se bastante :P
Este fue el resultado, lo pongo porque no está en la wikipedia, pero como el código no contempla el caso de los impares no quiero ponerlo, ya que no es 100% funcional; pero tampoco quiero que caiga en saco roto.

Espero a alguien le resulte útil. (Si mas no, ya no habrá que pensar tanto para los torneos de SC :mrgreen: , recuerdo que fael, tuvo que hacer él los grupos, ya que yo no lo pillaba como funcionaba :P )

Actionscript:
  1. var N:Number = 14;//ATENCIÓN!! "N" DEBE SER PAR! (2,4,8,12,20,...)
  2. var g1:Array = new Array();
  3. var g2:Array = new Array();
  4. //crea los grupos
  5. for (var i = 0; i<((N-1)/2); i++) {
  6.     g1.push([i]);
  7.     g1[i] = i;
  8.     //
  9.     g2.push([i]);
  10.     g2[i] = N-i-1;
  11. }
  12.  
  13. for (var j = 0; j<n-1; j++) {//j son los rounds
  14.  
  15.     //anuncia los grupos
  16.     trace("Round "+j);
  17.     trace(g1);
  18.     trace(g2);
  19.  
  20.     //hace girar los grupo para el siguiente round
  21.     var temp1 = g2[0];
  22.     var temp2 = g1[(N/2)-1];
  23.     for (var k = 0; k<n/2; k++) {
  24.         if (k == (N/2)-1) {
  25.             g1[1] = temp1;
  26.             g2[(N/2)-1] = temp2;
  27.         } else {
  28.             g1[(N/2)-1-k] = g1[(N/2)-1-k-1];
  29.             g2[k] = g2[k+1];
  30.         }
  31.     }
  32.  
  33. }

Por cierto, la charla la he recortado en la parte interesante, no es que trabaje parta One y le haga los códigos :roll: Era solo un favor... ¬¬




2 Comments for 'Función para crear torneos de Todos contra todos'

  1.  
    One
    February 15, 2008 | 5:34 pm
     

    ¿Como que no trabajas para mi?
    *Fustiga a Bleend con el látigo

    xDDD

    Mil gracias amigo.

  2.  
    master_of_puppetz
    March 3, 2008 | 10:54 pm
     

    yo nesecitaba ese código hace algunas semanas XD

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.


:smile: :grin: :razz: :lol: :wink: :mrgreen: :neutral: :roll: :shock: :???: :cool: :oops: :twisted: :evil: :eek: :mad: :sad: :cry: :!: :idea: :arrow:

RSS feed for comments on this post | TrackBack URI