     (q/ellipse 550 250 ball-size ball-size))
 
   {:player {:x 59 :y 250}
-   :computer {:x 1040 :y 250}
-   :ball {:x 550 :y 250}
+   :cpu    {:x 1040 :y 250}
+   :ball   {:x 550 :y 250
+            :dx (+ 1 (rand-nth (range 3)))
+            :dy (+ 1 (rand-nth (range 3)))}
    :is-running? false})
 
 (defn move-player-paddle

  [state]
  (if (:is-running? state)
    (as-> state state
      (update-in state [:ball :y] (:y-dir (:ball state)) ball-speed)
      (update-in state [:ball :x] (:x-dir (:ball state)) ball-speed))
    state))

(defn handle-input

    :r (init-game)
    state))

(defn on-collision
  [state]
  (let [ball-x (:x (:ball state))
        ball-y (:y (:ball state))
        top-wall (+ 9 7.5 2)
