 (defn default-state [] {
     :time (now)
     :player { :x 100.0 :y 100.0 :xv 0.0 :yv 0.0 :a 0.0 :av 0.0 }
+    :next-fire-time (now)
     :asteroids (take 10 (repeatedly generate-asteroid))
 } )
 

                player)
        eff
            (Math/pow efficiency time-step)
        ]
    (step-thing player time-step eff)))

(defn asteroid-step [asteroid time-step]
    (step-thing asteroid time-step 1.0))

(defn game-step [state keys-pressed]
    (let [new-time (now) time-step (- new-time (:time state))]
        (assoc state
            :time new-time
            :player (player-step (:player state) time-step keys-pressed)
            :asteroids (map (fn [a] (asteroid-step a time-step)) (:asteroids state))
)))

(defn create-game []

(def angular-acceleration 10.0)
(def width 640)
(def height 480)
(def fire-delay 0.3)
(def bullet-velocity 100)

(defn do-mod [coll func v]
    (dosync (alter coll (fn [x] (apply func [x v])))))
