(dun-mprincl "That answer is incorrect.")))))
(defun dun-endgame-question ()
-(if (not dun-endgame-questions)
- (progn
- (dun-mprincl "Your question is:")
- (dun-mprincl "No more questions, just do ‘answer foo’.")
- (setq dun-correct-answer '("foo")))
- (let (which i newques)
- (setq i 0)
- (setq newques nil)
- (setq which (random (length dun-endgame-questions)))
- (dun-mprincl "Your question is:")
- (dun-mprincl (setq dun-endgame-question (car
- (nth which
- dun-endgame-questions))))
- (setq dun-correct-answer (cdr (nth which dun-endgame-questions)))
- (while (< i which)
- (setq newques (append newques (list (nth i dun-endgame-questions))))
- (setq i (1+ i)))
- (setq i (1+ which))
- (while (< i (length dun-endgame-questions))
- (setq newques (append newques (list (nth i dun-endgame-questions))))
- (setq i (1+ i)))
- (setq dun-endgame-questions newques))))
+ (let ((questions dun-endgame-questions))
+ (if (null questions)
+ (progn
+ (dun-mprincl "Your question is:")
+ (dun-mprincl "No more questions, just do ‘answer foo’.")
+ (setq dun-correct-answer '("foo")))
+ (let* ((which (random (length questions)))
+ (question (nth which questions)))
+ (dun-mprincl "Your question is:")
+ (dun-mprincl (setq dun-endgame-question (car question)))
+ (setq dun-correct-answer (cdr question))
+ (let ((i 0) res)
+ (dolist (q questions)
+ (when (/= i which)
+ (push q res))
+ (setq i (1+ i)))
+ (setq dun-endgame-questions (nreverse res)))))))
(defun dun-power (_args)
(if (not (= dun-current-room pc-area))