Fala galera, tudo bem?
Eu estava seguindo os exercícios dos vídeos do curso de clojure, ai quando chegou no passo em que lê teclado, e etc (Aula 04), eu não consigo mais executar o código através do repl.
Pelo que vi, o erro é:
> lein repl
#error {
:cause Unable to resolve symbol: jogo in this context
:via
[{:type clojure.lang.Compiler$CompilerException
:message Syntax error compiling at (forca/core.clj:22:5).
:data #:clojure.error{:phase :compile-syntax-check, :line 22, :column 5, :source forca/core.clj}
:at [clojure.lang.Compiler analyze Compiler.java 6808]}
{:type java.lang.RuntimeException
:message Unable to resolve symbol: jogo in this context
:at [clojure.lang.Util runtimeException Util.java 221]}]
:trace
Eu vi num outro post que daria pra colocar o require e o resolve, mas só gostaria de entender o que fiz / o que mudou pra precisar dele agora! ahha é que nas aulas anteriores o jogo estava funcionando bem..
Muito obrigado desde já!
(ns forca.core
(:gen-class))
(def total-de-vidas 6)
(defn perdeu [] (print "Você perdeu"))
(defn ganhou [] (print "Você ganhou!"))
(defn letras-faltantes [palavra acertos]
(remove (fn [letra] (contains? acertos (str letra))) palavra))
(defn acertou-a-palavra-toda? [palavra acertos]
(empty? (letras-faltantes palavra acertos))
)
(defn le-letra! [] (read-line))
(defn acertou? [chute palavra] (.contains palavra chute))
(defn avalia-chute [chute vidas palavra acertos]
(if (acertou? chute palavra)
(jogo vidas palavra (conj acertos chute))
(jogo (dec vidas) palavra acertos)
)
)
(defn jogo [vidas palavra acertos]
(if (= vidas 0)
(perdeu)
(if (acertou-a-palavra-toda? palavra acertos)
(ganhou)
(avalia-chute (le-letra!) vidas palavra acertos)
)
)
)
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Hello, World!"))