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);
for Puesto:= 1 to _Ultimo do
begin
case Puesto of 1: 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);
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;
end;
Desde ya MUCHAS GRACIAS por su tiempo..
Saludos =)