Fork me on GitHub
#clojure-italy
<
2017-08-20
>
reborg16:08:00

@mdallastella ho preso spunto dal tuo esempio per il movimento degli indici e giocato un po'. E' un po' codegolf a questo punto, ma questa fn qui sotto funziona (a dimensioni variabili). In ogni caso mi sono divertito 🙂

(defn winner? [player game]
  (let [size (count game)
        idxs (range size)]
    (->> [[x idx] [idx y] [idx idx] [idx (- (dec size) idx)]]
         (map (fn [[x y]] ((game x) y)))
         (for [x idxs y idxs idx idxs])
         (apply mapcat list)
         (partition size)
         (some #(apply = player %)))))

(winner? :x [[nil :x nil] [nil :x nil] [nil :x nil]])

mdallastella17:08:12

@reborg sicuramente più fico funzionale del mio 😄