]> git.eshelyaron.com Git - emacs.git/commitdiff
(mpuz-random-puzzle): Fix potential lockup when
authorDavid Kastrup <dak@gnu.org>
Sun, 4 Feb 2007 17:29:50 +0000 (17:29 +0000)
committerDavid Kastrup <dak@gnu.org>
Sun, 4 Feb 2007 17:29:50 +0000 (17:29 +0000)
`mpuz-allow-double-multiplicator' is non-zero, and correct
calculation of `min'.

lisp/ChangeLog
lisp/play/mpuz.el

index 477df1371614b7838a9618fea89f5aa972b3c6a3..e5ce226e095cbdbb60d5bc0ea7cc7a20bd5da0e7 100644 (file)
@@ -1,3 +1,9 @@
+2007-02-04  David Kastrup  <dak@gnu.org>
+
+       * play/mpuz.el (mpuz-random-puzzle): Fix potential lockup when
+       `mpuz-allow-double-multiplicator' is non-zero, and correct
+       calculation of `min'.
+
 2007-02-04  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * wid-edit.el (widget-default-create): Insert new text at the
index fdc30c057063c98caa56a1c7ade6bc8b7194545b..5cb2ed0c9caa6f0e4c27883606382147226076a6 100644 (file)
@@ -262,8 +262,9 @@ You may abort a game by typing \\<mpuz-mode-map>\\[mpuz-offer-abort]."
   (fillarray mpuz-board nil)           ; erase the board
   ;; A,B,C,D & E, are the five rows of our multiplication.
   ;; Choose random values, discarding cases with leading zeros in C or D.
-  (let* ((A (+ 112 (random 888)))
-        (min (1+ (/ 1000 A)))
+  (let* ((A (if mpuz-allow-double-multiplicator (+ 112 (random 888))
+             (+ 125 (random 875))))
+        (min (1+ (/ 999 A)))
         (B1 (+ min (random (- 10 min))))
         B2 C D E)
     (while (if (= B1 (setq B2 (+ min (random (- 10 min)))))