Fix linting issues

This commit is contained in:
Simon Brooke 2021-12-09 21:20:31 +00:00
parent 630309719e
commit 67a43279f6
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
6 changed files with 19 additions and 35 deletions

View file

@ -1,10 +1,7 @@
(ns ^{:doc "Functions to transform a world and run rules." (ns ^{:doc "Functions to transform a world and run rules."
:author "Simon Brooke"} :author "Simon Brooke"}
mw-engine.core mw-engine.core
(:require [clojure.core.reducers :as r] (:require [mw-engine.utils :refer [get-int-or-zero map-world]]
[clojure.string :refer [join]]
[mw-engine.world :as world]
[mw-engine.utils :refer [get-int-or-zero map-world]]
[taoensso.timbre :as l])) [taoensso.timbre :as l]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -68,16 +65,16 @@
(let [result (apply rule (list cell world))] (let [result (apply rule (list cell world))]
(cond (cond
(and result source) (merge result {:rule source}) (and result source) (merge result {:rule source})
true result)))) :else result))))
(defn- apply-rules (defn- apply-rules
"Derive a cell from this `cell` of this `world` by applying these `rules`." "Derive a cell from this `cell` of this `world` by applying these `rules`."
[world cell rules] [world cell rules]
(cond (empty? rules) cell (cond (empty? rules) cell
true (let [result (apply-rule world cell (first rules))] :else (let [result (apply-rule world cell (first rules))]
(cond result result (cond result result
true (apply-rules world cell (rest rules)))))) :else (apply-rules world cell (rest rules))))))
(defn- transform-cell (defn- transform-cell
@ -104,16 +101,6 @@
(map-world world transform-cell (list rules))) (map-world world transform-cell (list rules)))
(defn- transform-world-state
"Consider this single argument as a map of `:world` and `:rules`; apply the rules
to transform the world, and return a map of the new, transformed `:world` and
these `:rules`. As a side effect, print the world."
[state]
(let [world (transform-world (:world state) (:rules state))]
;;(world/print-world world)
{:world world :rules (:rules state)}))
(defn run-world (defn run-world
"Run this world with these rules for this number of generations. "Run this world with these rules for this number of generations.

View file

@ -1,9 +1,6 @@
(ns ^{:doc "Simple functions to allow a world to be visualised." (ns ^{:doc "Simple functions to allow a world to be visualised."
:author "Simon Brooke"} :author "Simon Brooke"}
mw-engine.display mw-engine.display)
(:require [hiccup.core :refer [html]]
mw-engine.utils
mw-engine.world))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
@ -32,9 +29,10 @@
"Base url (i.e., url of directory) from which to load tile images." "Base url (i.e., url of directory) from which to load tile images."
"img/tiles") "img/tiles")
(defn format-css-class [state] (defn format-css-class
"Format this `state`, assumed to be a keyword indicating a state in the "Format this `state`, assumed to be a keyword indicating a state in the
world, into a CSS class" world, into a CSS class"
[state]
(subs (str state) 1)) (subs (str state) 1))

View file

@ -145,7 +145,7 @@
if applied sequentially from the highest altitude to the lowest, see if applied sequentially from the highest altitude to the lowest, see
`flow-world-nr`." `flow-world-nr`."
[cell world] [cell world]
(if (= (- max-altitude (get-int-or-zero cell :generation)) (when (= (- max-altitude (get-int-or-zero cell :generation))
(get-int-or-zero cell :altitude)) (get-int-or-zero cell :altitude))
(merge cell (merge cell
{:flow (reduce + {:flow (reduce +
@ -167,7 +167,7 @@
(cond (cond
(not (nil? (:flow cell))) cell (not (nil? (:flow cell))) cell
(<= (or (:altitude cell) 0) *sealevel*) cell (<= (or (:altitude cell) 0) *sealevel*) cell
true :else
(merge cell (merge cell
{:flow (+ (:rainfall cell) {:flow (+ (:rainfall cell)
(apply + (apply +
@ -200,8 +200,8 @@
;; if it's already tagged as a lake, it's a lake ;; if it's already tagged as a lake, it's a lake
(:lake cell) cell (:lake cell) cell
(let (let
[outflow (min (map :altitude (get-neighbours world cell)))] [outflow (apply min (map :altitude (get-neighbours world cell)))]
(if-not (when-not
(> (:altitude cell) outflow) (> (:altitude cell) outflow)
(assoc cell :lake true))))) (assoc cell :lake true)))))
@ -211,7 +211,7 @@
) )
(defn run-drainage (defn run-drainage
[hmap]
"Create a world from the heightmap `hmap`, rain on it, and then compute river "Create a world from the heightmap `hmap`, rain on it, and then compute river
flows." flows."
[hmap]
(flow-world (rain-world (flood-hollows (heightmap/apply-heightmap hmap))))) (flow-world (rain-world (flood-hollows (heightmap/apply-heightmap hmap)))))

View file

@ -1,8 +1,7 @@
(ns ^{:doc "A set of MicroWorld rules describing a simplified natural ecosystem." (ns ^{:doc "A set of MicroWorld rules describing a simplified natural ecosystem."
:author "Simon Brooke"} :author "Simon Brooke"}
mw-engine.natural-rules mw-engine.natural-rules
(:require [mw-engine.utils :refer :all] (:require [mw-engine.utils :refer [get-int get-neighbours get-neighbours-with-state member?]]))
[mw-engine.world :refer :all]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;

View file

@ -137,7 +137,7 @@
* `x` a number which may or may not be a valid x coordinate within that world; * `x` a number which may or may not be a valid x coordinate within that world;
* `y` a number which may or may not be a valid y coordinate within that world." * `y` a number which may or may not be a valid y coordinate within that world."
[world x y] [world x y]
(when (in-bounds world x y) (when (in-bounds? world x y)
(nth (nth world y) x))) (nth (nth world y) x)))
@ -150,7 +150,7 @@
(if (map? map) (if (map? map)
(let [v (map key)] (let [v (map key)]
(cond (and v (integer? v)) v (cond (and v (integer? v)) v
true 0)) :else 0))
(throw (Exception. "No map passed?")))) (throw (Exception. "No map passed?"))))
@ -308,7 +308,7 @@
"Return a world like this `world`, but merge the values from this `cell` with "Return a world like this `world`, but merge the values from this `cell` with
those from the cell in the world with the same co-ordinates" those from the cell in the world with the same co-ordinates"
[world cell] [world cell]
(if (in-bounds world (:x cell) (:y cell)) (if (in-bounds? world (:x cell) (:y cell))
(map-world world (map-world world
#(if #(if
(and (and

View file

@ -56,7 +56,7 @@
* `height` y coordinate of the next cell to be created." * `height` y coordinate of the next cell to be created."
[index width height] [index width height]
(cond (= index width) nil (cond (= index width) nil
true (cons (make-cell index height) :else (cons (make-cell index height)
(make-world-row (inc index) width height)))) (make-world-row (inc index) width height))))
@ -69,7 +69,7 @@
* `height` total height of the matrix, in cells." * `height` total height of the matrix, in cells."
[index width height] [index width height]
(cond (= index height) nil (cond (= index height) nil
true (cons (apply vector (make-world-row 0 width index)) :else (cons (apply vector (make-world-row 0 width index))
(make-world-rows (inc index) width height)))) (make-world-rows (inc index) width height))))
(defn make-world (defn make-world
@ -87,7 +87,7 @@
[cell limit] [cell limit]
(let [s (:state cell)] (let [s (:state cell)]
(cond (> (count (str s)) limit) (subs s 0 limit) (cond (> (count (str s)) limit) (subs s 0 limit)
true s))) :else s)))
(defn format-cell (defn format-cell