Round-robin tournament schedule: Difference between revisions

Add D
(New post.)
(Add D)
Line 437:
Round 9: ( 1 - 2) ( 3 - 6) ( 4 - 7) ( 5 - 8) ( B - 9)
</pre>
 
=={{header|D}}==
<syntaxhighlight lang="go">
import std.stdio;
import std.range;
import std.array;
import std.conv;
import std.algorithm;
 
void main() {
12.generatePlayers.generateSchedule.displaySchedule;
}
 
string[] generatePlayers(int n) {
("\nRound-Robin for "~(n).text~" players:\n").writeln;
//
return (n%2 == 0) ? iota(1, n+1).map!(a => a.text).array : iota(1, n+1).map!(a => a.text).array~"bye";
}
 
string[] mutate(string[] arr) {
return arr[0]~arr[$-1]~ arr[1..$-1].array;
}
 
string[][] generateSchedule(string[] players) {
auto nbPlayer = players.length;
 
string[] memo ;
memo = players.dup;
 
string[][]schedule;
 
schedule ~= players;
 
for(int i = 1; i <= nbPlayer-2; i++)
{
schedule ~= schedule[$-1].mutate;
}
 
//
return schedule;
}
 
void displaySchedule(string[][] schedule) {
auto nbPlayer = schedule[0].length;
 
foreach(i, row; schedule.array)
{
writef("Round %2s: ", i+1);
 
for(int k=0; k<nbPlayer/2; k++)
{
writef("(%2s vs %2s)", row[k], row[nbPlayer-(k+1)]);
if (k==(nbPlayer/2)-1) writeln; else " ".write;
}
}
//
writeln;
}
</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)
</pre>
 
 
 
=={{header|Go}}==
117

edits