hallo zusammen, ich will kurz erklären worum es geht.
ich habe eine online liga für pes5 erstellt und habe in meiner datenbank eine tabelle mit allen teams.
um ein jeder gegen jeden dort auszulesen reicht ein einfacher sql befehl, was auch kein problem ist.
ich möchte allerdings auch eine einteilung nach spieltagen haben und habe dazu folgende seite gefunden:
http://www.stefan-taube.de/liga.htm
der vereinfachte quelltext ist in c# und er funktioniert einwandfrei, ich habe ihn sogar schon etwas übersichtlicher gestalltet um ihn besser in php umschreiben zu können:
So, in PHP umgesetzt sieht das für mich so aus:
Nur das Problem an der ganzen Sache ist, das die Ausgaben leider völlig unterschiedlich sind, was ich nicht ganz verstehe...
Also, wie bereits erwähnt ist die C#-Ausgabe korrekt; sie gibt mir an an welchem Spieltag das jeweilige Spiel (x - y oder i - j) statt findet...
da es ja logisch funktioniert muss es ja eigentlich an der übersetzung in php scheitern... evt. an der art der verwendung des arrays? ich bin verzweifelt und ratlos...
Kann mir das jemand erklären, hab ich was übersehen?
Hilfe!
Gruß, snx
ich habe eine online liga für pes5 erstellt und habe in meiner datenbank eine tabelle mit allen teams.
um ein jeder gegen jeden dort auszulesen reicht ein einfacher sql befehl, was auch kein problem ist.
ich möchte allerdings auch eine einteilung nach spieltagen haben und habe dazu folgende seite gefunden:
http://www.stefan-taube.de/liga.htm
der vereinfachte quelltext ist in c# und er funktioniert einwandfrei, ich habe ihn sogar schon etwas übersichtlicher gestalltet um ihn besser in php umschreiben zu können:
PHP-Code:
using System;
class LigaAlgorithmus
{
// st[i,j] ist der Spieltag an dem i gegen j spielt.
static void Calc(int Teams)
{
int i = 0;
int j = 0;
int a = 0;
int b = 0;
int Spieltag = 0;
int Spieltage = 0;
int [,] Spiel = new int[Teams + 1, Teams + 1];
if (Teams % 2 == 0)
Spieltage = Teams - 1;
else
Spieltage = Teams;
for(i = 1 ; i <= Spieltage; i++)
{
Spieltag++;
a = 1;
b = i;
for(j = 1; j <= Spieltage; j++)
{
if (a < b) Spiel[a, b] = Spieltag;
a++;
b--;
if (b < 1) b = Spieltage;
}
}
if (Spieltage < Teams)
for (i = 1; i < Teams; i++)
if (i == 1)
Spiel[i, Teams] = 1;
else
Spiel[i, Teams] = Spiel[i - 1, i] + 1;
for (i = 1; i <= Teams; i++)
for (j = 1; j < i; j++)
Spiel[i, j] = Spiel[j, i] + Spieltage;
for (i = 1; i <= Teams; i++)
{
for (j = 1; j <= Teams; j++)
Console.Write(" " + Spiel[i, j].ToString());
Console.WriteLine();
}
Console.ReadLine();
}
[STAThread]
static void Main(string[] args)
{
Calc(4);
}
}
PHP-Code:
$Teams = 4;
$i = 0;
$j = 0;
$a = 0;
$b = 0;
$Spieltag = 0;
if ($Teams % 2 == 0)
$Spieltage = $Teams - 1;
else
$Spieltage = $Teams;
$Spiel = array();
for ($i = 0; $i <= $Teams; $i++)
for ($j = 0; $j <= $Teams; $j++)
$Spiel[$i][$j] = 0;
for($i = 1 ; $i <= $Spieltage; $i++)
{
$Spieltag++;
$a = 1;
$b = i;
for($j = 1; $j <= $Spieltage; $j++)
{
if ($a < $b) $Spiel[$a][$b] = $Spieltag;
$a++;
$b--;
if ($b < 1) $b = $Spieltage;
}
}
if ($Spieltage < $Teams)
for ($i = 1; $i < $Teams; $i++)
if ($i == 1)
$Spiel[$i][$Teams] = 1;
else
$SPiel[$i][$Teams] = $Spiel[$i - 1][$i] + 1;
for ($i = 1; $i <= $Teams; $i++)
for ($j = 1; $j < $i; $j++)
$Spiel[$i][$j] = $Spiel[$j][$i] + $Spieltage;
for ($i = 1; $i <= $Teams; $i++)
{
for ($j = 1; $j <= $Teams; $j++)
echo ' ' . $Spiel[$i][$j];
echo '<br>';
}
Code:
C# Ausgabe: 0 2 3 1 5 0 1 3 6 4 0 2 4 6 5 0
Code:
PHP Ausgabe: 0 0 0 1 3 0 3 0 3 6 0 0 4 3 3 0
da es ja logisch funktioniert muss es ja eigentlich an der übersetzung in php scheitern... evt. an der art der verwendung des arrays? ich bin verzweifelt und ratlos...
Kann mir das jemand erklären, hab ich was übersehen?
Hilfe!
Gruß, snx
Kommentar