PHP Spielplan Algorithmus?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mir ist nicht ganz klar, was der Algorithmus leisten soll:

  1. Was ist ein Spiel? Ich nehme an, dass da zwei Teams an einem bestimmten Tag gegeneinander antreten.
  2. Was ist ein Spielplan? Ich nehme an, dass darin jedes Team gegen jedes andere spielen soll.
  3. Was kann während der 7-Tage-Frist passieren? Bei „jeder gegen jeden“ müssen alle Spiele doch am selben Wochentag stattfinden. Unter der Woche pausieren alle Teams. Deshalb ignoriere ich das mal und rede nur allgemein von Spieltagen.

Wenn ein Team an jedem Spieltag auf zwei Gegner trifft, muss es eine ungerade Anzahl n von Teams geben. Bei einer geraden Teamzahl braucht man noch einen weiteren „halben“ Spieltag, an dem jedes Team nur ein Spiel hat.

Ein gültiger Spielplan sieht dann z.B. so aus:

  • Am Spieltag d∈{1, ..., (n-1)/2} spielt jedes Team t gegen td und td (⊕ und ⊖ rechnen zyklisch modulo n).
  • Bei einer geraden Teamzahl treten am letzten Spieltag noch die Teams t und t⊕(n/2) aufeinander.

Du kannst das anschaulich machen, indem Du die Teams als n-Eck und die Spiele als deren Diagonalen (einschließlich Kanten) darstellst:

  • Am Tag 1 finden alle Kanten statt.
  • Am Tag 2 werden alle Diagonalen zur übernächsten Ecke gespielt. Das ergibt einen bulligen Stern mit n Zacken. Bei geradem n bekommst Du 2 überlagerte Sterne mit je n/2 Ecken.
  • Am Tag 3 nimmst Du alle Diagonalen, die 2 Ecken überspringen. Wenn n durch 3 teilbar ist, bekommst Du 3 überlagerte Sterne mit je n/3 Ecken, sonst einen Stern mit n Ecken, die etwas spitzer sind als am Tag 2.
  • ...
  • Ist n gerade, finden am letzten Tag die Diagonalen zur gegenüberliegenden Ecke statt.

Als Pseudocode:

Für jedes Team t∈{1, ..., n}:
    Für jeden Tag 1≤d≤n/2:
        PlaneSpiel(d, t, t⊕d)

Das klingt jetzt nicht wirklich komplex und recht einfach.
Mir persönlich hilft immer mir vorher einen Plan zu machen und mir aufzuzeichnen was das Tool machen soll, welche verschiedenen Werte und Zustände es gibt und was wie wo beeinflusst wird.
Im anderen Sinne, wenn du es mal auf Papier gebracht hast, fällt es dir bestimmt leichter dich in den Stand reinzudenken und das zu programmieren.

Schreib es doch einfach selbst


Co1002 
Fragesteller
 19.05.2021, 07:44

Ich weiß ja nicht wie ich des in code bekomme😅Da ist das Problem....

0
NackterGerd  23.05.2021, 01:27
@Co1002

Du suchst nach PHP und hast keine Ahnung wie man Programmiert?

Sonderbar, und was würdest du mir irgend einen PHP code machen?

Ohne Anpassung an deine Wünsche würde das auch nicht gehen

Gebratene Enten fallen nicht vom Himmel.

0
Co1002 
Fragesteller
 23.05.2021, 02:25
@NackterGerd

Du hast mich glaube in meinem Kommi oben falsch verstanden. Ich kann programmieren, aber weiß nicht wie ich einen Spielplan (die Logik dahinter) schreiben kann. Wenn du mir nicht glaubst, kannst du auf meiner Webseite vorbeischauen: https://bel-ligen.de

0
NackterGerd  23.05.2021, 12:54
@Co1002

Wenn du PHP programmiert könntest wüsstest du dann man PHP nicht auf einer Internetseite sieht das es im Server läuft und die Seite als HTML liefert 🤣😍

Aber zu deiner Frage.

Du musst dich erst mal wissen wie dein Spielplan funktionieren soll

Auf Papier aufzeichnet

War wann gegen wehn spielt

Das Stystem ist ja nicht bei allen Spielen gleich 😉

Dann müsstest du dir überlegen wie du das Optisch darstellen möchtest

Liste

BLÖCKE

ganzes Diagramm

....

Dann müsstest du diese Teile in HTML definieren (für dynamische Daten z.b. Platzhalter)

Danach müsstest du dann nur noch deine PHP Kenntnisse dazu verwenden diese Dynamen Daten zur Lauzeit und nach jedem Spiel aktualisiert zu füllen.

Die eigentliche Spieldaten müsstest du in einer Liste pflegen

Einfach über eine CSV Text Datei die PHP einfach lesen und auswerten kann

Oder als SQL (was im Grunde auch nur eine Tabelle ist)

Ich hoffe das hilft dir bei deiner Vorübwrlegung und Umsetzung

Irgend einen Anderen PHP Spielplan an deine Bedürfnissse anzupassen (fals den überhaupt jemand kostenlos zur Verfügung stellen würde) wäre sicherlich viel komplizierter

0
Co1002 
Fragesteller
 23.05.2021, 13:11
@NackterGerd

Danke für deine Hilfe. Mal schauen ob ich so irgendwie weiterkomme.

1