 (def board-height 11)
 (def init-block-count 12) ;; Init blocks for red, blue, green, gray
 (def players [:blue :red :green])
-
+(def directions [[-1 0] [1 0] [0 -1] [0 1] [-1 1] [1 1] [-1 -1] [1 -1]])
 
 ;; -----------------------------------------
 ;; INIT THE BOARD


(defn range-cells ;; TODO - Use the concept of sentinel for the walls?
  "Give all the cells in the provided direction - until you reach an empty / blocked / wall cell"
  [board [x y] [dx dy]]
  (eduction
    (comp
      (map (juxt #(get-in board %) identity))
      (take-while (comp is-cell-owned? first))
      (partition-by first)
      (map (juxt #(-> % first first) #(mapv second %))))
    (range-coord [x y] [dx dy])))

(defn available-cells-by-dir
  "Indicates the convertible cells for the provided player - when clicking at [x y]

(defn available-moves-at
  "Provides the list of moves that can be done from a cell"
  [board [x y]]
  (eduction (keep #(available-cells-by-dir board [x y] %)) directions))

(defn take-empty-cell-move
  "Create a move to take an empty cell" 
