Mercurial > emacs
changeset 111329:be0bea620615
Silence compilation of gomoku.el.
* lisp/play/gomoku.el (nil-score, Xscore, XXscore, XXXscore, XXXXscore)
(Oscore, OOscore, OOOscore, OOOOscore): Rename with gomoku- prefix.
(gomoku-score-trans-table, gomoku-winning-threshold)
(gomoku-loosing-threshold, gomoku-init-score-table): Use new names.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 02 Nov 2010 20:30:37 -0700 |
parents | d3285b080feb |
children | 651ebb81e47d |
files | lisp/ChangeLog lisp/play/gomoku.el |
diffstat | 2 files changed, 29 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Nov 02 20:27:38 2010 -0700 +++ b/lisp/ChangeLog Tue Nov 02 20:30:37 2010 -0700 @@ -1,3 +1,10 @@ +2010-11-03 Glenn Morris <rgm@gnu.org> + + * play/gomoku.el (nil-score, Xscore, XXscore, XXXscore, XXXXscore) + (Oscore, OOscore, OOOscore, OOOOscore): Rename with gomoku- prefix. + (gomoku-score-trans-table, gomoku-winning-threshold) + (gomoku-loosing-threshold, gomoku-init-score-table): Use new names. + 2010-11-03 Chong Yidong <cyd@stupidchicken.com> * emacs-lisp/package.el: Don't put built-in packages in
--- a/lisp/play/gomoku.el Tue Nov 02 20:27:38 2010 -0700 +++ b/lisp/play/gomoku.el Tue Nov 02 20:30:37 2010 -0700 @@ -299,15 +299,15 @@ ;; these values will change (hopefully improve) the strength of the program ;; and may change its style (rather aggressive here). -(defconst nil-score 7 "Score of an empty qtuple.") -(defconst Xscore 15 "Score of a qtuple containing one X.") -(defconst XXscore 400 "Score of a qtuple containing two X's.") -(defconst XXXscore 1800 "Score of a qtuple containing three X's.") -(defconst XXXXscore 100000 "Score of a qtuple containing four X's.") -(defconst Oscore 35 "Score of a qtuple containing one O.") -(defconst OOscore 800 "Score of a qtuple containing two O's.") -(defconst OOOscore 15000 "Score of a qtuple containing three O's.") -(defconst OOOOscore 800000 "Score of a qtuple containing four O's.") +(defconst gomoku-nil-score 7 "Score of an empty qtuple.") +(defconst gomoku-Xscore 15 "Score of a qtuple containing one X.") +(defconst gomoku-XXscore 400 "Score of a qtuple containing two X's.") +(defconst gomoku-XXXscore 1800 "Score of a qtuple containing three X's.") +(defconst gomoku-XXXXscore 100000 "Score of a qtuple containing four X's.") +(defconst gomoku-Oscore 35 "Score of a qtuple containing one O.") +(defconst gomoku-OOscore 800 "Score of a qtuple containing two O's.") +(defconst gomoku-OOOscore 15000 "Score of a qtuple containing three O's.") +(defconst gomoku-OOOOscore 800000 "Score of a qtuple containing four O's.") ;; These values are not just random: if, given the following situation: ;; @@ -320,7 +320,7 @@ ;; you want Emacs to play in "a" and not in "b", then the parameters must ;; satisfy the inequality: ;; -;; 6 * XXscore > XXXscore + XXscore +;; 6 * gomoku-XXscore > gomoku-XXXscore + gomoku-XXscore ;; ;; because "a" mainly belongs to six "XX" qtuples (the others are less ;; important) while "b" belongs to one "XXX" and one "XX" qtuples. Other @@ -334,26 +334,26 @@ ;; we just have to set up a translation table. (defconst gomoku-score-trans-table - (vector nil-score Xscore XXscore XXXscore XXXXscore 0 - Oscore 0 0 0 0 0 - OOscore 0 0 0 0 0 - OOOscore 0 0 0 0 0 - OOOOscore 0 0 0 0 0 + (vector gomoku-nil-score gomoku-Xscore gomoku-XXscore gomoku-XXXscore gomoku-XXXXscore 0 + gomoku-Oscore 0 0 0 0 0 + gomoku-OOscore 0 0 0 0 0 + gomoku-OOOscore 0 0 0 0 0 + gomoku-OOOOscore 0 0 0 0 0 0) "Vector associating qtuple contents to their score.") ;; If you do not modify drastically the previous constants, the only way for a -;; square to have a score higher than OOOOscore is to belong to a "OOOO" +;; square to have a score higher than gomoku-OOOOscore is to belong to a "OOOO" ;; qtuple, thus to be a winning move. Similarly, the only way for a square to -;; have a score between XXXXscore and OOOOscore is to belong to a "XXXX" +;; have a score between gomoku-XXXXscore and gomoku-OOOOscore is to belong to a "XXXX" ;; qtuple. We may use these considerations to detect when a given move is ;; winning or loosing. -(defconst gomoku-winning-threshold OOOOscore +(defconst gomoku-winning-threshold gomoku-OOOOscore "Threshold score beyond which an Emacs move is winning.") -(defconst gomoku-loosing-threshold XXXXscore +(defconst gomoku-loosing-threshold gomoku-XXXXscore "Threshold score beyond which a human move is winning.") @@ -394,10 +394,10 @@ ;;; ;; At initialization the board is empty so that every qtuple amounts for -;; nil-score. Therefore, the score of any square is nil-score times the number +;; gomoku-nil-score. Therefore, the score of any square is gomoku-nil-score times the number ;; of qtuples that pass through it. This number is 3 in a corner and 20 if you ;; are sufficiently far from the sides. As computing the number is time -;; consuming, we initialize every square with 20*nil-score and then only +;; consuming, we initialize every square with 20*gomoku-nil-score and then only ;; consider squares at less than 5 squares from one side. We speed this up by ;; taking symmetry into account. ;; Also, as it is likely that successive games will be played on a board with @@ -421,7 +421,7 @@ (setq gomoku-score-table (copy-sequence gomoku-saved-score-table)) ;; No, compute it: (setq gomoku-score-table - (make-vector gomoku-vector-length (* 20 nil-score))) + (make-vector gomoku-vector-length (* 20 gomoku-nil-score))) (let (i j maxi maxj maxi2 maxj2) (setq maxi (/ (1+ gomoku-board-width) 2) maxj (/ (1+ gomoku-board-height) 2)