Skip to content

Instantly share code, notes, and snippets.

@renanreismartins
Created November 2, 2015 09:05
Show Gist options
  • Save renanreismartins/2ce9c2d58945d7d98733 to your computer and use it in GitHub Desktop.
Save renanreismartins/2ce9c2d58945d7d98733 to your computer and use it in GitHub Desktop.
(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? [letra palavra]
(.contains palavra letra))
(defn imprime-forca [vidas palavra acertos]
(println "Vidas: " vidas)
(doseq [letra (seq palavra)]
(if (contains? acertos (str letra))
(print letra " ")
(print "_" " ")))
(println))
(defn jogo [vidas palavra acertos]
(imprime-forca vidas palavra acertos)
(cond
(= vidas 0) (print "perdeu...")
(acertou-a-palavra-toda? palavra acertos) (ganhou)
:else
(let [letra (le-letra!)]
(if (acertou-chute? letra palavra)
(do
(println "Acertou a letra!")
(recur vidas palavra (conj acertos letra)))
(do
(println "Errou a letra! Perdeu vida!")
(recur (dec vidas) palavra acertos))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment