• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/emacs-93/emacs/lisp/play/

Lines Matching defs:digit

30 ;; multiplication example in which each digit has been consistently replaced
128 then the digit. Thus, to guess that A=3, type `A 3'.
166 (defmacro mpuz-digit-solved-p (digit)
167 `(or (aref mpuz-found-digits ,digit)
168 (aref mpuz-trivial-digits ,digit)))
174 (defvar mpuz-digit-to-letter (make-vector 10 0)
177 (defvar mpuz-letter-to-digit (make-vector 10 0)
178 "The inverse of mpuz-digit-to-letter.")
180 (defmacro mpuz-to-digit (letter)
181 (list 'aref 'mpuz-letter-to-digit letter))
183 (defmacro mpuz-to-letter (digit)
184 (list 'aref 'mpuz-digit-to-letter digit))
195 (aset mpuz-digit-to-letter index elem)
196 (aset mpuz-letter-to-digit elem index))))
200 ;; Every digit appears in the board, crypted or not.
203 "The board associates to any digit the list of squares where it appears.")
206 "Put (last digit of) NUMBER on ROW and COLUMNS of the puzzle board."
207 (let (digit)
209 (setq digit (% number 10)
211 (aset mpuz-board digit `((,row . ,(car l)) ,@(aref mpuz-board digit)))
243 (mapc (lambda (digit)
244 (and (not (mpuz-digit-solved-p digit)) ; unsolved
245 (setq squares (aref mpuz-board digit))
258 ;; The random numbers are only use to see which digit appears in which square
346 (mapc 'mpuz-paint-digit [0 1 2 3 4 5 6 7 8 9])
349 (defun mpuz-paint-digit (digit)
351 (let ((char (if (mpuz-digit-solved-p digit)
352 (+ digit ?0)
353 (+ (mpuz-to-letter digit) ?A)))
355 ,(cond ((aref mpuz-trivial-digits digit) 'mpuz-trivial)
356 ((aref mpuz-found-digits digit) 'mpuz-solved)
365 (aref mpuz-board digit))))
429 "Propose a digit for a letter in puzzle."
432 (let (letter-char digit digit-char message)
434 digit (mpuz-to-digit (- letter-char ?A)))
435 (cond ((mpuz-digit-solved-p digit)
438 ((null (aref mpuz-board digit))
445 (setq digit-char (read-char))
446 (if (eq digit-char ?=)
447 (setq digit-char (read-char)))
448 (or (> digit-char ?9) (< digit-char ?0))) ; bad input
449 (message "%c = %c" letter-char digit-char)
452 (mpuz-try-proposal letter-char digit-char))))
457 (defun mpuz-try-proposal (letter-char digit-char)
460 (digit (- digit-char ?0))
461 (correct-digit (mpuz-to-digit letter))
463 (cond ((mpuz-digit-solved-p correct-digit)
464 (message "%c has already been found." (+ correct-digit ?0)))
465 ((mpuz-digit-solved-p digit)
466 (message "%c has already been placed." digit-char))
467 ((= digit correct-digit)
468 (message "%c = %c correct!" letter-char digit-char)
470 (aset mpuz-found-digits digit t) ; Mark digit as solved
474 (message "%c = %c incorrect!" letter-char digit-char)
504 (mapc (lambda (digit)
505 (or (mpuz-digit-solved-p digit)
508 (member (cons row col) (aref mpuz-board digit))
509 (assq row (aref mpuz-board digit)))))
510 (aset mpuz-trivial-digits digit t)))