Seite 1 von 1

Automatisierte Spielplanerstellung

Verfasst: 27.10.2008 18:07
von Sanchez17
Hallo an alle :-)

ich habe da ein kleines Denkproblem.
Wir wollen bald unseren Benutztern ein kleines Spiel anbieten.
Wir legen vorallem auc darauf Wert, dass dieses Spiel keine große zusätzliche Belastung ist (von der Verwalung her).

Mitlerweile habe ich Lösungen gefunden, um alles automatisiert zu machen.
Ledeglich eine "Spielplan" müsste man noch manuell erstellen.
Und gerade hier müsste man am meisten Arbeiten :-?

Daher wäre es schön, wenn der Server einen Spielplan erstellen könnte. Nur fehlt mir bis jetzt einfach keine technische Lösung ein.
Vielleicht kann man mir hier ja jemand helfen.

Es gibt eine Tabelle in der Datenbank, die Mannschaften enthält sowie eine Tabelle, die die Spieltage enthält (also nur eine Spieltags-Id, Datum des Spieltages)


Nun müsste es eine Funktion/ Datei geben, die die Mannschaften "rausnimmt" und per Zufall ein Spielplan erstellt wer wann gegen wem spielt.

Hätte da jemand eine Idee wie man dies technisch Lösen könnte?

Mein Lösungsansatz:
Ein Script nimmt sich nacheinander immer ein Spieltag aus der Spieltagtabelle raus. Dann nimmt er sich per rand() zufällig immer ein Heimteam und per rand() ein Auswärtsteam.
In den nachfolgenden Spiele des gleichen Spieltags wird nach rand() dann überprüft, ob dieser Verein schon in diesem Spieltag vertreten ist oder ob diese Spielkombination (also Tam YX vs Team UI) schon gab. Wenn eines von den beiden, wählt er per rand() ein neues Team aus usw bis er den Spieltag fertig hat.

Dann folgt der nächse Spiel etc.

Achja, die Spiele werden dann in einer Spieletabelle eingetragen mit den Infos:

id|spieltag_id|team_home|team_away|

Das ist leider noch nicht getestet (geschweige programmiert).

Hat jemand vielleicht noch eine andre/ bessere Idee dies zu verwirklichen?

Grüße,
Michél

Verfasst: 27.10.2008 18:13
von gn#36
Meine Idee wäre die folgende: Es wird ein fester Spielplan für die gewünschte Anzahl an Mannschaften generiert und statt den mit wechselnden Mannschaften immer wieder neu zu generieren erstellt man den für "Zahlen" anstelle von Mannschaften, sprich anonym. Dann braucht man nur noch den Zahlen Mannschaften zuweisen und schon hat man den Spielplan (wobei man den Spielplan natürlich speichert um ihn beim nächsten mal mit anderen Teams weiter zu verwenden).

Den Spielplan selbst würde ich dann rekursiv erstellen lassen, sprich ein Skript erstellt erst mal Begegnungen (1 vs 2, 3 vs 4, 5 vs 6, 7 vs 8, ...) und schaut dann jedes mal ob jeder an einem Spieltag spielt und ob es die Begegnung schon mal gab. Wenn ja geht es durch die Rekursion wieder zurück und probiert eine andere Kombination.

Verfasst: 27.10.2008 18:31
von Sanchez17
Hey das ist ne gute Idee!

Vielen Dank.

Das werde ich dann ma die Tage verwirklichen :-)

Verfasst: 27.10.2008 20:13
von gn#36
Cool. Könntest du mir das Skript evtl. am Ende zukommen lassen? Ich hatte sowas auch schon mal irgendwann vor, aber da es wichtigere Dinge gibt kommt man da dann meist doch nicht zu.

Verfasst: 28.10.2008 23:09
von Sanchez17
Klar kann ich machen. Wegen Klausuren (Abitur) usw kann es aber noch ne Weile dauern.

Hab übrigens gestern was nützlichen gefunden:
http://www.phpbuilder.com/board/showthr ... t=10300945

Man gibt die Anzahl der Teams an und die function gibt ein Spielplan mit Zahlen zurück. Ein brauchbarer Code, den man nur für seine Bedürfnisse ändern muss.

Verfasst: 29.10.2008 02:08
von gn#36
So wie die Funktion hatte ich mir das ungefähr vorgestellt....
Tja gibt halt alles schon irgendwo.

Danke für den Link.