FFixtureLinden
Сценарии

Сценарии работы с кодом · Расписание кругового турнира

03
Вокруг ваших задач

Конкретная отправная точка

Составьте туры для 2–32 различных целочисленных идентификаторов игроков так, чтобы каждая пара встретилась однажды. Проверьте нечётное число с пропуском тура и сохранение исходного списка, отклоняя повторные и логические идентификаторы.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Расписание кругового турнира

Конкретная отправная точка
def round_robin(ids):
    players = list(ids)
    if not 2 <= len(players) <= 32 or any(type(v) is not int or abs(v) > 10**9 for v in players):
        raise ValueError("players.range")
    if len(set(players)) != len(players):
        raise ValueError("players.duplicate")
    if len(players) % 2:
        players.append(None)
    rounds = []
    for _ in range(len(players)-1):
        pairs = [(players[i], players[-1-i]) for i in range(len(players)//2)
                 if players[i] is not None and players[-1-i] is not None]
        rounds.append(pairs)
        players = [players[0], players[-1], *players[1:-1]]
    return rounds

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗