Mercurial > vba-clojure
diff clojure/com/aurellem/gb_driver.clj @ 82:04d539d26bdc
going to try using zippers
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Fri, 09 Mar 2012 13:24:02 -0600 |
parents | db8e0a563c8e |
children | 95cb2152d7cd |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb_driver.clj Fri Mar 09 01:43:25 2012 -0600 1.2 +++ b/clojure/com/aurellem/gb_driver.clj Fri Mar 09 13:24:02 2012 -0600 1.3 @@ -137,12 +137,13 @@ 1.4 ([n] (goto (- @current-frame n)))) 1.5 1.6 (defn backup-state 1.7 - [frame] 1.8 + ([] (backup-state (frame))) 1.9 + ([frame] 1.10 (let [save (save-state)] 1.11 (swap! history #(assoc % frame save)) 1.12 ;;(store-save-to-disk save) 1.13 (if (> (count @history) *max-history*) 1.14 - (swap! history #(dissoc % (first (first %))))))) 1.15 + (swap! history #(dissoc % (first (first %)))))))) 1.16 1.17 (defn advance [] 1.18 (if *save-history* 1.19 @@ -160,9 +161,13 @@ 1.20 (defn play-moves 1.21 ([start moves] 1.22 (goto start) 1.23 - (dorun (map step moves))) 1.24 + (dorun (map step moves)) 1.25 + (backup-state) 1.26 + (frame)) 1.27 ([moves] 1.28 - (dorun (map step moves)))) 1.29 + (dorun (map step moves)) 1.30 + (backup-state) 1.31 + (frame))) 1.32 1.33 (defn play 1.34 ([] (play Integer/MAX_VALUE))