Я новичок в Clojure.Как часть практики, я написал простую игру на угадывание, в которой пользователь должен угадать случайное число, выбранное программой в диапазоне от 1 до 100.У меня работает базовая версия (фрагмент кода 1).Теперь я хочу улучшить это, позволив пользователю вводить целое число от 1 до 100. Однако код, который я написал, чтобы пользователь не вводил строку, не работает (фрагмент кода 2), но код не работает, нетчто бы я ни пытался.
Фрагмент кода 1 (работает)
(ns guessing-game2.core
(:gen-class))
(defn -main []
(let [my-number (inc (rand-int 100))]
(println "I have a number between 1 and 100, guess it: ")
(loop [times 1]
(let [guess (Integer/parseInt (read-line))]
(if (= guess my-number)
(do
(println "You have found it in " times " tries!")
times)
(do
(cond
(< guess my-number) (println "My number is bigger, guess again: ")
(> guess my-number) (println "My number is smaller, guess again: "))
(recur (inc times))))))))
Фрагмент кода 2 (не работает)
(ns guessing-game.core
(:gen-class))
(defn -main []
(let [my-number (inc (rand-int 100))]
(println "I have a number between 1 and 100, guess it: ")
(loop [times 1]
(let [guess (Integer/parseInt (read-line))]
(if (and (integer? guess)
(< guess 100))
(if (= guess my-number)
(do
(println "You have found it in " times " tries!")
times)
(do
(cond
(< guess my-number) (println "My number is bigger, guess again: ")
(> guess my-number) (println "My number is smaller, guess again: "))))
(print "Please enter a number")
(recur (inc times))
)
))))