Common Lisp 언어로 숫자 맞추기 게임을 작성해 보았다.

아래 소스의 18째 줄 (setf guess (parse-integer sbuf)) 는 스트링을 정수로 변환하는 과정이다.



소스 파일명: guessNumber01.lsp

  1. #!/usr/bin/env clisp
  2. ;;   Filename: guessNumber01.lsp
  3. ;;   Purpose:  Interatice game guessing a given number.
  4. ;;                 (if condition
  5. ;;                     (........)    ; when condition is true
  6. ;;                     (........)    ; when condition is flase
  7. ;;                 )
  8. ;;   Execute: clisp guessNumber01.lsp
  9. ;;                     ......
  10. ;;   Date: 2013. 9. 7.
  11. (defun doGuessing(num)
  12.     (let* ((sbuf "")
  13.            (guess 0))
  14.         (format t "Enter your guess:~%")
  15.         (setf sbuf (read-line))
  16.         (setf guess (parse-integer sbuf))
  17.         (if (= guess num)
  18.             (progn
  19.                 (format t "You win!~%")
  20.                 (quit)
  21.             )
  22.         )
  23.         ;; we won't get here if (= guessnum)
  24.         (if (< guess num)
  25.             (progn
  26.                 (format t "Too low!~%")
  27.                 (doGuessing num)
  28.             )
  29.             (progn
  30.                 (format t "Too high!~%")
  31.                 (doGuessing num)
  32.             )
  33.         )
  34.     )
  35. )
  36. (doGuessing 123)




실행> clisp guessNumber01.lsp
Enter your guess:
111
Too low!
Enter your guess:
222
Too high!
Enter your guess:
123
You win!



Posted by Scripter
,