Курсовая работа: Составление расписания встреч участников соревнований
(setq lst_res nil)
(do
( (i (/ (length lst) 2)) (iter 0))
( (>= i (length lst)) lst_res)
(setq lst_res (insert iter lst_res (nth i lst)))
(setq i (+ i 1))
(setq iter (+ iter 1))
)
)
; вставка элемента at в pos позицию списка lst
( defun insert (pos lst at)
(cond
( (null lst) (cons at nil))
( (eql pos 0) (cons at lst))
(t (cons (car lst) (insert ( - pos 1) (cdr lst) at)))
)
)
; функция выбирает победителя
( defunget_winner (lst)
(nth (random (length lst)) lst)
)
; функция иммитирует игру по олимпийской системе
( defun play_off (l output)
(cond
; если осталось 2 участника выбираем победителя и выходим из функции
( (= (length l) 2)
(progn
(print 'pobeditel output)
(print (get_winner l) output)