├── historie1.txt └── src ├── helper.clj ├── code.clj ├── test.clj └── zombiespill.clj /historie1.txt: -------------------------------------------------------------------------------- 1 | 2 | En ___ historie 3 | --------------- 4 | 5 | Det var en gang en ___ jente og 6 | en ___ gutt som gikk på en 7 | skikkelig ___ skole. 8 | 9 | Jenta likte engelsktimen, fordi den var 10 | så ___ og veldig ___. 11 | 12 | Gutten likte mattetimen, fordi den var 13 | veldig ___ og litt ___. 14 | 15 | Alle barna syns det var 16 | en ___ og ___ skole. 17 | -------------------------------------------------------------------------------- /src/helper.clj: -------------------------------------------------------------------------------- 1 | (ns helper 2 | (:refer-clojure :exclude [replace]) 3 | (:require [clojure.string :as str])) 4 | 5 | (defn ask [& txts] 6 | (print (str (str/join txts) " ")) 7 | (flush) 8 | (read-line)) 9 | 10 | (defn say [& txts] 11 | (println (str/join txts)) 12 | (Thread/sleep 300)) 13 | 14 | (defn replace [s re f] 15 | (str/replace s re (fn [_] (f)))) 16 | 17 | (defn number [s] 18 | (if (string? s) 19 | (Integer/parseInt s) 20 | s)) 21 | 22 | (defn add [a b] 23 | (+ (number a) (number b))) 24 | 25 | (defn subtract [a b] 26 | (- (number a) (number b))) 27 | 28 | (defn random [coll] 29 | (rand-nth coll)) 30 | -------------------------------------------------------------------------------- /src/code.clj: -------------------------------------------------------------------------------- 1 | (ns code 2 | (:refer-clojure :exclude [replace]) 3 | (:require [clojure.string :as str] 4 | [helper :refer [ask say replace add subtract random]])) 5 | 6 | (defn -main []) 7 | 8 | (comment 9 | (say "polien") 10 | (say "polito") 11 | (say "politre") 12 | (say "polifire") 13 | (say "polifem") 14 | (say "poliseks") 15 | (say "polisju") 16 | (say "poliåtte") 17 | (say "polini") 18 | (say "politi") 19 | 20 | (dotimes [i 1000] 21 | (say "rema " i))) 22 | 23 | (def the-name (ask "hva heter du?")) 24 | 25 | (def nice-things ["kul" 26 | "flink" 27 | "god" 28 | "snill" 29 | "morsom"]) 30 | 31 | (say the-name " er " (rand-nth nice-things)) 32 | -------------------------------------------------------------------------------- /src/test.clj: -------------------------------------------------------------------------------- 1 | (ns test 2 | (:refer-clojure :exclude [replace]) 3 | (:require [clojure.string :as str] 4 | [helper :refer [ask say replace add subtract]])) 5 | 6 | (defn -main []) 7 | 8 | (def the-name (ask "Hei! Hva heter du?")) 9 | 10 | (say the-name " er kul") 11 | 12 | (def the-age (ask "Hvor gammel er du, " the-name "?")) 13 | 14 | (say "Oi, så stor! Om ti år er du " (add the-age 10) "!") 15 | 16 | (say (replace (slurp "historie1.txt") 17 | #"___" 18 | #(ask "Har du et adjektiv?"))) 19 | 20 | (dotimes [n 5] 21 | (println) 22 | (def the-name (ask "Hei! Hva heter du?")) 23 | 24 | (def kind-words ["kul" "snill" "flink" "smart" "morsom" "hyggelig" "koselig"]) 25 | 26 | (say the-name " er " (random kind-words))) 27 | -------------------------------------------------------------------------------- /src/zombiespill.clj: -------------------------------------------------------------------------------- 1 | (ns zombiespill 2 | (:refer-clojure :exclude [replace]) 3 | (:require [clojure.string :as str] 4 | [helper :refer [ask say replace add subtract random]])) 5 | 6 | (defn -main []) 7 | 8 | (defn begge-zombiene-tatt [] 9 | (say " gutten tar begge zombiene.")) 10 | 11 | (defn zombiene-kommer-inn [] 12 | (say " zombiene kommer inn i garasjen")) 13 | 14 | (defn gutten-tok-en-zombie [] 15 | (say " gutten klarer bare å ta en zombie") 16 | (say " hva skal han gjøre?") 17 | (say " 1. finne et annet våpen ") 18 | (say " 2. lokke garasjeporten") 19 | (def the-answer (ask ":")) 20 | (case the-answer 21 | "1." (say " han klarer å ta zombien") 22 | "2." (say " zombien klarer ikke å ta gutten så han går sin vei"))) 23 | 24 | (defn starten-av-spillet [] 25 | (say " Det var en gang en gutt som måtte forsvare seg mot zombier.") 26 | (say " Han står i garasjen. Utenfor står det to zombier.") 27 | (say " Hva skal han bruke som våpen?") 28 | (say " 1. maskingevær") 29 | (say " 2. feiekost") 30 | (say " 3. øks") 31 | 32 | (def the-answer (ask ":")) 33 | 34 | (case the-answer 35 | "1" (begge-zombiene-tatt) 36 | "1." (begge-zombiene-tatt) 37 | "2" (zombiene-kommer-inn) 38 | "2." (zombiene-kommer-inn) 39 | "3" (gutten-tok-en-zombie) 40 | "3." (gutten-tok-en-zombie))) 41 | 42 | (starten-av-spillet) 43 | --------------------------------------------------------------------------------