Round-robin tournament schedule: Difference between revisions
Content added Content deleted
(Add Swift implementation) |
|||
Line 943: | Line 943: | ||
Round 5: ( 1 vs 2 ) ( 3 vs 0 ) ( 4 vs 5 ) |
Round 5: ( 1 vs 2 ) ( 3 vs 0 ) ( 4 vs 5 ) |
||
</pre> |
</pre> |
||
=={{header|jq}}== |
|||
{{Works with|jq}} |
|||
'''Works with gojq, the Go implementation of jq''' |
|||
'''Adapted from [[#Wren|Wren]]''' |
|||
<syntaxhighlight lang="jq"> |
|||
def lpad($len): tostring | ($len - length) as $l | (" " * $l) + .; |
|||
def rotate: .[-1:] + .[:-1]; |
|||
def roundRobin($n): |
|||
{$n, lst: [range(2; $n+1)]} |
|||
| if $n % 2 == 1 |
|||
then .lst += [0] # 0 denotes a bye |
|||
| .n += 1 |
|||
end |
|||
| foreach range(1; .n) as $r (.; |
|||
.emit = "Round \($r|lpad(3)): " |
|||
| ([1] + .lst) as $lst2 |
|||
| reduce range(0; .n/2) as $i (.; |
|||
.emit += " (\($lst2[$i]|lpad(2)) vs \($lst2[.n - 1 - $i]|lpad(2)))") |
|||
| .lst |= rotate ) |
|||
| .emit ; |
|||
"Round robin for 12 players:", |
|||
roundRobin(12), |
|||
"\n\nRound robin for 5 players (0 denotes a bye):\n", |
|||
roundRobin(5) |
|||
</syntaxhighlight> |
|||
{{output}} |
|||
Essentially the same as for [[#Wren|Wren]]. |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |