diff --git a/great8/roundrobin.py b/great8/roundrobin.py new file mode 100755 index 0000000..83d0157 --- /dev/null +++ b/great8/roundrobin.py @@ -0,0 +1,33 @@ +#!/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 = ["1", "2", "3", "4", "5", "6", "7", "8"] +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]" diff --git a/great8/scheduler b/great8/scheduler new file mode 100644 index 0000000..8209896 --- /dev/null +++ b/great8/scheduler @@ -0,0 +1,49 @@ +[b]Тур №1[/b] +[list] +[*]1 играет против 8 +[*]2 играет против 7 +[*]3 играет против 6 +[*]4 играет против 5 +[/list] +[b]Тур №2[/b] +[list] +[*]1 играет против 7 +[*]8 играет против 6 +[*]2 играет против 5 +[*]3 играет против 4 +[/list] +[b]Тур №3[/b] +[list] +[*]1 играет против 6 +[*]7 играет против 5 +[*]8 играет против 4 +[*]2 играет против 3 +[/list] +[b]Тур №4[/b] +[list] +[*]1 играет против 5 +[*]6 играет против 4 +[*]7 играет против 3 +[*]8 играет против 2 +[/list] +[b]Тур №5[/b] +[list] +[*]1 играет против 4 +[*]5 играет против 3 +[*]6 играет против 2 +[*]7 играет против 8 +[/list] +[b]Тур №6[/b] +[list] +[*]1 играет против 3 +[*]4 играет против 2 +[*]5 играет против 8 +[*]6 играет против 7 +[/list] +[b]Тур №7[/b] +[list] +[*]1 играет против 2 +[*]3 играет против 8 +[*]4 играет против 7 +[*]5 играет против 6 +[/list]