#!/usr/bin/python2
# -*- coding: utf-8 -*-
def roundRobin(units, sets=None):
    """ Generates a schedule of "fair" pairings from a list of units """
    if len(units) % 2:
        units.append(None)
    count    = len(units)
    sets     = sets or (count - 1)
    half     = count / 2
    schedule = []
    for turn in range(sets):
        pairings = []
        for i in range(half):
            pairings.append((units[i], units[count-i-1]))
        units.insert(1, units.pop())
        schedule.append(pairings)
    return schedule

# LOR sheduler

players = [
    "[user]alfix[/user]", 
    "[user]aptyp[/user]", 
    "[user]dk-[/user]", 
    "[user]DNA_Seq[/user]",
    "[user]DoctorSinus[/user]",
    "[user]Felagund[/user]",
    "[user]Genuine[/user]",
    "[user]Google-ch[/user]",
    "[user]HunOL[/user]",
    "[user]J[/user]",
    "[user]LongLiveUbuntu[/user]",
    "[user]Michkova[/user]",
    "[user]onetwothreezeronine[/user]",
    "[user]snoopcat[/user]",
    "[user]redgremlin[/user]",
    "[user]pylin[/user]",
    "[user]Rosko[/user]",
    "[user]shell-script[/user]",
    "[user]Solace[/user]",
    "[user]trex6[/user]",
    "[user]UVV[/user]",
    "[user]XoFfiCEr[/user]",
    "[user]William[/user]",
    "[user]Zodd[/user]"
]
tour_count = 0

# Generate LORCODE for pairings.
# Also generate "reversal" for autumm season.
for pairings in roundRobin(players):
    tours = (len(players) - 1) * 2
    tour_count = tour_count + 1
    print "[b]Тур №" + str(tour_count) + "[/b]"
    print "[list]"
    for pair in pairings:
        print "[*]" + pair[0] + " играет против " + pair[1]
    print "[/list]"
    print "[b]Тур №" + str(tours - tour_count + 1) + "[/b]"
    print "[list]"
    for pair in pairings:
        print "[*]" + pair[1] + " играет против " + pair[0]
    print "[/list]"