summaryrefslogtreecommitdiff
path: root/number-guesser.scm
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2024-05-18 14:34:37 -0600
committerbd <bdunahu@operationnull.com>2024-05-18 14:47:07 -0600
commit6eb36d8a2f317f2eb49832f3ee06f24204c9e4fb (patch)
tree3c6710d8116d8c3e65c070fa9fffc67ae653fcf9 /number-guesser.scm
Hello, Palindrome, & Number-Guesser code-bases
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))