Round Robin Spielplan erstellen

Round Robin Spielplan erstellen | PSD-Tutorials.de

Erstellt von ackermaennchen, 02.03.2021.

  1. ackermaennchen

    ackermaennchen Normalo Teammitglied

    20349
    Dabei seit:
    30.03.2005
    Beiträge:
    5.412
    Geschlecht:
    männlich
    Ort:
    Lofer (Austria)
    Software:
    Photoshop Cc15/Lightroom CC/ Dreamweaver
    Kameratyp:
    Nikon D610
    Round Robin Spielplan erstellen
    Hi Leute, ich brauch mal wieder euer Schwarmwissen. Es geht darum für eine Liga ein Spielplan zu erstellen, das ganze im Round Robin, sprich jeder einmal gegen jeden. Soweit funktioniert das auch (Außer das er mir bei einem Spieltag eine Partie Doppelt angezeigt hat.) Nur erstellt er mir nur 1 Runde, ich bräuchte allerdings den Code so, das es auch nach Beendigung eine Rückrunde gibt. Gleiche Reihenfolge der Paarung nur eben umgedreht statt Spieler1:Spieler2 sollte dann Spiler2 gegen Spieler1 spielen. So sieht das ganze dann in der Ausgabe bisher aus : http://andy.ackermaennchen.at/index.php?page=kalender2

    Ich habe das nicht selber geschrieben, das war ein Freund von mir, leider redet er im Moment nicht mehr mit mir weil ich mit der Darstellung des Kalenders nicht zufrieden bin, und es lieber mit Javascript lösen würde wie hier https://prodartsleague.ackermaennchen.at/index.php?page=calendar, da ich es Übersichtlicher finde. als wenn man ewig scrollen muss um zum letzten Spieltag zu gelangen.


    PHP:
    1. <?php
    2. if(!isset($_SESSION["email"])){
    3.   header("Location: ../index.php");
    4.   exit;
    5. }
    6.  
    7. require("./asset/mysql.php");
    8.   $player = $mysql->prepare("SELECT userid FROM user");
    9.   $player->execute();
    10.   $manschaften= $player->rowCount();
    11.  
    12. foreach ($player as $player) {
    13.   $spieler[] = $player['userid'];
    14. }
    15.  
    16. $spieltage = (($manschaften % 2) == 0) ? ($manschaften - 1) : $manschaften;
    17.     $i = $j = $a = $b = $tag = 0;
    18.     for ($i = 1; $i <= $spieltage; $i++) {
    19.         $tag++; $a=1; $b=$i;
    20.  
    21.         for ($j = 1; $j <=$spieltage; $j++) {
    22.             if ($a < $b) {
    23.                 $spieltag[$a][$b] = $tag;
    24.             }
    25.             $a++;$b--;
    26.             if ($b < 1) {
    27.                 $b = $spieltage;
    28.             }
    29.         }
    30.     }
    31.  
    32.     if ($spieltage < $manschaften) {
    33.         for ($i = 1;$i < $manschaften;$i++) {
    34.             $spieltag[$i][$j] = ($i==1?1:$spieltag[$i-1][$i]+1);
    35.         }
    36.     }
    37.     for ($i=1;$i<=$manschaften;$i++) {
    38.         for ($j=1;$j<$i;$j++) {
    39.             $spieltag[$i][$j]=$spieltag[$j][$i]+$spieltage;
    40.         }
    41.     }
    42.  
    43.     foreach ($spieltag as $i=>$array) {
    44.         foreach ($array as $j=>$spieltag) {
    45.             $spielplan[$spieltag][] = array($i,$j);
    46.         }
    47.     }
    48.     ksort($spielplan);
    49. // Season Timestamp holen
    50.     require("./asset/mysql.php");
    51.       $timestamp = $mysql->prepare("SELECT season, datum_start FROM season WHERE aktiv=1");
    52.       $timestamp->execute();
    53.       foreach ($timestamp as $timestamp) {
    54.         $season = $timestamp['season'];
    55.         $timestamp = $timestamp['datum_start'];
    56.       }
    57.     // Kontrolle ob Spiele bereits erstellt wurden
    58.     require("./asset/mysql.php");
    59.     $control = $mysql->prepare("SELECT season FROM spielplan WHERE season=:season");
    60.     $control->bindParam(":season", $season);
    61.     $control->execute();
    62.     $count = $control->rowCount();
    63.  
    64.     if ($count === 0) {
    65. // eine Woche abziehen damit diese in der Schleife wieder hinzugefügt wird.
    66.       $timestamp =mktime(0,0,0, date("m",$timestamp),date("d",$timestamp)-7,date("Y",$timestamp));
    67.  
    68.     for($h=1; $h<=$spieltage; $h++) {
    69.  
    70.       $timestamp =mktime(0,0,0, date("m",$timestamp),date("d",$timestamp)+7,date("Y",$timestamp));
    71.  
    72.         for($g=0; $g<=7; $g++){
    73.           $spieler1 = $spieler[$spielplan[$h][$g][0]-1];
    74.           $spieler2 = $spieler[$spielplan[$h][$g][1]-1];
    75.  
    76.           require("./asset/mysql.php");
    77.           $termin = $mysql->prepare("INSERT INTO spielplan (datum_start, datum_ende, spieler1, spieler2, season) VALUES (:datum_start, :datum_ende, :spieler1, :spieler2, :season)");
    78.           $termin->bindParam(":datum_start", $timestamp);
    79.           $termin->bindParam(":datum_ende", $timestamp);
    80.           $termin->bindParam(":spieler1", $spieler1);
    81.           $termin->bindParam(":spieler2", $spieler2);
    82.           $termin->bindParam(":season", $season);
    83.           $termin->execute();
    84.           $termin=NULL;
    85.  
    86.           require("./asset/mysql.php");
    87.           $game_erstellen = $mysql->prepare("INSERT INTO eingaben (spieler1, spieler2, season) VALUES (:spieler1, :spieler2, :season)");
    88.           $game_erstellen->bindParam(":spieler1", $spieler1);
    89.           $game_erstellen->bindParam(":spieler2", $spieler2);
    90.           $game_erstellen->bindParam(":season", $season);
    91.           $game_erstellen->execute();
    92.  
    93.           }
    94.         }
    95.     echo "<div class='info'>die Spiele wurden erstellt.</div><br><br>";
    96.   } else {
    97.     echo "<div class='fehler'>die Spiele wurden bereits erstellt.</div><br><br>";
    98.   }
    99. ?>
    100.  
     
    Zuletzt bearbeitet: 02.03.2021
    #1      
  2. TutKit

    TutKit Vollzugriff

    Vollzugriff auf sämtliche Inhalte für Photoshop, InDesign, Affinity, 3D, Video & Office

    Suchst du einen effektiven Weg, um deine Geschäftsideen aber auch persönlichen Kenntnisse zu fördern? Teste unsere Lösung mit Vollzugriff auf Tutorials und Vorlagen/Erweiterungen, die dich schneller zum Ziel bringen. Klicke jetzt hier und teste uns kostenlos!

Seobility SEO Tool
x
×
×