Variable: landmark-score-trans-table
landmark-score-trans-table is a variable defined in landmark.el.gz.
Value
[7 15 400 1800 100000 0 35 0 0 0 0 0 800 0 0 0 0 0 15000 0 0 0 0 0
800000 0 0 0 0 0 0]
Documentation
Vector associating qtuple contents to their score.
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/landmark.el.gz
(defconst landmark-score-trans-table
(let ((Xscore 15) ; Score of a qtuple containing one X.
(XXscore 400) ; Score of a qtuple containing two X's.
(XXXscore 1800) ; Score of a qtuple containing three X's.
(XXXXscore 100000) ; Score of a qtuple containing four X's.
(Oscore 35) ; Score of a qtuple containing one O.
(OOscore 800) ; Score of a qtuple containing two O's.
(OOOscore 15000) ; Score of a qtuple containing three O's.
(OOOOscore 800000)) ; Score of a qtuple containing four O's.
;; These values are not just random: if, given the following situation:
;;
;; . . . . . . . O .
;; . X X a . . . X .
;; . . . X . . . X .
;; . . . X . . . X .
;; . . . . . . . b .
;;
;; you want Emacs to play in "a" and not in "b", then the parameters must
;; satisfy the inequality:
;;
;; 6 * XXscore > XXXscore + 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 conditions are required to obtain sensible moves, but the
;; previous example should illustrate the point. If you manage to
;; improve on these values, please send me a note. Thanks.
;; As we chose values 0, 1 and 6 to denote empty, X and O squares,
;; the contents of a qtuple are uniquely determined by the sum of
;; its elements and we just have to set up a translation table.
(vector landmark-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
0))
"Vector associating qtuple contents to their score.")