# HG changeset patch # User Robert McIntyre # Date 1331321042 21600 # Node ID 04d539d26bdc8a06523925c5f9b525d01c774acc # Parent db8e0a563c8e28dae33b33c1cc3f0e478a6ba0ff going to try using zippers diff -r db8e0a563c8e -r 04d539d26bdc clojure/com/aurellem/gb_driver.clj --- a/clojure/com/aurellem/gb_driver.clj Fri Mar 09 01:43:25 2012 -0600 +++ b/clojure/com/aurellem/gb_driver.clj Fri Mar 09 13:24:02 2012 -0600 @@ -137,12 +137,13 @@ ([n] (goto (- @current-frame n)))) (defn backup-state - [frame] + ([] (backup-state (frame))) + ([frame] (let [save (save-state)] (swap! history #(assoc % frame save)) ;;(store-save-to-disk save) (if (> (count @history) *max-history*) - (swap! history #(dissoc % (first (first %))))))) + (swap! history #(dissoc % (first (first %)))))))) (defn advance [] (if *save-history* @@ -160,9 +161,13 @@ (defn play-moves ([start moves] (goto start) - (dorun (map step moves))) + (dorun (map step moves)) + (backup-state) + (frame)) ([moves] - (dorun (map step moves)))) + (dorun (map step moves)) + (backup-state) + (frame))) (defn play ([] (play Integer/MAX_VALUE)) diff -r db8e0a563c8e -r 04d539d26bdc clojure/com/aurellem/title.clj --- a/clojure/com/aurellem/title.clj Fri Mar 09 01:43:25 2012 -0600 +++ b/clojure/com/aurellem/title.clj Fri Mar 09 13:24:02 2012 -0600 @@ -138,3 +138,4 @@ [] [] [] [] [] [ :a]]) +(require '(clojure [zip :as zip])) \ No newline at end of file