From 095654c11fc087b4813dcc54c0414c1a5331dfc1 Mon Sep 17 00:00:00 2001 From: Marduk Bolanos Date: Tue, 9 Sep 2025 18:31:03 +0200 Subject: [PATCH] Added the inverse diagonal winning path --- resources/public/cljs/replicant_tictactoe/game.cljs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/public/cljs/replicant_tictactoe/game.cljs b/resources/public/cljs/replicant_tictactoe/game.cljs index 3f62d7f..9296baf 100644 --- a/resources/public/cljs/replicant_tictactoe/game.cljs +++ b/resources/public/cljs/replicant_tictactoe/game.cljs @@ -13,10 +13,13 @@ path)) (defn get-winning-path [{:keys [size tics]} y x] - (or (winner? tics (mapv #(vector y %) (range 0 size))) - (winner? tics (mapv #(vector % x) (range 0 size))) - (when (= y x) - (winner? tics (mapv #(vector % %) (range 0 size)))))) + (let [flip-y (fn [y] (- size 1 y))] + (or (winner? tics (mapv #(vector y %) (range 0 size))) + (winner? tics (mapv #(vector % x) (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] (if-let [path (get-winning-path game y x)]