Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Составьте туры для 2–32 различных целочисленных идентификаторов игроков так, чтобы каждая пара встретилась однажды. Проверьте нечётное число с пропуском тура и сохранение исходного списка, отклоняя повторные и логические идентификаторы.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
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Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.