我对循环赛的工作方式非常熟悉,现在我正在尝试实现一个函数(Python 可以正常工作)来创建循环赛匹配,以说明玩家在锦标赛期间第一次参加比赛的次数。
理想情况下,我希望每个人都开始相同的回合数(如果是玩家,则为±1),并拥有告诉我这一点的功能,而无需我手动进行调整。
编辑:这是我迄今为止的尝试,创建一个判别式以某种方式“随机化”第一个玩家,但通常不起作用
import random
def get_rr_rounds(players):
"""
players = ["Player1", "Player2", "Player3","Player4", "Player5", "Player6"]
"""
if len(players) % 2:
players.append('DUMMY')
n = len(players)
matchs = []
rounds = []
discriminant = random.choice([0, 1])
for round in range(1, n):
for i in range(n//2):
if (round % 2 == discriminant):
matchs.append((players[i], players[n - 1 - i]))
else:
matchs.append((players[n - 1 - i], players[i]))
players.insert(1, players.pop())
rounds.append(matchs)
matchs = []
return rounds