Guest User

Untitled

a guest
Jan 23rd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. (ns t3)
  2.  
  3. (defn- which-char? [coll]
  4. (let [freqs (frequencies coll)
  5. freq (fn [c] (get freqs c 0))]
  6. (cond
  7. (> (freq \x) (freq \0)) \0
  8. (< (freq \x) (freq \0)) \x
  9. :else (rand-nth "0x"))))
  10.  
  11. (defn- playe­r [coll­]
  12. "0 gets to play first ... apparently :)"
  13. (let [freq­s (freq­uencies coll)
  14. ­ freq #(get­ freqs­ % 0)]
  15. (cond­ (ever­y? #{\-}­ coll)­ \0
  16. (>= (freq­ \x) (freq­ \0)) \0
  17. :else­ \x)))
  18.  
  19. (defn play [coll]
  20. (let [char (which-char? coll)
  21. place (fn [n] (flatten [(take n coll) char (drop (inc n) coll)]))
  22. free (map first (filter #(= (second %) \-) (map-indexed vector coll)))
  23. free? (fn [n] (some #(= % n) free))
  24. evens (filter even? free)]
  25. (apply str (place (cond
  26. (free? 4) 4
  27. (seq evens) (rand-nth evens)
  28. :else (rand-nth free))))))
Add Comment
Please, Sign In to add comment