Подсчет раундов в турнире - PullRequest
0 голосов
/ 24 декабря 2010

Я написал огромную страницу на JavaScript для турнира, который я провожу в игре.Я получил все, что мне действительно нужно, в массивах, но я хочу добавить раунды.Весь сценарий подстраивается под настройки турнира (чтобы узнать больше в будущем), и я бы хотел, чтобы это тоже само изменилось.Итак, скажем, настройки турнира: [игра, размер команды, начальный лимит].Ограничение входа будет ключом к поиску решения, потому что это решает раунды.Он работает в древовидной системе (или как это называется).Допустим, предел входа равен 8. Это означает, что первый раунд будет состоять из 4 матчей, а второй будет состоять из 2. Если предел входа был 16, то первый раунд будет состоять из 8 матчей, второй будет состоять из 4, итретий будет состоять из 2. Я хочу найти способ вставить это в мой цикл, в котором записаны совпадения, и использовать предельный предел и номер совпадения для генерации номера раунда.Все, что мне нужно, это формула, которая может использовать эти две переменные, чтобы получить желаемый результат.Также прошу прощения за чрезмерное количество деталей.

Ответы [ 2 ]

1 голос
/ 24 декабря 2010

Если я понимаю проблему, вот пример того, как 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);
}

0 голосов
/ 24 декабря 2010

Попробуйте это:

var entryInfo = [];

function populateEntryInfo(entryLimit)
{
    entryInfo = [];
    var i = entryLimit;
    while(i>1)
    {
        i = i/2;
        entryInfo.push(i);
    }
    entryInfo.push(i);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...