               \p
               (if (= \g (get-tile current-map pos))
                 [(set-tile current-map pos \p) pos (+ score gold-value)]
-                [current-map pos (- score action-penalty)]))))
+                [current-map pos (- score pick-up-penalty)]))))
         iteration (iterate make-step [the-map [1 1] 0])
         [_ final-pos final-score] (nth iteration simul-steps)]
     final-score))

(def multipliers (map (fn [n] (** (count tiles) n)) (range 5))) ; Used to calculate genes to use.
(def dir-vects ['(0 -1) '(0 1) '(-1 0) '(1 0) '(0 0)]) ; Direction vectors, corresponding to the 5 actions.

(def mutation-prob 4) ; Probability in 100 that a gene will mutate.
(def action-penalty 5) ; How many points robot loses when hitting the wall or picking up when it shouldn't.
(def gold-value 10) ; How many points picking up gold is worth.



                  (fn [the-pos]
                    (if (not= \w (get-tile current-map the-pos))
                      [current-map the-pos score]
                      [current-map pos (- score wall-penalty)]))]
            ;(print pos)
            (case action
              (\l \r \u \d)
