#lang racket
(define guesses-taken 0)
(display "Hello! What is your name?\n")
(define my-name (read-line (current-input-port) 'any))
(define number (random 1 21))
(define guess-int 0)
(printf "Well, ~a, I am thinking of a number between 1 and 20.\n" my-name)
(let loop()
(display "Take a guess.\n")
(define guess (read-line (current-input-port) 'any))
(set! guess-int (string->number guess))
;;(printf "hello ~a\n" guess-int)
(set! guesses-taken (add1 guesses-taken))
(when (< guess-int number) (printf "Your guess is too low.\n"))
(when (> guess-int number) (printf "Your guess is too high.\n"))
(when (and (< guesses-taken 6) (not (= guess-int number)))
(loop)))
(if (= guess-int number)
(printf "Good job, ~a! You guessed my number in ~a guesses!" my-name guesses-taken)
(printf "Nope. The number I was thinking of was ~a\n" number))
12-17
194