- (format "%s: Not a valid guess: %s" user message))
- (if (memq (aref message 0)
- (riece-hangman-context-guessed (cdr pointer)))
- (riece-hangman-reply (car targets)
- (format "%s: Already guessed '%c'"
- user (aref message 0)))
- (setq guessed (riece-hangman-context-set-guessed
- (cdr pointer)
- (cons (aref message 0)
- (riece-hangman-context-guessed
- (cdr pointer))))
- word (riece-hangman-context-word (cdr pointer)))
- (unless (catch 'found
- (setq index 0)
- (while (< index (length word))
- (if (eq (aref word index) (aref message 0))
- (throw 'found t))
- (setq index (1+ index))))
- (riece-hangman-context-set-missed-count
- (cdr pointer)
- (1+ (riece-hangman-context-missed-count (cdr pointer)))))
- (if (>= (riece-hangman-context-missed-count (cdr pointer)) 7)
- (progn
- (riece-hangman-reply
- (car targets)
- (format "%s: Sorry, the word was \"%s\""
- user
- (riece-hangman-context-word (cdr pointer))))
- (setq riece-hangman-player-context-alist
- (delq pointer
- riece-hangman-player-context-alist)))
- (if (catch 'missing
- (setq index 0)
- (while (< index (length word))
- (unless (memq (aref word index) guessed)
- (throw 'missing t))
- (setq index (1+ index))))
- (riece-hangman-reply-with-context user (car targets)
- (cdr pointer))
- (riece-hangman-reply (car targets)
- (format "%s: You got it!" user))
- (setq riece-hangman-player-context-alist
- (delq pointer
- riece-hangman-player-context-alist)))))))))))
+ (format "%s: Sorry, the word was \"%s\""
+ user
+ (riece-hangman-context-word (cdr pointer)))))
+ (if (setq pointer (riece-identity-assoc
+ user riece-hangman-player-context-alist t))
+ (if (or (/= (length message) 1)
+ (not (string-match "[a-z]" message)))
+ (riece-hangman-reply
+ (car targets)
+ (format "%s: Not a valid guess: %s" user message))
+ (if (memq (aref message 0)
+ (riece-hangman-context-guessed (cdr pointer)))
+ (riece-hangman-reply (car targets)
+ (format "%s: Already guessed '%c'"
+ user (aref message 0)))
+ (setq guessed (riece-hangman-context-set-guessed
+ (cdr pointer)
+ (cons (aref message 0)
+ (riece-hangman-context-guessed
+ (cdr pointer))))
+ word (riece-hangman-context-word (cdr pointer)))
+ (unless (catch 'found
+ (setq index 0)
+ (while (< index (length word))
+ (if (eq (aref word index) (aref message 0))
+ (throw 'found t))
+ (setq index (1+ index))))
+ (riece-hangman-context-set-missed-count
+ (cdr pointer)
+ (1+ (riece-hangman-context-missed-count
+ (cdr pointer)))))
+ (if (>= (riece-hangman-context-missed-count (cdr pointer))
+ 7)
+ (progn
+ (riece-hangman-reply
+ (car targets)
+ (format "%s: Sorry, the word was \"%s\""
+ user
+ (riece-hangman-context-word (cdr pointer))))
+ (setq riece-hangman-player-context-alist
+ (delq pointer
+ riece-hangman-player-context-alist)))
+ (if (catch 'missing
+ (setq index 0)
+ (while (< index (length word))
+ (unless (memq (aref word index) guessed)
+ (throw 'missing t))
+ (setq index (1+ index))))
+ (riece-hangman-reply-with-context user (car targets)
+ (cdr pointer))
+ (riece-hangman-reply (car targets)
+ (format "%s: You got it! (%s)"
+ user word))
+ (setq riece-hangman-player-context-alist
+ (delq
+ pointer
+ riece-hangman-player-context-alist))))))))))))