From 58003b5a41dfbeff9b66b78f135f468f552d6c71 Mon Sep 17 00:00:00 2001 From: Aleksey Pirogov Date: Sun, 15 Jul 2018 19:46:50 +0300 Subject: [PATCH 1/2] slightly refactor the game logic --- src/cljs/gol/core.cljs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/cljs/gol/core.cljs b/src/cljs/gol/core.cljs index 6e03d2c..8557001 100644 --- a/src/cljs/gol/core.cljs +++ b/src/cljs/gol/core.cljs @@ -29,18 +29,16 @@ (defn populate [w h state] (let [all (for [x (range w) - y (range h)] - (let [p [x y]] - [p (neibs w h p state)])) - dead (->> all - (filter (fn [[_ n]] (or (< n 2) (> n 3)))) - (map first) - set) - born (->> all - (filter (fn [[_ n]] (= n 3))) - (map first) - set - (#(clojure.set/difference % state)))] + y (range h) + :let [p [x y]]] + [p (neibs w h p state)]) + only (fn [pred] + (->> all + (filter (comp pred first)) + (map first) + set)) + dead (only #(or (< % 2) (> % 3))) + born (only #(= % 3))] (-> state (clojure.set/difference dead) (clojure.set/union born)))) @@ -95,5 +93,3 @@ (defn init! [] (mount-root)) - - From 682d158e0d8f59af9a32babc6ae5c00eae7ecba4 Mon Sep 17 00:00:00 2001 From: andmed Date: Thu, 26 Jul 2018 10:32:41 +0300 Subject: [PATCH 2/2] fix a bug ;) --- src/cljs/gol/core.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cljs/gol/core.cljs b/src/cljs/gol/core.cljs index 8557001..9d87135 100644 --- a/src/cljs/gol/core.cljs +++ b/src/cljs/gol/core.cljs @@ -34,7 +34,7 @@ [p (neibs w h p state)]) only (fn [pred] (->> all - (filter (comp pred first)) + (filter (comp pred second)) (map first) set)) dead (only #(or (< % 2) (> % 3)))