     (update-in [:scores looser] - (count taken))
     ))
 
+(defn- get-move-at
+  "Access the available moves for the provided player at the provided point"
+  [game player point]
+  (get-in game [:moves player point]))
+
 (defn play-move
   "On player playing the move [x y]"
   [{:keys [player board] :as game} point]
-  (if-let [moves (get-in game [:moves player point])]
+  (if-let [moves (get-move-at game player point)]
     (->
       (reduce apply-move game moves)
       (apply-move (take-empty-cell-move player point))

   ])

(defn empty-cell
  [x y]
  (rect-cell x y "lightgray"
    {:on-click #(swap! app-state play-move [x y])}
    ))


  (with-available-moves
    {:board (new-board)
     :player (rand-nth players)
     :moves {}
     :help false
     :scores
     {:blue 12
      :red 12
