Files
lisp-projects/games/GuessMyNumber/GuessMyNumber.lisp
2020-03-02 01:33:15 -06:00

47 lines
1.1 KiB
Common Lisp

(defparameter *small* 1)
(defparameter *big* 100)
(defun start-over ()
(defparameter *small* 1)
(defparameter *big* 100)
(guess-my-number)
)
(defun smaller()
(setf *small* (1- (guess-my-number)))
(print (guess-my-number))
)
(defun bigger()
(setf *big* (1+ (guess-my-number)))
(print (guess-my-number))
)
(defun guess-my-number ()
(ash (+ *small* *big*) -1)
)
(defun game-loop ()
(flet ((prompt (string)
(format "~A " string)
(finish-output)
(read nil 'eof nil)))
(fresh-line)
(let
((last "?"))
(loop while (not (equal last "="))
do (setf last (prompt (format t "Is '~A' Smaller (<) or Larger (>)?" (guess-my-number))))
(cond
((string= last "<") (smaller))
((string= last ">") (bigger))
((string= last "=") (start-over))
(t (print "Invalid Input") (print last) (fresh-line))
)
'DONE))
)
)
(print (equal "+" "+"))
(game-loop)