                                Double/NEGATIVE_INFINITY
                                Double/POSITIVE_INFINITY
                                got-time?
-                               (not is-first-player)
+                               is-first-player
                                deepness         ; Steps
                                grid-width grid-height)]
         (when (not (empty? (point :best-move)))


  (if (empty? (state true))
    {:best-move [(long (/ grid-width 2)) (long (/ grid-height 2))]}
    (if (and (is-terminal-state? state)
             (is-it-a-win? grid-width grid-height state))
      (let [who-wins? (if (is-it-a-win? grid-width grid-height state)
                        (not is-first-player)
                        nil)]
        {:best-move  (state :last-move)
         :best-value (state :heuristic-result)
         :who-win?   who-wins?})

      (if (= max-depth 0)
        {:best-move  (state :last-move)

                  (= 0 prev-right-direct-streak)) 50000

                (<= 4 (+ prev-left-streak-count prev-left-partial-streak-count)) (+ prev-left-direct-streak prev-left-streak-count)
                :else 1))

            (opr
              (cond

                (not= :wall prev-right-streak-type) 0
                (= 4 prev-right-direct-streak) Double/POSITIVE_INFINITY
                (and
                  (= 3 prev-right-direct-streak)
