turnierbaum

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

  • turnierbaum

    i bin gerade dabei ein turnierbaum aufzubauen, der variabel für verschiedene anzahlen von teams (8,16,32,64,etc)funktioniert.

    das ganze mache i zunächst anhand einer tabelle. es funktioniert bei 4 und 8 teams auch ganz gut -> $maxteams auf 4 bzw 8 setzen.

    setze i allerdings $maxteams auf 16, füllt er den unteren teil der tabelle falsch aus(analog bei 32 und 64)

    so müsste bei "10-2", "14-2" und bei "12-3" statt bei "12-2" TEAM stehen.
    dafür muss in der funktion turnier die formeln geändert werden, bin aber mitlerweile mit meinem latein am ende, könnt ihr mir da weiterhelfen?

    PHP-Code:
    <?php

        $maxteams 
    "16";
        
        
    $hoehe $maxteams-1;    
        
    $breite log($maxteams,10)/log(2,10);
        print 
    "höhe x breite: $hoehe x $breite <br><br>";

        print 
    "<table border=\"1\">";

        for (
    $zeile="1";$zeile<=$hoehe;$zeile++)
            {
                print 
    "<tr>";        
                for (
    $spalte="1";$spalte<=$breite;$spalte++) 
                    {
                        
    $potenz $spalte-1;
                        if ( 
    $zeile == turnier ($zeile,$potenz))
                            {
                                 print 
    "<td>TEAM</td>";
                            }
                        elseif (
    $zeile == $hoehe && $spalte == $breite)
                            {
                                 print 
    "<td>PLATZ 3</td>";    # spiel um platz 3
                            
    }
                        else
                            {
                                 print 
    "<td>$zeile-$spalte</td>";
                            }
                    }

                print 
    "<tr>";
            }

        print 
    "</table>";

        function 
    turnier ($zeile,$potenz
            {
                
    $i "1";
                for (
    $i="0";$i<=7;$i++)
                    {
                        
    $A 2*$i;
                        
    $B bcpow(2,$i+1,0);        
                        
    $C $A+bcpow($B,$potenz,0);
                        if (
    $zeile == $C
                            {
                                break; 
                            }
                    }
                return 
    $C;
            }

    ?>
Lädt...
X