我已经用JavaScript编写了一个巨大的页面,用于我正在游戏中举办的锦标赛。我已经得到了我真正需要的所有数组,但我想添加回合。整个脚本适应锦标赛设置(未来更多),我也希望自己调整。所以,让我们说比赛设置是[game,teamsize,entrylimit]。 entrylimit将是找到解决方案的关键,因为它决定了回合。它在树系统中工作(或者它被称为)。让我们说entrylimit是8.这意味着第一轮将由4个匹配组成,第二轮将由2组成。如果entrylimit为16,那么第一轮将包含8个匹配,第二轮将包含4个,以及第三个将由2组成。我想找到一种方法将其粘贴到我写入匹配的循环中,并使用entrylimit和match number来生成整数。我只需要一个公式,可以使用这两个变量来获得我想要的结果。我也为过多的细节道歉。
答案 0 :(得分:1)
如果我理解了这个问题,here's an example可以了解entrylimit如何获得每轮的轮数和匹配数。
计算:
var entrylimit=16;
var amount_of_rounds = Math.log(entrylimit) / Math.log(2);
for(i=amount_of_rounds; i>0; i--)
{
s = 'Round '+(amount_of_rounds-i+1)+' of '+amount_of_rounds+' consist of '+Math.pow(2, i-1)+' matches';
alert(s);
}
答案 1 :(得分:0)
试试这个:
var entryInfo = [];
function populateEntryInfo(entryLimit)
{
entryInfo = [];
var i = entryLimit;
while(i>1)
{
i = i/2;
entryInfo.push(i);
}
entryInfo.push(i);
}