This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-08-20
Channels
- # beginners (110)
- # boot (1)
- # cljs-experience (1)
- # clojure (58)
- # clojure-italy (4)
- # clojure-russia (1)
- # clojure-spec (4)
- # clojurescript (51)
- # cursive (2)
- # datomic (4)
- # devcards (4)
- # dirac (1)
- # figwheel (3)
- # fulcro (46)
- # hoplon (11)
- # om (4)
- # parinfer (7)
- # pedestal (1)
- # re-frame (11)
- # reagent (20)
- # specter (6)
- # unrepl (6)
@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]])
@reborg sicuramente più fico funzionale del mio 😄