diff --git a/project.clj b/project.clj index c4ea33d..a6b5bef 100644 --- a/project.clj +++ b/project.clj @@ -8,10 +8,11 @@ "build-signature-timestamp" "unset" "Implementation-Version" "unset" } - + :jvm-opts ["-Xmx2g"] :license {:name "GNU General Public License v2" :url "http://www.gnu.org/licenses/gpl-2.0.html"} - :plugins [[lein-marginalia "0.7.1"]] + :plugins [[lein-marginalia "0.7.1"] + [lein-gorilla "0.3.2"]] :dependencies [[org.clojure/clojure "1.5.1"] [org.clojure/math.combinatorics "0.0.7"] [org.clojure/tools.trace "0.7.8"] diff --git a/src/mw_engine/core.clj b/src/mw_engine/core.clj index b066fb3..8a0ca95 100644 --- a/src/mw_engine/core.clj +++ b/src/mw_engine/core.clj @@ -97,7 +97,7 @@ (let [state {:world (transform-world world init-rules) :rules rules}] (:world (last - (do-all + (doall (take generations (iterate transform-world-state state))))))) @@ -109,5 +109,12 @@ (dosync (ref-set r (transform-world (deref r) rules)))) (deref r))) + +(defn run-world3 + [world init-rules rules generations] + (reduce (fn [world _iteration] + (transform-world world rules)) + (transform-world world init-rules) + (range generations)))