     (assoc ship :direction direction
                 :speed speed
                 :position position
-                :shots shots
-                )))
+                :shots shots)))
 
 (defmethod move :shot [{:keys [position speed] :as shot}]
   (let [position (vec+vec speed position)]

    (fill-polygon g polygon color)
    (fill-polygon g cockpit-polygon cockpit-color)))

(defmethod paint :shot [g {:keys [shape color] :as object}]
  (let [transformation (get-transformation-matrix object point-size)
        polygon (polygon-to-screen shape transformation)]
    (fill-polygon g polygon color)))

(defmethod paint :asteroid [g {:keys [shape color] :as object}]
  (let [transformation (get-transformation-matrix object point-size)
        polygon (polygon-to-screen shape transformation)]
    (draw-polygon g polygon color)))

                      (let [angle (* 2 (Math/PI) (/ n num-points))
                            length (random (- 1 asteroid-jaggedness) (+ 1 (/ asteroid-jaggedness 2)))]
                        (rotate-vec angle [0 length])))
         shape (map make-point (range num-points))
         debris? (< size asteroid-min-size)]
     {:type           (if debris? :debris :asteroid)

      :size           (vary asteroid-size-variance size)
      :shape          shape
      :color          (Color. 250 240 (if debris? 150 20))

      :position       position
      :speed          speed
