summaryrefslogtreecommitdiff
path: root/number-guesser.scm
diff options
context:
space:
mode:
Diffstat (limited to 'number-guesser.scm')
-rw-r--r--number-guesser.scm31
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))