Added the inverse diagonal winning path

This commit is contained in:
Marduk Bolanos 2025-09-09 18:31:03 +02:00
parent f2517187bf
commit 095654c11f

View file

@ -13,10 +13,13 @@
path)) path))
(defn get-winning-path [{:keys [size tics]} y x] (defn get-winning-path [{:keys [size tics]} y x]
(or (winner? tics (mapv #(vector y %) (range 0 size))) (let [flip-y (fn [y] (- size 1 y))]
(winner? tics (mapv #(vector % x) (range 0 size))) (or (winner? tics (mapv #(vector y %) (range 0 size)))
(when (= y x) (winner? tics (mapv #(vector % x) (range 0 size)))
(winner? tics (mapv #(vector % %) (range 0 size)))))) (when (= y x)
(winner? tics (mapv #(vector % %) (range 0 size))))
(when (= (flip-y y) x)
(winner? tics (mapv #(vector (flip-y %) %) (range 0 size)))))))
(defn maybe-conclude [game y x] (defn maybe-conclude [game y x]
(if-let [path (get-winning-path game y x)] (if-let [path (get-winning-path game y x)]