                         :flavortext "Which is unbiased?"
                         :answertext (map #(str % " ●") (cons x xs))}
          boards keymap guess]))))
+
+(defn decide-corr [x xs]
+  (let [game-state (atom {})
+        init-game! (fn []
+                     (let [boards (map #(puzzle muted-generator %) (cons x xs))
+                           choice (rand-int (count boards))]
+                      (swap! game-state assoc
+                             :boards boards
+                             :choice choice
+                             :guess nil)))
+        guess! (fn [guess]
+                 (swap! game-state assoc :guess guess))]
+    (init-game!)
+    (fn []
+      (let [{:keys [boards choice guess]} @game-state]
+        [board-decider {:on-guess #(guess! %)
+                        :on-reset #(init-game!)
+                        :flavortext "Was this generated by a fair random generator?"
+                        :answertext (map #(str "The dots flip with " % " chance.") (cons x xs))}
+         boards choice guess]))))
+
+(defn decide-bias [x xs]
+  (let [game-state (atom {})
+        init-game! (fn []
+                     (let [boards (map #(puzzle biased-generator %) (cons x xs))
+                           choice (rand-int (count boards))]
+                      (swap! game-state assoc
+                             :boards boards
+                             :choice choice
+                             :guess nil)))
+        guess! (fn [guess]
+                 (swap! game-state assoc :guess guess))]
+    (init-game!)
+    (fn []
+      (let [{:keys [boards choice guess]} @game-state]
+        [board-decider {:on-guess #(guess! %)
+                        :on-reset #(init-game!)
+                        :flavortext "Was this generated by an unbiased random generator?"
+                        :answertext (map #(str "The dots flip with " % " chance.") (cons x xs))}
+         boards choice guess]))))
 
 (defn main-page []
   (let [app-state (atom {:game nil})]

     [:button {:on-click #(on-reset) :style {:margin-top "0.5em"}}
      "play again"])])

(defn choose-corr [x xs]
  (let [game-state (atom {})
        init-game! (fn []

       (case (:game @app-state)
         "choose-corr" [choose-corr 0.5 [0.25 0.33 0.67 0.75]]
         "choose-bias" [choose-bias 0.5 [0.25 0.33 0.67 0.75]]
         "decide-corr" [decide-corr 0.5 [0.25 0.33 0.67 0.75]]
         "decide-bias" [decide-bias 0.5 [0.25 0.33 0.67 0.75]]
         nil)])))

(reagent/render-component [main-page]
