|
@@ -44,6 +44,9 @@
|
|
:players []
|
|
:players []
|
|
:bombs []})
|
|
:bombs []})
|
|
|
|
|
|
|
|
+(defn with-action [typ]
|
|
|
|
+ (fn [p] (= typ (get-in p [:action :type]))))
|
|
|
|
+
|
|
(defn check-positions [state]
|
|
(defn check-positions [state]
|
|
"Returns a vector of valid new player positions"
|
|
"Returns a vector of valid new player positions"
|
|
(let [{:keys [board players bombs]} state
|
|
(let [{:keys [board players bombs]} state
|
|
@@ -66,7 +69,7 @@
|
|
(defn perform-movement [initial-state]
|
|
(defn perform-movement [initial-state]
|
|
(loop [state initial-state]
|
|
(loop [state initial-state]
|
|
(let [{players :players} state
|
|
(let [{players :players} state
|
|
- wants-to-move (fn [p] (= "move" (get-in p [:action :type])))
|
|
|
|
|
|
+ wants-to-move (with-action "move")
|
|
to-move (vec (map (fn [p]
|
|
to-move (vec (map (fn [p]
|
|
(let [p2 (assoc p :prev-pos (get p :pos))]
|
|
(let [p2 (assoc p :prev-pos (get p :pos))]
|
|
(if (wants-to-move p2)
|
|
(if (wants-to-move p2)
|