habe mich lange mit diesem Problem beschäftigt und auch mehrere Kollegen konsultiert, doch nichts Gescheites kam dabei raus.
Ich habe einen Fussballmanager und bei diesem werden Spielpläne erstellt. Die Spiele sind nicht regelmäßig daheim/auswärts. Mal hat ein Team eine Serie von 6 Spielen auswärts, mal 5 daheim.
Habe da nicht mal eine systematische Ideen zur Generation dieser Spieltage. Hoffe mir kann einer helfen!
Hier mein Script ( ganz ehrlich: verstehe den nicht mal wirklich, hab in einem Forum gefunden ) :
function createSpielplan($manschaften) {
$spieltage = (($manschaften % 2) == 0) ? ($manschaften - 1) : $manschaften;
$i = $j = $a = $b = $tag = 0;
for ($i = 1; $i <= $spieltage; $i++) {
$tag++; $a=1; $b=$i;
for ($j = 1; $j <=$spieltage; $j++) {
if ($a < $b) {
$spieltag[$a][$b] = $tag;
}
$a++;$b--;
if ($b < 1) {
$b = $spieltage;
}
}
}
if ($spieltage < $manschaften) {
for ($i = 1;$i < $manschaften;$i++) {
$spieltag[$i][$j] = ($i==1?1:$spieltag[$i-1][$i]+1);
}
}
for ($i=1;$i<=$manschaften;$i++) {
for ($j=1;$j<$i;$j++) {
$spieltag[$i][$j]=$spieltag[$j][$i]+$spieltage;
}
}
foreach ($spieltag as $i=>$array) {
foreach ($array as $j=>$spieltag) {
$spielplan[$spieltag][] = array($i,$j);
}
}
ksort($spielplan);
return $spielplan;
}
Gruß
dmx