さて、最後の質問です。CommonLispでの数字推測ゲームを終了します。:Dゲームが開始する(または最初のゲームの後に新しいゲームが開始される)たびに、次の関数が呼び出されます。
;;; Play the game
(defun play ()
;; If it's their first time playing this session,
;; make sure to greet the user.
(unless (> *number-of-guesses* 0)
(welcome-user))
;; Reset their remaining guesses
(setq *number-of-guesses* 0)
;; Set the target value
(setq *target*
;; Random can return float values,
;; so we must round the result to get
;; an integer value.
(round
;; Add one to the result, because
;; (random 100) yields a number between
;; 0 and 99, whereas we want a number
;; from 1 to 100 inclusive.
(+ (random 100) 1)))
(if (eql (prompt-for-guess) t)
(play)
(quit)))
したがって、おそらく、プレーヤーがゲームを開始するたびに、*target*
1〜100の新しいランダムな整数に設定する必要があります。ただし、毎回、デフォルトで82になります。ランダムに行動*target*
させるにはどうすればよいですか?(random)