我正在创建一个锦标赛支架创建脚本,我正在参加锦标赛非玩家2的锦标赛。例如,它目前适用于2,4,8,16,32。 ..等等,但对于3,5,6,7 ......我很难过!
以下是我目前的情况:
$numrows = 8; // Currently for Testing.
draw_bracket($numrows);
function draw_bracket($numplayers)
{
draw_series_container();
draw_bracket_layer($numplayers, 0);
draw_series_container_end();
}
/* RECURSION, YO! */
function draw_bracket_layer($numplayers, $layer)
{
$levels = floor(log($numplayers, 2));
if ($layer == $levels - 1)
{
draw_player_box();
draw_player_box();
}
else
{
draw_series_container();
draw_bracket_layer($numplayers, $layer + 1);
draw_series_container_end();
draw_series_container();
draw_bracket_layer($numplayers, $layer + 1);
draw_series_container_end();
}
}
我假设我们需要更多'基础案例'。或者更多,如果这些关闭案件的陈述。
函数draw_series_container()和draw_player_box只是填充了HTML代码。如果需要,我可以展示它们。
有人可以用5或6人的支架开始我吗?
谢谢!
答案 0 :(得分:1)
正确的等级公式为
$levels = intval(log($numplayers, 2))+1;