This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-08-16
Channels
- # aleph (1)
- # architecture (5)
- # beginners (43)
- # boot (23)
- # cider (5)
- # cljs-dev (143)
- # clojure (42)
- # clojure-austin (4)
- # clojure-dusseldorf (14)
- # clojure-italy (15)
- # clojure-norway (1)
- # clojure-russia (10)
- # clojure-spec (41)
- # clojure-uk (70)
- # clojurescript (262)
- # cursive (3)
- # data-science (18)
- # datomic (66)
- # figwheel (1)
- # fulcro (39)
- # hoplon (21)
- # jobs-rus (1)
- # juxt (4)
- # lein-figwheel (2)
- # leiningen (4)
- # lumo (26)
- # off-topic (4)
- # om (6)
- # onyx (19)
- # parinfer (50)
- # pedestal (9)
- # portkey (10)
- # re-frame (41)
- # schema (5)
- # spacemacs (2)
- # yada (35)
Background anche a te! :)
@reborg che ne pensi di denormalizzare i dati per colonne, righe, diagonali, e poi ridurre per ottenere il vincitore?
Piu o meno è quel che fai. Pensavo di trasfomare:
[[nil :o :x]
[nil :x :o]
[:x nil nil]]
In questo:
'([nil :o :x] [nil :x :o] [:x nil nil] [nil nil :x] [:o :x nil] [:x :o nil] [:nil :x nil] [:x :x :x])
Ci sarebbe comunque pochissima differenza. In pausa ti faccio il codice. Forse risparmi una funzione. Comunque prova a farlo in java poi vediamo quanto è "tanto" il codice 😄
@kors credo sia lo stesso approccio, all
ritorna la lista delle righe, colonne e le 2 diagonali
@reborg io intanto ho guardato quello di Alex Miller, si accettano consigli per il prossimo da guardare 🙂
@mbarbieri interessante?
abbastanza, mostra cosa hanno cominciare a fare per implementare quello che diceva Rich nel keynote "Spec-ulation"
(def game [[nil :o :x]
[nil :x :o]
[:x nil nil]])
(defn columns
[game]
(map #((doseq [x (range 1 (count %))] (nth % x)))) game)
(defmacro retrieve-diag [map]
`(into [] (map #(get (last %) (first %)) ~map)))
(defn diags
[game]
(let [concat-game (into [] (concat game game))
progression (range 0 3)
diags-1 (retrieve-diag (zipmap progression game))
diags-2 (retrieve-diag (zipmap progression (reverse game)))]
[diags-1 diags-2]))
(defn win?
[game what]
(let [complete-game (concat game (columns game) (diags game))
reduced-game (map #(apply = what %) complete-game)]
(some true? reduced-game)))
(win? game :x) ; true
(win? game :o) ; nil
non credo sia tanto diverso. Il volume di codice più o meno è là . Forse mi sembra giusto più chiaro. Sono meno funzioni