(def GOAL 0) (def wall 2000) (def wide 60) ;; constant for map width, used for treating a 1D array as 2D. (defn find-cells [^doubles a cell-kind] (persistent! (areduce ^doubles a i ret (transient {}) (if (= (aget ^doubles a i) cell-kind) (assoc! ret i cell-kind) ret)))) (defn find-goals [^doubles a] (find-cells a GOAL)) (defn find-walls [^doubles a] (persistent! (areduce ^doubles a i ret (transient {}) (if (>= (aget ^doubles a i) wall) (assoc! ret i wall) ret)))) (defn find-floors [^doubles a] (defn find-lowest [^doubles a] (let [low-val (apply min (vec a))] (find-cells a low-val))) (defn find-monsters [m] (into {} (for [mp (map #(:pos @%) m)] [mp wall]))) (defn dijkstra ([a] (do (dijkstra a (find-walls a) (find-lowest a)))) ([a closed open-cells] (let [open (atom open-cells)] (while (not (empty? @open)) (let [newly-open (atom {})] (doall (for [[i v] @open] (let [n (- i wide) s (+ i wide) w (- i 1 ) e (+ i 1 ) ] (if (or (closed n) (@open n) (>= (inc v) (hiphip/aget a n))) nil (do (hiphip/aset a n (inc v)) (swap! newly-open assoc n (inc v)))) (if (or (closed s) (@open s) (>= (inc v) (hiphip/aget a s))) nil (do (hiphip/aset a s (inc v)) (swap! newly-open assoc s (inc v)))) (if (or (closed w) (@open w) (>= (inc v) (hiphip/aget a w))) nil (do (hiphip/aset a w (inc v)) (swap! newly-open assoc w (inc v)))) (if (or (closed e) (@open e) (>= (inc v) (hiphip/aget a e))) nil (do (hiphip/aset a e (inc v)) (swap! newly-open assoc e (inc v)))) ))) (reset! open @newly-open))) a)))
Standard input is empty
Standard output is empty
Exception in thread "main" java.lang.RuntimeException: No such namespace: hiphip, compiling:(/home/N9oXbU/prog.clj:40:57) at clojure.lang.Compiler.analyze(Compiler.java:6379) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3572) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:947) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6554) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2676) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2676) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2663) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3623) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3572) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5937) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2663) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2498) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.access$100(Compiler.java:37) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5972) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3623) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6008) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.access$100(Compiler.java:37) at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:528) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559) at clojure.lang.Compiler.analyze(Compiler.java:6360) at clojure.lang.Compiler.analyze(Compiler.java:6321) at clojure.lang.Compiler.eval(Compiler.java:6622) at clojure.lang.Compiler.load(Compiler.java:7062) at clojure.lang.Compiler.loadFile(Compiler.java:7019) at clojure.main$load_script.invoke(main.clj:286) at clojure.main$script_opt.invoke(main.clj:348) at clojure.main$main$fn__6676.invoke(main.clj:432) at clojure.main$main.doInvoke(main.clj:429) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.lang.Var.invoke(Var.java:415) at clojure.lang.AFn.applyToHelper(AFn.java:161) at clojure.lang.Var.applyTo(Var.java:532) at clojure.main.main(main.java:37) Caused by: java.lang.RuntimeException: No such namespace: hiphip at clojure.lang.Util.runtimeException(Util.java:219) at clojure.lang.Compiler.resolveIn(Compiler.java:6843) at clojure.lang.Compiler.resolve(Compiler.java:6817) at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6778) at clojure.lang.Compiler.analyze(Compiler.java:6342) ... 228 more