Sha256: f375e396374d00b79f302e18b7677d53dac1dc562168892651f853c73ffae39b
Contents?: true
Size: 572 Bytes
Versions: 39
Compression:
Stored size: 572 Bytes
Contents
(ns dominoes) (defn rm [xs x] (let [i (.indexOf xs x)] (if (= -1 i) xs (vec (concat (take i xs) (drop (inc i) xs)))))) (defn connects [[a b] [c d]] (cond (= b c) [c d] (= b d) [d c] :else nil)) (defn backtrack [rem chain] (or (and (empty? rem) (= (ffirst chain) (second (peek chain)))) (and (not (empty? rem)) (some #(let [c (connects (peek chain) %)] (and c (backtrack (rm rem %) (conj chain c)))) rem)))) (defn can-chain? [xs] (or (empty? xs) (some #(backtrack (rm xs %) [%]) xs)))
Version data entries
39 entries across 39 versions & 1 rubygems