Ankündigung

Einklappen
Keine Ankündigung bisher.

Spielplan (Ligaschlüssel) generieren - Ich bin ideenlos

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Spielplan (Ligaschlüssel) generieren - Ich bin ideenlos

    Hallo zusammen,

    ich "programmiere" nur in meiner Freizeit und stehe hier ein wenig auf dem Schlauch.
    Bei meinem Herzensprojekt komme ich gerade nicht so recht weiter.

    Ich möchte für eine Sportliga einen Spielplan automatisiert erstellen lassen.
    Bedeutet wie folgt:

    PHP-Code:
    Summe X an Teams
    Spieltag 1
    Team 1 vs Team 2
    Team 3 vs Team 4
    Team 5 vs Team 6 etc
    ...

    Spieltag 2
    Team 1 vs Team 3
    Team 5 vs Team 2
    Team 4 vs Team 6 etc
    ... 
    Am Ende soll es also X Spieltage geben, wo jedes Team gegen jedes andere Team 1x gematched wird.

    Sicherlich bekomme ich das in einer Schleife mit einer gefühlt Trilliarden verschachtelten If-Clauses hin. Aber ich würde es gern möglichst sauber (fürn Freizeitheini) programmieren.
    Ebenso ist es mir halt wichtig, es komplett dynamisch zu halten. Jetzt stelle ich mir einfach die Frage, was ich übersehe? Ich habe arg im Gefühl, dass es theoretisch tierisch einfach sein muss. Aber ich komme nicht drauf wie. Mein Kopf macht da einfach dicht.

    Hat jemand von euch vielleicht eine Gedankenstütze und könnte mir Ansätze vorstellen, wie es zu realisieren wäre?

    Besten Dank & Liebe Grüße

  • #2
    wieso gefühlte gtrillierden if clauses ---
    schreib doch mal ne schleife für einen spietag
    und pack die in eine für alle spieltage

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen
      wieso gefühlte gtrillierden if clauses ---
      schreib doch mal ne schleife für einen spietag
      und pack die in eine für alle spieltage
      Und dann?

      PHP-Code:
      $matches = array();
      $match_id 1;
      $teams = array(): # ist schon aus der DB gefüllt - KEY 1-18 (für 18 Teams in meinem Beispiel) VALUE Teamname
      for($spieltagnr=1$spieltagnr<=$anzahl_spieltage$spieltagnr++){
          foreach(
      $teams as $key => $value){
                 
      $matches[$spieltagnr][$match_id]['first_team'] = $teams[$key];                   ## Das ist meiner Meinung nach völlig falscher Ansatz
                 
      $matches[$spieltagnr][$match_id]['second_team'] = $teams[$key+1];         ## hier, aber 18x das gleiche quasi schreiben finde ich verkehrt
          
      }

      ## oder so in die Richtung etwas
          
      for($i=1$i<$anzahl_teams$i++){
               
      $matches[$spieltagnr][$match_id]['first_team'] = $teams[$i];
               
      $i++;
               
      $matches[$spieltagnr][$match_id]['second_team'] = $teams[$i];
          }
      #### Und hier habe ich nun das Problem, das ich nicht weiß wie es nach einem kompletten Durchlauf weitergehen soll. Es müssen ja alle Teams jeweils 1x gegeneinander spielen. Und deswegen habe ich hier einfach voll den Blackout..

      Deswegen, ich bitte hier nicht darum mir das zu coden oder sonstiges.
      Ich bräuchte leider einfach nur einen Rat wie ich das umsetzen kann.

      Per Zufallszahl die Paarungen zusammenzusetzen erscheint mir auch nicht richtig.
      Dann müsste ich ja ständig dieses Zufallsmatch noch überprüfen, ob es nicht schon an einem anderen Spieltag oder so stattgefunden hat.

      Ich hoffe ihr versteht was ich meine...

      Vielen Dank für euer Bemühen und eure Zeit

      Kommentar


      • #4
        Für das Problem haben sich schlaue Leute ja bereits Algorithmen ausgedacht, die du nur noch nach programmieren musst.

        Beim sogenannten Rutschsystem (englisch circle method) werden die Teilnehmer durchnummeriert und in zwei Reihen angeordnet. In jeder Runde treffen die Teilnehmer der oberen Reihe auf die entsprechenden Teilnehmer der unteren Reihe. Die Teilnehmer wechseln von Runde zu Runde jeweils um einen Platz im Uhrzeigersinn. Der Teilnehmer 1 behält während des gesamten Turniers seinen Platz am Anfang der ersten Reihe und wird beim Wechseln der Plätze übersprungen. Am anderen Ende der Reihe wird der nächste Platz im Uhrzeigersinn eingenommen, also an die gegenüber liegende Seite gewechselt.
        https://de.m.wikipedia.org/wiki/Jede...0Uhrzeigersinn.

        Das könntest du zb mit 2 Arrays oder einem Array wo du jeweils key und values vertauscht umsetzen.

        Kommentar


        • #5
          Danke Zeichen32

          Auf Wikipedia nach einer Lösung dafür zu suchen wäre ich beim besten Willen nicht gekommen.
          ​​​​​​Das hilft mir ungemein weiter. Vielen lieben Dank für die Hilfe!

          Werde die Tage es Mal probieren damit erstellt zu bekommen.

          Kommentar

          Lädt...
          X