diff options
Diffstat (limited to 'number-guesser.scm')
-rw-r--r-- | number-guesser.scm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/number-guesser.scm b/number-guesser.scm new file mode 100644 index 0000000..486eea5 --- /dev/null +++ b/number-guesser.scm @@ -0,0 +1,31 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Example game: ;; +;; scheme@(guile-user)> (start 60 70) ;; +;; $21 = 65 ;; +;; scheme@(guile-user)> (bigger) ;; +;; $22 = 68 ;; +;; scheme@(guile-user)> (bigger) ;; +;; $23 = 69 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; also see (info "(guile) Definition") + +(define lower 1) +(define upper 100) + +(define (start n m) + (set! lower (min n m)) + (set! upper (max n m)) + (guess)) + +;;;; helpers +(define (guess) + (quotient (+ lower upper) 2)) + +(define (smaller) + (set! upper (max lower (- (guess) 1))) + (guess)) + +(define (bigger) + (set! lower (min upper (+ (guess) 1))) + (guess)) |