Round-robin tournament schedule: Difference between revisions

Content added Content deleted
No edit summary
Line 123: Line 123:
(labels ((tour (sac &optional (lst ()) &aux (duo ()))
(labels ((tour (sac &optional (lst ()) &aux (duo ()))
(unless (intersection lst stop :test #'equal)
(unless (intersection lst stop :test #'equal)
(cond ((null sac)
(cond (sac
(print (reverse lst)))
(dolist (i sac)
(setf stop (nconc stop lst))
(t (dolist (i sac)
(dolist (j (rest (member i sac)))
(dolist (j (rest (member i sac)))
(setf duo (list i j))
(setf duo (list i j))
(tour (set-difference sac duo) (list* duo lst)))))))))
(tour (set-difference sac duo) (list* duo lst)))))
(t (print (reverse lst))
(setf stop (nconc stop lst)))))))
(tour joueurs)))</syntaxhighlight>
(tour joueurs)))</syntaxhighlight>