Ich bin dabei einen eigenen kleinen Fussball-Manager zu erzeugen und bin beim Erzeugen eines Spielplans auf Probleme gestoßen. Bisher bin ich so weit:
Delphi-Quellcode:
for k:=1 to 6 do
begin
case k of
1,3,5: begin
partie[k].id:=k;
x:=random(4)+1;
partie[k].heim:=teams[x];
y:=random(4)+1;
partie[k].auswaerts:=teams[y];
if (x=y) or (y=partie[k-2].auswaerts.id) or (y=partie[k-2].heim.id)
then
begin
repeat
y:=random(4)+1;
until (x<>y) and (y<>partie[k-1].heim.id) and (y<>partie[k-1].auswaerts.id);
end;
partie[k].auswaerts:=teams[y];
end;
2,4,6: begin
partie[k].id:=k;
repeat
x:=random(4)+1;
until (x<>partie[k-1].heim.id) and (x<>partie[k-1].auswaerts.id);
partie[k].heim:=teams[x];
repeat
y:=random(4)+1;
until (y<>x) and (y<>partie[k-1].heim.id) and (y<>partie[k-1].auswaerts.id);
partie[k].auswaerts:=teams[y];
end;
end;
Im Moment kommt es vor, dass einige Partien doppelt vorkommen, da ich bei weitem nicht alle Bedingungen drinne habe. Hat jemand eine Idee wie man das ganze vereinfachen könnte (auch für eine größere Zahl von Spielen) oder bleibt mir nichts anderes überig als alle Bedingungen für jeden einzelnen Spieltag einzufügen?