Du bist hier: Startseite  Themen  Spielplan generieren

PHP: Spielplan generieren

Dokument-Version: 30. Juli 2008
Autor: Andy Theiler andy.theiler@x3m.ch

Download

Es stehen 2 verschiedene Realisierungen zur Verfügung:

Als abstrakte Klasse PHP5 (Version 1.0.01): x3m_schedule_class.zip
oder als Funktion ab PHP4 (Version 1.0.01): x3m_schedule_fnc.zip

Anforderung

Einen Spielplan (zB. Spielpaarungen für eine Fussballliga mit Hin- und Rückrunde) generieren.

Spielplan Demo

Eigentlich eine einfache Anforderung. Hab' ich auch gemeint! Trotz stundenlangen Analysen und diversen Skizzen ist es mir nicht gelungen, ein allgemein gültiges Muster zu erkennen. Zu meiner Entlastung sei zu bemerken, dass ich kein Mathematiker bin.

Um so fröhlicher war ich, als ich beim "googlen" auf die Webseite: Algorithmus der Woche gestossen bin. Dank dem Kantenfärbungs Algorithmus von Juniorprof. Dr. Sigrid Knust konnte ich mein Vorhaben doch noch realisieren.

Beschreibung der PHP5 Realisierung

Der Aufruf der statischen Methode create() erstellt gemäss Parameter (Anzahl Teams, mit oder ohne Rückrunde...etc.) den gewünschten Spielplan.

Spielplan erstellen

PARAMETER BESCHREIBUNG
$intTeams Anzahl Teams (Spieler)
$intStartDate Datum der 1. Paarung
$intDayOffset Tage zwischen den Spielpaarungen
$blnSecondRound true (default) = mit Rückrunde
false = Paarungen nur für die Vorrunde



Der erstellte Spielplan wird als Array() geliefert mit folgender Struktur:

Spielplan Array (
   [1] => Spieltag 1 (
          [0] => Paarung 1 (
                 [h] => 1  = Heimmannschaft 1
                 [a] => 4  = Auswärtsmannschaft 4
          )
          [1] => Paarung 2 (
                 [h] => 2  = Heimmannschaft 2
                 [a] => 3  = Auswärtsmannschaft 3
          )
          [datum] => 20070611  = Datum Spieltag
   )
   [2] => Spieltag 2 (
          [0] => Paarung 1 (
                 :
          )
          [1] => Paarung 2 (
                 :
          )
          [datum] => 20070618  = Datum Spieltag
   )  
   :
) 

Beispiel

Spielplan für 4 Mannschaften generieren (mit Rückrunde): Dieses Beispiel gibt folgende HTML-Seite aus:
Spielplan Testoutput