0

我正在尝试制作一个非常简单的 Nim 游戏,它可能甚至不被认为是 Nim 的正确实现,但我只是开始 Clojure。不知道为什么第四行的减法不起作用......

   1. (def nimBoard 10)
   2. (println "There are" nimBoard "objects left")
   3. (def in (read-line))
   4. (- nimBoard in)

我似乎无法提出一个可靠的算法来询问用户是否要从板上删除一个或两个“对象”,直到它为空为止。我来自 Java,但是这种语言的循环让我很困惑。我知道我想做的并不完全是《尼姆游戏》,而是为了练习。

我将不胜感激任何帮助:)

4

1 回答 1

3

由于in是您从标准输入中读取的字符串,因此您需要in在减法之前先转换为数字。尝试这个:

(defn parse-int [s]
      (Integer. (re-find  #"\d+" s )))
(- nimBoard (parse-int in))
于 2013-10-24T02:24:34.763 回答