Турнирная генерация: размещение брекетов

В настоящее время я работаю над созданием системы турнирной сетки, но не могу придумать хороший алгоритм для следующего:

У меня есть список, где TournamentRound выглядит следующим образом:

public class TournamentRound
{
    public int TotalAtBeginning { get; set; }
    public int TotalAfterRound { get; set; }
    public int EntriesPerMatch { get; set; }
    public int WinnersPerMatch { get; set; }
}

У меня есть поколение раундов и знаю все значения. Например:

Round 1: 12 Participants, 4 Entries per Match, 2 Winners: 6 in the end
Round 2: 6 Participants, 2 Entries per Match, 1 Winner: 3 in the end
Round 3: 3 Participants, 3 Entries per Match, 1 winner: END

Вот моя проблема:

Допустим, только 6 коробок имеют место на одной странице окончательного PDF.Как я могу рассчитать, где находятся поля, учитывая фиксированные размеры страницы и блока?

РЕДАКТИРОВАТЬ для уточнения!

Пример вывода

Я нарисовал следующую картинку, чтобы показать, как будут выглядеть результаты этих трех раундов, упомянутых выше. Например, проблема заключается в том, что только 6 ящиков имеют место для размещения на одной странице по высоте, что означает, что каким-то образом нужно будет сделать разрыв страницы для определенных раундов.

Если это поможет, я думаю о построении древовидной структуры, где каждый узел удерживает свою позицию и на какой странице (1,2,3...) он находится.

0 ответов

Другие вопросы по тегам