RosettaCodeData/Task/Rock-paper-scissors/PicoLisp/rock-paper-scissors.l
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

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) ) ) )