ZIRF2NNWUBC6ZEN4W5ERZVGDY7LDJSRAAVZZ4SYHVOLJICJOK33AC
(defun check-win (opp me) (= (mod (+ 1 opp) 3) (mod me 3)))
(defun check-loss (opp me) (= (mod (+ 2 opp) 3) (mod me 3)))
(defun win-against (x) (let ((tmp (mod (+ 2 x) 3))) (if (= tmp 0) 3 tmp)))
(defun lose-against (x) (+ 1 (mod x 3)))
(defun draw-against (x) x)
(defun check-draw (opp me) (= (draw-against me) opp))
(defun check-win (opp me) (= (win-against me) opp))
(defun check-loss (opp me) (= (lose-against me) opp))
(+ me (cond ((= opp me) draw-score)
((check-win opp me) win-score)
((check-loss opp me) loss-score)
(t (format t "WTF~%"))))))
(+ me (cond
((check-draw opp me) draw-score)
((check-win opp me) win-score)
((check-loss opp me) loss-score)
(t (format t "WTF~%"))))))