Tema: Sorteo
Ver Mensaje Individual
  #1  
Antiguo 17-08-2014
Valee Valee is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 19
Reputación: 0
Valee Va por buen camino
Sorteo

Hola chi@s.. Bueno, les comento.. Estoy haciendo el fixture del mundial (obviamente tiene que ser valido para cualquier mundial!).. Voy por la parte del sorteo..
Para explicarles un poco como lo pense les cuento que hay dos librerias diferentes:
*LibreriaEnlace
*LibreriaCola
Con la LibreriaEnlace realizo todo lo que es la carga de los paises que van a participar en el mundial (es la primer instancia del programa). Entre todas las cosas que tiene el registro contenido en la libreria, tiene un campo llamado "PuestoAnterior" en el cual se almacena la posicion en que el pais salio en el ultimo lugar.. Esto me sirve para despues a la hora de hacer el sorteo de los grupos no se crucen entre ellos y para que, hasta el puesto 8, se coloque uno en cada grupo. Ejemplo:
PuestoAnterior: 8 Entonces China va a quedar en el Grupo H
Pais: China
Aca es donde tengo el problema. La primer parte (del ejemplo que acabo de dar) ya lo hice, pero me falta repartir los 24 paises restantes en los grupos, y nose muy bien como usar el random.. Se que hay que usar el randomize para que varie la secuencia, pero realmente nose como realizar el sorteo.. Les dejo parte del procedimiento que tengo hecho para que se les haya mas facil explicarme.

Código Delphi [-]
procedure TForm5.Button1Click(Sender: TObject);
var
  pos: TipoPosicion;          Eq1:TipoRegEquipo1; Eq2:TipoRegEquipo2;
  RD: TipoRegDatos;           Eq3:TipoRegEquipo3;Eq4:TipoRegEquipo4;
  RC: TipoRegControl;         Eq5:TipoRegEquipo5;Eq6:TipoRegEquipo6;
  RDC: TipoRegColaD;          Eq7:TipoRegEquipo7;Eq8:TipoRegEquipo8;
  RCC: TipoRegColaC;          Control: Cadena;Puesto: TipoPuesto;
  Dato: Cadena;
begin
CrearMeEquipo1(Equipo1);
CrearMeEquipo2(Equipo2);
CrearMeEquipo3(Equipo3);
CrearMeEquipo4(Equipo4);
CrearMeEquipo5(Equipo5);
CrearMeEquipo6(Equipo6);
CrearMeEquipo7(Equipo7);
CrearMeEquipo8(Equipo8);
AbrirMe (Me);
//Primero ordeno los primeros 8 puestos distribuyendolo en los grupos
//El puesto nro 1 va en el grupo A, el 2 en el grupo B......
for Puesto:= 1 to _Ultimo do
  begin
    case Puesto of //El puesto, una vez que sale del for, se va modificando de acuerdo al
      1: begin     //sorteo
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq1.Pais:= RD.Pais;
            Eq1.Clave:= RD.Clave;
            Eq1.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo1(Equipo1,Eq1);
            Dato:= 'Grupo_A.Dat';
            Control:= 'Grupo_A.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      2: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq2.Pais:= RD.Pais;
            Eq2.Clave:= RD.Clave;
            Eq2.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo2(Equipo2,Eq2);
            Dato:= 'Grupo_B.Dat';
            Control:= 'Grupo_B.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      3: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq3.Pais:= RD.Pais;
            Eq3.Clave:= RD.Clave;
            Eq3.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo3(Equipo3,Eq3);
            Dato:= 'Grupo_C.Dat';
            Control:= 'Grupo_C.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      4: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq4.Pais:= RD.Pais;
            Eq4.Clave:= RD.Clave;
            Eq4.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo4(Equipo4,Eq4);
            Dato:= 'Grupo_D.Dat';
            Control:= 'Grupo_D.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      5: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq5.Pais:= RD.Pais;
            Eq5.Clave:= RD.Clave;
            Eq5.Pos:=Puesto;
            RC.Sortiado:= true;  
            InsertarInfo5(Equipo5,Eq5);
            Dato:= 'Grupo_E.Dat';
            Control:= 'Grupo_E.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      6: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq6.Pais:= RD.Pais;
            Eq6.Clave:= RD.Clave;
            Eq6.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo6(Equipo6,Eq6);
            Dato:= 'Grupo_F.Dat';
            Control:= 'Grupo_F.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      7: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq7.Pais:= RD.Pais;
            Eq7.Clave:= RD.Clave;
            Eq7.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo7(Equipo7,Eq7);
            Dato:= 'Grupo_G.Dat';
            Control:= 'Grupo_G.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
      8: begin
          BuscarPuesto (Me,Puesto,pos);
          seek (Me.C,pos);
          read (Me.C,RC);
          if RC.Sortiado=false
          then
           begin
            seek (Me.D,pos);
            read (Me.D,RD);
            Eq8.Pais:= RD.Pais;
            Eq8.Clave:= RD.Clave;
            Eq8.Pos:=Puesto;
            RC.Sortiado:= true;
            InsertarInfo8(Equipo8,Eq8);
            Dato:= 'Grupo_H.Dat';
            Control:= 'Grupo_H.Con';
            CrearCola(Cola,Dato,Control);
           end;
         end;
    end;
  end;
//Sortear el resto de los paises
end;

Desde ya MUCHAS GRACIAS por su tiempo..
Saludos =)
Responder Con Cita