Round-robin tournament schedule: Difference between revisions
Content added Content deleted
m (→{{header|J}}: alternative display of id pairs) |
Cyril Nocton (talk | contribs) No edit summary |
||
Line 113: | Line 113: | ||
2 12 11 10 9 8 |
2 12 11 10 9 8 |
||
</pre> |
</pre> |
||
=={{header|Common Lisp}}== |
|||
''Draft'' |
|||
====Program==== |
|||
<syntaxhighlight lang="lisp">;; 221130 Draft |
|||
(defun planning-tournoi (joueurs &aux (stop ())) |
|||
(labels ((tour (sac &optional (lst ()) &aux (duo ())) |
|||
(unless (intersection lst stop :test #'equal) |
|||
(cond (sac |
|||
(dolist (i sac) |
|||
(dolist (j (rest (member i sac))) |
|||
(setf duo (list i j)) |
|||
(tour (set-difference sac duo) (list* duo lst))))) |
|||
(t (print (reverse lst)) |
|||
(setf stop (nconc stop lst))))))) |
|||
(tour joueurs)))</syntaxhighlight> |
|||
====Execution==== |
|||
<pre>(planning-tournoi '(A B C D E *))</pre> |
|||
{{out}} |
|||
<pre>((A B) (C D) (E *)) |
|||
((A C) (B E) (D *)) |
|||
((A D) (B *) (C E)) |
|||
((A E) (B D) (C *)) |
|||
((A *) (B C) (D E))</pre> |
|||
<pre>(planning-tournoi '(1 2 3 4 5 6 7 8 9 10 11 12))</pre> |
|||
{{out}} |
|||
<pre>((1 2) (3 4) (5 6) (7 8) (9 10) (11 12)) |
|||
((1 3) (2 4) (5 7) (6 8) (9 11) (10 12)) |
|||
((1 4) (2 3) (5 8) (6 7) (9 12) (10 11)) |
|||
((1 5) (2 6) (3 9) (4 10) (7 11) (8 12)) |
|||
((1 6) (2 5) (3 10) (4 9) (7 12) (8 11)) |
|||
((1 7) (2 8) (3 11) (4 12) (5 9) (6 10)) |
|||
((1 8) (2 7) (3 12) (4 11) (5 10) (6 9)) |
|||
((1 9) (2 10) (3 7) (4 8) (5 11) (6 12)) |
|||
((1 10) (2 9) (3 8) (4 7) (5 12) (6 11)) |
|||
((1 11) (2 12) (3 5) (4 6) (7 9) (8 10)) |
|||
((1 12) (2 11) (3 6) (4 5) (7 10) (8 9))</pre> |
|||
''cyril nocton (cyril.nocton@gmail.com) w/ google translate'' |
|||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |
||
<syntaxhighlight lang="freebasic">function nob( n as uinteger, i as uinteger, bye as boolean ) as string |
<syntaxhighlight lang="freebasic">function nob( n as uinteger, i as uinteger, bye as boolean ) as string |