anchor.diff:          (#\q (return-from event-case))
           ((nil)
            (sleep 0.1)
  -         (move scr (car pos) (cadr pos))
  +         (goto scr pos)
            (setf ch (cond ((equal dir dir-prev) (if (= (car dir) 0) :horizontal-line :vertical-line))
                           ((and (equal dir-prev '(1  0)) (equal dir '(0 -1))) :lower-right-corner)
                           ((and (equal dir-prev '(1  0)) (equal dir '(0  1))) :lower-left-corner)
  
positive.code:                         ((and (equal dir-prev '(0 -1)) (equal dir '(-1 0))) :lower-left-corner)
                          ((and (equal dir-prev '(0 -1)) (equal dir '(1  0))) :upper-left-corner)))
           (add-char scr ch)
           (let ((pos-trial (list (+ (car pos) (car dir)) (+ (cadr pos) (cadr dir)))))
             (if (or (= (car pos-trial)  0)
                     (= (cadr pos-trial) 0)
                     (= (car pos-trial)  (1- (height scr)))
                     (= (cadr pos-trial) (1- (width scr))))
                 (setf pos (list (round (/ (height scr) 2)) (round (/ (width scr) 2))))
                 (setf pos pos-trial)))
           (if (> i (random 5))
               (progn (setf i 0)
  
negative.code: ;; https://www.youtube.com/watch?v=T4n87IIa--U
  (defun pipes ()
    (with-screen (scr :input-echoing nil :input-blocking nil :enable-function-keys t :cursor-visible nil)
      (let* ((pos (center-position scr))
             (dirs '((1 0) (-1 0) (0 -1) (0 1)))
             (dir (nth (random 4) dirs))
             (dir-prev dir)
             (ch nil)
             (i 0))
        (clear scr)
        (box scr)
  