Mercurial > rlm
diff src/rlm/play.clj @ 0:78a630e650d2
initial import
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 18 Oct 2011 00:57:08 -0700 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/rlm/play.clj Tue Oct 18 00:57:08 2011 -0700 1.3 @@ -0,0 +1,22 @@ 1.4 +(ns rlm.play) 1.5 + 1.6 +(defn play 1.7 + ([] (play 10)) 1.8 + ([n] 1.9 + (loop [i 0 1.10 + state false 1.11 + turned-on (vec (repeat n false)) 1.12 + turned-off 0] 1.13 + (if (== turned-off (dec n)) 1.14 + i 1.15 + (let [p (rand-int n) 1.16 + i (inc i)] 1.17 + (if (not= p 0) 1.18 + (if (and (not state) (not (turned-on p))) 1.19 + (recur i true (assoc turned-on p true) turned-off) 1.20 + (recur i state turned-on turned-off)) 1.21 + (if state 1.22 + (recur i false turned-on (inc turned-off)) 1.23 + (recur i state turned-on turned-off)))))))) 1.24 + 1.25 +