Function: mpuz-try-letter

mpuz-try-letter is an interactive and byte-compiled function defined in mpuz.el.gz.

Signature

(mpuz-try-letter)

Documentation

Propose a digit for a letter in puzzle.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/play/mpuz.el.gz
(defun mpuz-try-letter ()
  "Propose a digit for a letter in puzzle."
  (interactive nil mpuz-mode)
  (if mpuz-in-progress
      (let (letter-char digit digit-char)
	(setq letter-char (upcase last-command-event)
	      digit (mpuz-to-digit (- letter-char ?A)))
	(cond ((mpuz-digit-solved-p digit)
	       (message "%c already solved." letter-char)
	       (mpuz-ding t))
	      ((null (aref mpuz-board digit))
	       (message "%c does not appear." letter-char)
	       (mpuz-ding t))
	      ((progn (message "%c = " letter-char)
		      ;; <char> has been entered.
		      ;; Print "<char> =" and
		      ;; read <num> or = <num>
		      (setq digit-char (read-char))
		      (if (eq digit-char ?=)
			  (setq digit-char (read-char)))
		      (or (> digit-char ?9) (< digit-char ?0))) ; bad input
	       (message "%c = %c" letter-char digit-char)
	       (mpuz-ding t))
	      (t
	       (mpuz-try-proposal letter-char digit-char))))
    (if (y-or-n-p "Start a new game? ")
	(mpuz-start-new-game)
      (message "OK. I won't."))))