Round-robin tournament schedule: Difference between revisions
Content added Content deleted
(Added Ada solution) |
(Created Nim solution.) |
||
Line 519: | Line 519: | ||
Round 6: (Bye - 7) (1 - 6) (2 - 5) (3 - 4) |
Round 6: (Bye - 7) (1 - 6) (2 - 5) (3 - 4) |
||
Round 7: (Bye - 4) (3 - 5) (2 - 6) (1 - 7) |
Round 7: (Bye - 4) (3 - 5) (2 - 6) (1 - 7) |
||
</pre> |
|||
=={{header|Nim}}== |
|||
<syntaxhighlight lang="Nim">import std/[algorithm, sequtils, strformat] |
|||
proc roundRobin(n: Positive) = |
|||
assert n >= 2 |
|||
var n = n |
|||
var list1 = toSeq(2..n) |
|||
if n mod 2 == 1: |
|||
list1.add 0 # 0 denotes a "bye". |
|||
inc n |
|||
for r in 1..<n: |
|||
stdout.write &"Round {r:2}:" |
|||
let list2 = 1 & list1 |
|||
for i in 0..<(n div 2): |
|||
stdout.write &" ({list2[i]:>2} vs {list2[n - i - 1]:<2})" |
|||
echo() |
|||
list1.rotateLeft(-1) |
|||
echo "Round robin for 12 players:\n" |
|||
roundRobin(12) |
|||
echo "\n\nRound robin for 5 players (0 denotes a bye) :\n" |
|||
roundRobin(5) |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Round robin for 12 players: |
|||
Round 1: ( 1 vs 12) ( 2 vs 11) ( 3 vs 10) ( 4 vs 9 ) ( 5 vs 8 ) ( 6 vs 7 ) |
|||
Round 2: ( 1 vs 11) (12 vs 10) ( 2 vs 9 ) ( 3 vs 8 ) ( 4 vs 7 ) ( 5 vs 6 ) |
|||
Round 3: ( 1 vs 10) (11 vs 9 ) (12 vs 8 ) ( 2 vs 7 ) ( 3 vs 6 ) ( 4 vs 5 ) |
|||
Round 4: ( 1 vs 9 ) (10 vs 8 ) (11 vs 7 ) (12 vs 6 ) ( 2 vs 5 ) ( 3 vs 4 ) |
|||
Round 5: ( 1 vs 8 ) ( 9 vs 7 ) (10 vs 6 ) (11 vs 5 ) (12 vs 4 ) ( 2 vs 3 ) |
|||
Round 6: ( 1 vs 7 ) ( 8 vs 6 ) ( 9 vs 5 ) (10 vs 4 ) (11 vs 3 ) (12 vs 2 ) |
|||
Round 7: ( 1 vs 6 ) ( 7 vs 5 ) ( 8 vs 4 ) ( 9 vs 3 ) (10 vs 2 ) (11 vs 12) |
|||
Round 8: ( 1 vs 5 ) ( 6 vs 4 ) ( 7 vs 3 ) ( 8 vs 2 ) ( 9 vs 12) (10 vs 11) |
|||
Round 9: ( 1 vs 4 ) ( 5 vs 3 ) ( 6 vs 2 ) ( 7 vs 12) ( 8 vs 11) ( 9 vs 10) |
|||
Round 10: ( 1 vs 3 ) ( 4 vs 2 ) ( 5 vs 12) ( 6 vs 11) ( 7 vs 10) ( 8 vs 9 ) |
|||
Round 11: ( 1 vs 2 ) ( 3 vs 12) ( 4 vs 11) ( 5 vs 10) ( 6 vs 9 ) ( 7 vs 8 ) |
|||
Round robin for 5 players (0 denotes a bye) : |
|||
Round 1: ( 1 vs 0 ) ( 2 vs 5 ) ( 3 vs 4 ) |
|||
Round 2: ( 1 vs 5 ) ( 0 vs 4 ) ( 2 vs 3 ) |
|||
Round 3: ( 1 vs 4 ) ( 5 vs 3 ) ( 0 vs 2 ) |
|||
Round 4: ( 1 vs 3 ) ( 4 vs 2 ) ( 5 vs 0 ) |
|||
Round 5: ( 1 vs 2 ) ( 3 vs 0 ) ( 4 vs 5 ) |
|||
</pre> |
</pre> |
||