anchor.diff:        ((null (cdr l)) ())
         (t (cons (cadr l) (even (cddr l))))
      )
  +)
  +
  +(defun line (a b c)
  +   (setf l (list a b c))
  +   (setf wcond '(
  +      (nw n ne) (e c w) (sw s se)
  +      (nw w sw) (n c s) (ne e se)
  +      (ne c sw) (nw c se)
  +   ))
  +   (dolist (w wcond)
  +      (cond
  +         ((eq (length (intersection w l)) 3)
  +            t
  +         )
  +      )
  +   )
  +   nil
   )
   
   ; TODO
  
positive.code:    )
  )
  
  ; TODO
  ; be able to visualize plays with nil in them
  (defun visualize (lst)
     ;(drawrow '(nw n ne) lst)
     ;(format t "~%")
     ;(drawrow '(w c e) lst)
     ;(format t "~%")
     ;(drawrow '(sw s se) lst)
     ;(format t "~%")
     (format t "~S~%" lst)
  )
  
  ; find the highest score for a given 'winning' outcome
  
negative.code:          ((eq player 'x)
              (setf move (make-move x report))
           )
           ((eq player 'o)
              (setf move (make-move o report))
           )
        )
  