Spielplan mal wieder

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

  • Spielplan mal wieder

    als erstes zu meiner verteidigung ich habe die suchfunktion ausgiebig benutzt, aber nicht wirklich was gefunden was mir weitergeholfen hätte

    Als hier mein "Problem" :

    Ich habe 8 Vereine,
    jeder soll gegen jeden 1x spielen - in einer Saison die logischerweise 7 Spieltage hat - jeder nur 1x gegen einen anderen Verein.

    for($i = 0; $i < count($verein); $i++) {
    for($j = 0; $j < count($verein); $j++) {
    if($j > $i) echo $verein[$i] . " vs. " . $verein[$j] . "<br>";
    }
    }

    über diesen Status bin ich leider nicht wirklich hinausgekommen.

    Es währe echt sehr toll wenn hier jmd. eine Lösung oder einen Lösungsvorschlag für mich parat hätte.

    PS: was natürlich noch idealer währe, aber nur wenn es möglich ist und net zuviel arbeit machen würde - an dieser Stelle seit ihr gefordert ) - währe das ganze für eine Anzahl von X Vereinen. Aber sowas brauche ich net wirklich : )

    Also ich bedanke mich schonmal für alle Antworten und hoffe ihr könnt mir helfen

  • #2
    meinste sowas?

    PHP-Code:
    <?php
    $vereine 
    = array('Verein 1''Verein 2''Verein 3''Verein 4''Verein 5''Verein 6');
    function 
    spielplan($vereine$j=0) {
        
    $num count($vereine);
        for (
    $i=$j$i<$num-1$i++) {
            
    $return .= $vereine[$j] ." vs "$vereine[($i+1)] ."<br>\n\r";
        }
        if (
    $j<$num$return .= spielplan($vereine$j+1);
        return 
    $return;
    }
    echo 
    spielplan($vereine);
    ?>

    Forumregeln!

    Gute PHP-(tutorial-)Seiten

    Kommentar


    • #3
      PHP-Code:
      $vereine = array(
        
      'Verein 1''Verein 2''Verein 3'
        
      'Verein 4''Verein 5''Verein 6');

      function 
      spielplan($vereine) {
          
      $plan = array();
          while (
      count($vereine) > 1) {
              
      $team_1 array_shift($vereine);
              foreach (
      $vereine as $verein)
                  
      $plan[] = array($team_1$verein);
          }
          return 
      $plan;

      Das gibt dir alle Kombinationen
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        ja sowas in der art^^ aber da sist ja auch net so anders von dem was ich schon hatte, mein problem ist die zuordnung der partien auf die 7 spieltage

        Kommentar


        • #5
          hat den niemand eine idee ?

          Kommentar


          • #6
            Wenn ich wieder @home bin, werd ich mir das problem mal anschauen

            Forumregeln!

            Gute PHP-(tutorial-)Seiten

            Kommentar


            • #7
              Hab nicht Zeit richtig drüber nachzudenken, ich denke mit einem mehrdimensionalen Array sollte es zu lösen sein.
              Mal so als grober Denkansatz:

              Spielplan in einem Array abbilden:

              $ar_spielplan[tag1][spiel1][heim] = "Verein1";
              $ar_spielplan[tag1][spiel1][gast] = "Verein2";
              $ar_spielplan[tag1][spiel2][heim] = "Verien3";
              $ar_spielplan[tag1][spiel2][gast] = "Verein4";
              .
              .
              .

              Die Erstellung dieses Arrays muss natürlich automatisch erfolgen und bevor ein Element erstellt wird muss geprüft werden ob am entsprechenden Spieltag bereits ein Verein in einem Spiel steht.

              Die Schleife(n) so zu gestalten das alle Möglichkeiten ausgeschöpft werden wird halt letztlich die größte Schwierigkeit an der ganzen Geschichte sein.

              Werd mich evtl. am WE mal dran versuchen, diese Aufgabenstellung gefällt mir irgendwie

              Gruss
              Quetschi
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                So hab mla ein wenig rumprobiert, könnte viell. noch ein wenig buggy sein :


                PHP-Code:
                <?php
                $vereine 
                = array('Verein 1''Verein 2''Verein 3'
                                
                'Verein 4''Verein 5''Verein 6');
                function 
                spielplan($vereine$spieltage) {
                    
                $spiele $spielplan = array();
                    while (
                count($vereine) > 1) {
                        
                $team_1 array_shift($vereine);
                        foreach (
                $vereine as $verein)
                            
                $spiele[] = array($team_1$verein);
                    }
                    
                $num_spiele count($spiele);
                    
                $spiele_pro_tag floor($num_spiele $spieltage);
                    for (
                $i=1;$i<=$spieltage;$i++) {
                        for (
                $j=1;$j<=$spiele_pro_tag;$j++) {
                            
                $key array_rand($spiele1);
                            
                $spielplan['spieltag'.$i]['Spiel'.$j] = $spiele[$key];
                            unset(
                $spiele[$key]);
                        }
                    }
                    foreach (
                $spiele as $spiel) {
                        
                $spieltag rand(1$spieltage);
                        
                $spiel_nr = (count($spielplan['spieltag'.$spieltag])+1);
                        
                $spielplan['spieltag'.$spieltag]['Spiel'.$spiel_nr] = $spiel;
                    }  
                    
                    return 
                $spielplan;
                }
                echo 
                "<pre>";print_r(spielplan($vereine7));echo"</pre>";
                ?>

                Forumregeln!

                Gute PHP-(tutorial-)Seiten

                Kommentar


                • #9
                  hmm funktioniert noch nicht so ganz

                  er gibt mir folgendes aus :^^

                  Array
                  (
                  [spieltag1] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 2
                  [1] => Verein 6
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 1
                  [1] => Verein 3
                  )

                  )

                  [spieltag2] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 2
                  [1] => Verein 5
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 2
                  [1] => Verein 3
                  )

                  )

                  [spieltag3] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 1
                  [1] => Verein 4
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 5
                  [1] => Verein 6
                  )

                  )

                  [spieltag4] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 1
                  [1] => Verein 2
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 2
                  [1] => Verein 4
                  )

                  )

                  [spieltag5] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 3
                  [1] => Verein 4
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 1
                  [1] => Verein 6
                  )

                  )

                  [spieltag6] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 4
                  [1] => Verein 6
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 1
                  [1] => Verein 5
                  )

                  [Spiel3] => Array
                  (
                  [0] => Verein 3
                  [1] => Verein 5
                  )

                  )

                  [spieltag7] => Array
                  (
                  [Spiel1] => Array
                  (
                  [0] => Verein 3
                  [1] => Verein 6
                  )

                  [Spiel2] => Array
                  (
                  [0] => Verein 4
                  [1] => Verein 5
                  )

                  )

                  )

                  Kommentar


                  • #10
                    und, was ist daran falsch?

                    Edit:
                    Machst halt aus folgendem:
                    PHP-Code:
                    echo "<pre>";print_r(spielplan($vereine7));echo"</pre>"
                    folgendes:
                    PHP-Code:
                    $spielplan spielplan($vereine7)); 
                    und schon kannste weiterarbeiten mit dem Array
                    Zuletzt geändert von davidovich; 13.05.2005, 16:09.

                    Forumregeln!

                    Gute PHP-(tutorial-)Seiten

                    Kommentar


                    • #11
                      Habs auch mal ausprobiert, bei 6 Mannschaften sollten eigentlich pro Spieltag 3 Begegnungen stattfinden, was insgesamt 5 Spieltage ergeben würde. Habs deshalb mal mit
                      PHP-Code:
                      echo "<pre>";print_r(spielplan($vereine5));echo"</pre>"
                      aufgerufen, da ist's aber gescheitert, weil am gleichen Spieltag manche Mannschaften mehrere Spiele bestreiten hätten müssen.

                      Ich werd mich am WE mal dran versuchen, bei einer ungeraden Mannschaftszahl sollte z.B. auch berücksichtigt werden dass jede Mannschaft einmal pro Saison Spielfrei bekommt usw...
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        weil am gleichen Spieltag manche Mannschaften mehrere Spiele bestreiten hätten müssen
                        hab versucht das zu vermeiden, hatte aber irgendwann keine Lust mehr. Mal schauen, heut' abend hab ich au genug Zeit zum testen

                        Forumregeln!

                        Gute PHP-(tutorial-)Seiten

                        Kommentar


                        • #13
                          es müssen bei 7 spieltagen an jedem spieltag 4 partien gespielt werden^^

                          Kommentar


                          • #14
                            oh sorry hab garnicht gesehen das schon eine 2te seite dazu gekommen ist

                            also großes dankeschön aufjeden fall erstmal an euch das ihr mir so bereitwillig unter die arme greift

                            Kommentar


                            • #15
                              Original geschrieben von eXo1234
                              es müssen bei 7 spieltagen an jedem spieltag 4 partien gespielt werden^^
                              bei 6 Vereinen wird das aber nicht klappen

                              Forumregeln!

                              Gute PHP-(tutorial-)Seiten

                              Kommentar

                              Lädt...
                              X