     ""
     [is-first-player state timeout grid-width grid-height]
     ; TODO Return if timeout
-    (let [[negamax-value move] (negamax-inner state Double/NEGATIVE_INFINITY Double/POSITIVE_INFINITY timeout is-first-player 3 grid-width grid-height)]
+    (let [[negamax-value move] (negamax-inner state Double/NEGATIVE_INFINITY Double/POSITIVE_INFINITY timeout is-first-player 5 grid-width grid-height)]
       (prn "Negamax-value" negamax-value)
         move))
 

            [clojure.math.combinatorics :as combo])
  (:gen-class))

(def width-heuristic-calculation 6)
(def directors {:h (map #(do [%1 0]) (range -5 6))
                :v (map #(do [0 %1]) (range -5 6))
                :d1 (map #(do [%1 %1]) (range -5 6))
                :d2 (map #(do [%1 (- %1)]) (range -5 6))})


(defn gen-heuristic-dictionary
  "Generate the dictionnary of heuristics values"


  (if
      (and
        (= (.indexOf list-to-check opponent) -1)
        (= (.indexOf list-to-check :wall) -1))
    (let [count-in-list (reduce #(+ %1 (if (= %2 player) 1 0)) 0 list-to-check)]
      (if (< count-in-list 3)
        (Math/pow 2 count-in-list)
