1

私は現在、自分のプロジェクトの 1 つのトーナメント ブラケットの描画に取り組んでいます。小さい括弧の描画はうまくいっているようですが、16 になると動作がおかしくなり始めます。

リンクをたどって、8以降にどのように場違いになるかを確認してください.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/2

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/4

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/8

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/16

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/32

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/64

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewBracket/128

その後、RAM エラーから抜け出しますが、これは RAM を正当に使用しているため、実際には問題ではありません。このスクリプトの最大値を上げることは正当化できます (もちろん、最終スクリプトですべてのページ読み込みが実行されるわけではありません。画像はキャッシュされます)。

とにかく、画像を進めていくとわかるように、画像はますます軌道から外れているように見えます。

コードはここにあります: http://pastebin.com/f5485b027 (このようなコードを投稿する必要がありますか、それともインラインで投稿する必要がありますか?よくわかりませんでした)

これを修正する方法について完全に迷っているので、アイデア/提案を入力してください. コードソリューションは必要ありません。数学/ポジショニングに関するガイダンスが必要なだけです。

ありがとう、マット

4

1 に答える 1

1

ブラケットは、アルゴリズムに基づいて「正しく」描画されます。

特に $y の問題ケースのコードをステップ実行しましたか?

アルゴがどのように機能するかわかりません ($takeAway の使用法がよくわかりません)。

しかし、これは私が思いつくものです:

for ($k = 1; $k < ($rounds + 1); $k++)
{
    // Calculate currLeftDraw and currRightDraw Here...

    $spacing = 60 * pow(2, ($k - 1));
    $firstY = ($spacing / 2) - 30;

    for ($i = 0; $i < ($sizePlayers / (pow(2, $k))); $i++)
    {
        $yPos = $firstY + ($i * $spacing);

        // Rest of code here...
    }
}
于 2010-02-03T05:43:22.090 に答える