我正在尝试制作一个非常简单的Nim游戏,可能甚至不被认为是Nim的正确实现,但我只是开始Clojure。不知道为什么第四行的这个减法不起作用......
1. (def nimBoard 10)
2. (println "There are" nimBoard "objects left")
3. (def in (read-line))
4. (- nimBoard in)
我似乎无法想出一个可靠的算法来询问用户是否要从板上移除一个或两个“对象”,直到它为空。我来自Java,但这种语言的循环让我很困惑。我知道我想要做的并不完全是尼姆的游戏,但它是为了练习。
我将不胜感激任何帮助:)
答案 0 :(得分:3)
由于in
是您从标准输入中读取的字符串,因此您需要在减法之前将in
转换为数字。试试这个:
(defn parse-int [s]
(Integer. (re-find #"\d+" s )))
(- nimBoard (parse-int in))