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?
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;
}
?>