2013-10-24 44 views
0

我想做一個非常簡單的Nim遊戲,可能甚至不被認爲是Nim的適當實現,但我只是開始Clojure。不知道爲什麼,這個減法對4家不工作...減法不工作 - Clojure

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

我似乎無法拿出一個堅實的算法,詢問用戶是否要移除一個或兩個「對象」董事會,直到它是空的。我來自Java,但循環使用這種語言只是讓我很困惑。我知道我想做的不完全是Nim的遊戲,但它是爲了練習。

我希望得到任何幫助:)

回答

3

由於in是您從標準讀一個字符串,你需要先減法之前in轉換爲數字。試試這個:

(defn parse-int [s] 
     (Integer. (re-find #"\d+" s))) 
(- nimBoard (parse-int in)) 
+0

我剛剛意識到,當你發佈這個!完全忘了解析.. – ocbd

+0

完全理解。當你在學習一種新的語言時,有時候這些小東西會滑過這些裂縫。我仍然在學習Clojure。祝你好運! – Vidya