In vereinfachter Form wird ein Spielplan so erstellt:
### 1) erstelle Array ($array_teams) mit allen teilnehmenden Teams einer Liga [...] while($row = mysql_fetch_object($qry)) { $i++; $array_teams[$i] = $row->ID_team; } ### 2) durchlaufe fortan die Schleife: for ($round = 1; $round < $num_teams; $round++) { ### Es wird 13 Mal die Schleife durchlaufen. ### Grund dafür ist die Anzahl (14) der Teams ($num_teams), ### die in einer Liga antreten. ### Jeder Schleifendurchlauf erstellt einen Spieltag. ... ### 2.1) erstelle Array ($teams_done) $teams_done = array(); ### 2.2) durchlaufe fortan die Schleife: for ($team = 1; $team < $num_teams; $team++) { ### Es werden also jedem Team, ### ausser dem Letzten (14. Team), ### eine Zählnummer gegeben. ### 2.2.1) Prüfe, ob das Team bereits abgearbeitet ist: if (!in_array($team, $teams_done)) { ### 2.2.2) Wenn Bedingung false, dann wähle Gegner: $opponent = $round - $team; $opponent += ($opponent < 0) ? $num_teams : 1; ### 2.2.3) Wenn Bedingung ### (Gegner ist nicht das momentan ausgewählte Team) true, ### gehe weiter: if ($opponent != $team) { ### 2.2.3.1a) Wenn Bedingung true ist, gehe weiter: if (($team + $opponent) % 2 == 0 xor $team < $opponent) { ### Das heißt, es muss entweder der Rest der Summe ### beider Teams durch 2 dividiert 0 ergeben oder ### (exklusives Oder!) das momentan ausgewählte Team ### einen kleineren Index als der Gegner haben. ### Ist dies der Fall, wird die nun feststehende ### Paarung in die Datenbank eingetragen. ### Heimrecht hat das ausgewählte Team ($array_teams[$team]), ### auswärts spielt der gewählte Gegner ($array_teams[$opponent]). ### Es werden die eindeutigen IDs der Vereine in die Datenbank ### geschrieben, welche in Schritt 1) in das Array ### $array_teams gespeichert wurden. } ### 2.2.3.1b) Wenn Bedingung von oben false ist, gehe weiter: else { ### Der Vorgang ist dem aus 2.2.3.1a) fast identisch. ### Es werden lediglich Heim- und Auswärtsteams getauscht. ### Somit bedeutet das: ### Heimrecht hat der gewählte Gegner ($array_teams[$opponent]), ### auswärts spielt das momentan ausgewählte Team ($array_teams[$team]). } ### 2.2.4) Schreibe abgearbeitete Teams in das Array, ### welches in Schritt 2.1) erstellt wurde: $teams_done[] = $team; $teams_done[] = $opponent; } } } ### 2.3a) Wenn Bedingung true ist, gehe weiter: if ($round % 2 == 0) { ### Das heißt, es muss der Rest der Rundenzahl ($round), ### welche in der Schleife aus Schritt 2) initialisiert wurde, ### durch 2 dividiert 0 ergeben. ### Ist dies der Fall, wird das letzte verbleibende Team (14.), ### welches in Schritt 2.2) ausgelassen wurde, ### noch einer Paarung zugeteilt: $opponent = ($round + $num_teams) / 2; ### Nun werden die Paarungen, wie bereits erläutert, ### in die Datenbank geschrieben. } ### 2.3b) Wenn Bedingung von oben false ist, gehe weiter: else { $opponent = ($round + 1) / 2; ### Nun werden die Paarungen, wie bereits erläutert, ### in die Datenbank geschrieben. ### Im Unterschied zu 2.3a) wird bei 2.3b) das Heimrecht getauscht. } }