Penney's game: Difference between revisions

add PicoLisp
(Added ZX81 BASIC)
(add PicoLisp)
Line 1,600:
Hah, I win, and you lose!
Wanna play again? n</pre>
 
=={{header|PicoLisp}}==
<lang PicoLisp>(seed (in "/dev/urandom" (rd 8)))
 
(setq *S (list 0 0))
 
(de toss (N)
(make
(do N
(link (if (rand T) "T" "H")) ) ) )
 
(de comp (A Lst)
(or
(for ((I . L) Lst (cddr L) (cdr L))
(T (fully = A L) I) )
T ) )
 
(de score NIL
(prinl)
(prinl "Total score:")
(prinl "^Iuser: " (car *S))
(prinl "^Icomp: " (cadr *S)) )
 
(de play NIL
(let (C (toss 3) Lst (toss (rand 5 12)) U)
(prinl)
(prin "Select toss: ")
(setq U (in NIL (skip) (line)))
(prinl "Comp toss: " C)
(prinl "Toss: " Lst)
(setq @ (comp U Lst) @@ (comp C Lst) )
(cond
((< @ @@) (prinl "User win.") (inc *S))
((> @ @@) (prinl "Comp win.") (inc (cdr *S)))
(T (prinl "Draw, lets play again.")) )
(score) ) )
 
(de go NIL
(loop
(play)
(T
(prog
(prinl)
(prin "Want play again? Y/N: ")
(= "N" (uppc (in NIL (char)))) ) ) ) )
 
(go)</lang>
{{out}}
<pre>
Select toss: HTH
Comp toss: THT
Toss: HHTHTTHT
User win.
 
Total score:
user: 1
comp: 0
 
Want play again? Y/N: y
 
Select toss: HHH
Comp toss: HTH
Toss: THHHTTHTHHH
User win.
 
Total score:
user: 2
comp: 0
 
Want play again? Y/N: y
 
Select toss: TTT
Comp toss: THH
Toss: TTHTTHHHHTH
Comp win.
 
Total score:
user: 2
comp: 1
 
Want play again? Y/N: n
</pre>
 
=={{Header|Python}}==
298

edits