Nim game: Difference between revisions
Content added Content deleted
Basicgames (talk | contribs) |
TechAscent (talk | contribs) No edit summary |
||
Line 1,071: | Line 1,071: | ||
I take 2. |
I take 2. |
||
I win again. |
I win again. |
||
</pre> |
|||
=={{header|Clojure}}== |
|||
<syntaxhighlight lang="clojure">(loop [n 12] |
|||
(print (format "%s remain, take how many?\n> " n)) (flush) |
|||
(let [v (try (Long. (clojure.string/trim (read-line))) |
|||
(catch Exception _ 0))] |
|||
(if (#{1 2 3} v) |
|||
(do (println (format "You took %s, leaving %s, computer takes %s..." |
|||
v (- n v) (- 4 v))) |
|||
(if (= 4 n) |
|||
(println "Computer wins. 😐") |
|||
(recur (- n 4)))) |
|||
(do (println "Please enter 1, 2, or 3...") |
|||
(recur n))))) |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
Sample game: |
|||
<pre>harold@freeside:~/src/clj-nim$ rlwrap clj -M nim.clj |
|||
12 remain, take how many? |
|||
3 |
|||
You took 3, leaving 9, computer takes 1... |
|||
8 remain, take how many? |
|||
2 |
|||
You took 2, leaving 6, computer takes 2... |
|||
4 remain, take how many? |
|||
1 |
|||
You took 1, leaving 3, computer takes 3... |
|||
Computer wins. 😐 |
|||
</pre> |
</pre> |
||