Cita:
Empezado por Valee
...
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..
...
|
Hola Valee.
A fin de simplificar te pongo un ejemplo que prescinde del uso de archivos :
Código Delphi
[-]
...
implementation
type
TEquipos = record
Nomb: string;
Posi: Integer;
Check: Boolean;
end;
var
Equi: array[0..31] of TEquipos;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Equi[0].Nomb := 'Alemania' ; Equi[0].Posi:= 1; Equi[0].Check:= False;
Equi[1].Nomb := 'Argentina' ; Equi[1].Posi:= 2; Equi[1].Check:= False;
Equi[2].Nomb := 'Holanda' ; Equi[2].Posi:= 3; Equi[2].Check:= False;
Equi[3].Nomb := 'Brasil' ; Equi[3].Posi:= 4; Equi[3].Check:= False;
Equi[4].Nomb := 'Colombia' ; Equi[4].Posi:= 5; Equi[4].Check:= False;
Equi[5].Nomb := 'Bélgica' ; Equi[5].Posi:= 6; Equi[5].Check:= False;
Equi[6].Nomb := 'Francia' ; Equi[6].Posi:= 7; Equi[6].Check:= False;
Equi[7].Nomb := 'Costa Rica' ; Equi[7].Posi:= 8; Equi[7].Check:= False;
Equi[8].Nomb := 'Chile' ; Equi[8].Posi:= 9; Equi[8].Check:= False;
Equi[9].Nomb := 'México' ; Equi[9].Posi:= 10; Equi[9].Check:= False;
Equi[10].Nomb:= 'Suiza' ; Equi[10].Posi:= 11; Equi[10].Check:= False;
Equi[11].Nomb:= 'Uruguay' ; Equi[11].Posi:= 12; Equi[11].Check:= False;
Equi[12].Nomb:= 'Grecia' ; Equi[12].Posi:= 13; Equi[12].Check:= False;
Equi[13].Nomb:= 'Argelia' ; Equi[13].Posi:= 14; Equi[13].Check:= False;
Equi[14].Nomb:= 'EEUU' ; Equi[14].Posi:= 15; Equi[14].Check:= False;
Equi[15].Nomb:= 'Nigeria' ; Equi[15].Posi:= 16; Equi[15].Check:= False;
Equi[16].Nomb:= 'Ecuador' ; Equi[16].Posi:= 17; Equi[16].Check:= False;
Equi[17].Nomb:= 'Portugal' ; Equi[17].Posi:= 18; Equi[17].Check:= False;
Equi[18].Nomb:= 'Croacia' ; Equi[18].Posi:= 19; Equi[18].Check:= False;
Equi[19].Nomb:= 'Bosnia' ; Equi[19].Posi:= 20; Equi[19].Check:= False;
Equi[20].Nomb:= 'C. Marfíl' ; Equi[20].Posi:= 21; Equi[20].Check:= False;
Equi[21].Nomb:= 'Italia' ; Equi[21].Posi:= 22; Equi[21].Check:= False;
Equi[22].Nomb:= 'España' ; Equi[22].Posi:= 23; Equi[22].Check:= False;
Equi[23].Nomb:= 'Rusia' ; Equi[23].Posi:= 24; Equi[23].Check:= False;
Equi[24].Nomb:= 'Ghana' ; Equi[24].Posi:= 25; Equi[24].Check:= False;
Equi[25].Nomb:= 'Inglaterra' ; Equi[25].Posi:= 26; Equi[25].Check:= False;
Equi[26].Nomb:= 'Corea del Sur'; Equi[26].Posi:= 27; Equi[26].Check:= False;
Equi[27].Nomb:= 'Irán' ; Equi[27].Posi:= 28; Equi[27].Check:= False;
Equi[28].Nomb:= 'Japón' ; Equi[28].Posi:= 29; Equi[28].Check:= False;
Equi[29].Nomb:= 'Australia' ; Equi[29].Posi:= 30; Equi[29].Check:= False;
Equi[30].Nomb:= 'Honduras' ; Equi[30].Posi:= 31; Equi[30].Check:= False;
Equi[31].Nomb:= 'Camerún' ; Equi[31].Posi:= 32; Equi[31].Check:= False;
with StringGrid1 do
begin
ColCount:= 8;
RowCount:= 5;
for i:= 0 to 7 do
begin
Cells[i, 0]:= 'GRUPO '+Chr(Ord('A')+i); Cells[i, 1]:= Equi[i].Nomb; Equi[i].Check:= True;
end;
end;
Randomize;
end;
procedure TForm1.btnGenerarClick(Sender: TObject);
var
c, f, e, Done: Integer;
begin
for e:= 8 to 31 do Equi[e].Check:= False;
Done:= 0;
for f:= 0 to 2 do
begin
for c:= 0 to 7 do
begin
repeat
e:= 31-Random(24);
until not Equi[e].Check or (Done = 24);
Equi[e].Check:= True;
Inc(Done);
StringGrid1.Cells[c, 2+f]:= Equi[e].Nomb; end;
end;
end;
...
Salida:
Saludos