20 lines
773 B
Text
20 lines
773 B
Text
(use (C Mine Your)
|
|
(let (Rock 0 Paper 0 Scissors 0)
|
|
(loop
|
|
(setq Mine
|
|
(let N (if (gt0 (+ Rock Paper Scissors)) (rand 1 @) 0)
|
|
(seek
|
|
'((L) (le0 (dec 'N (caar L))))
|
|
'(Rock Paper Scissors .) ) ) )
|
|
(prin "Enter R, P or S to play, or Q to quit: ")
|
|
(loop
|
|
(and (= "Q" (prinl (setq C (uppc (key))))) (bye))
|
|
(T (setq Your (find '((S) (pre? C S)) '(Rock Paper Scissors))))
|
|
(prinl "Bad input - try again") )
|
|
(prinl
|
|
"I say " (cadr Mine) ", You say " Your ": "
|
|
(cond
|
|
((== Your (cadr Mine)) "Draw")
|
|
((== Your (car Mine)) "I win")
|
|
(T "You win") ) )
|
|
(inc Your) ) ) )
|