From 6511a374d94c6683ee8fe47637ce2e9f24b8508a Mon Sep 17 00:00:00 2001 From: Mario Lang Date: Wed, 16 Apr 2014 15:06:08 +0200 Subject: [PATCH] chess-polyglot.el: Ship default book file. Also, move some customisation settings from chess-uci to chess-polyglot. --- .gitignore | 1 - Makefile.am | 1 + chess-polyglot.bin | Bin 0 -> 100000 bytes chess-polyglot.el | 38 +++++++++++++++++++++++++++++++++++--- chess-uci.el | 36 +++++++++--------------------------- 5 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 chess-polyglot.bin diff --git a/.gitignore b/.gitignore index b7a468e1..e80ebbcf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ *.aux -*.bin *.cp *.cps *.elc diff --git a/Makefile.am b/Makefile.am index 0ccb3162..309c7596 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,6 +45,7 @@ dist_lisp_LISP = \ chess-phalanx.el \ chess-plain.el \ chess-ply.el \ + chess-polyglot.el \ chess-puzzle.el \ chess-random.el \ chess-scid.el \ diff --git a/chess-polyglot.bin b/chess-polyglot.bin new file mode 100644 index 0000000000000000000000000000000000000000..07a2df647dc63461534997b7d3f2f249969f7d9e GIT binary patch literal 100000 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�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 literal 0 HcmV?d00001 diff --git a/chess-polyglot.el b/chess-polyglot.el index b23e0abf..af1767bd 100644 --- a/chess-polyglot.el +++ b/chess-polyglot.el @@ -45,6 +45,22 @@ (require 'chess-ply) (require 'chess-pos) +(defgroup chess-polyglot () + "Polyglot opening book support." + :group 'chess) + +(defcustom chess-polyglot-book-strength 1.0 + "Influence random distribution when picking a ply from the book. +A value above 1.0 means to prefer known good moves while a value below +1.0 means to penalize known good moves. 0.0 will force uniform +distribution of move weights. For reasons of numerical overflow, +this should be strictly less than 4.0." + :group 'chess-polyglot + :type '(float :match (lambda (widget value) (and (>= value 0) (< value 4))))) + +(defvar chess-polyglot-book nil + "The default polyglot book object.") + (defsubst chess-polyglot-read-octets (n) "Read N octets from the current buffer." (let ((val 0)) @@ -483,10 +499,11 @@ Use `chess-ply-keyword' on elements of the returned list to retrieve them." Random distribution is defined by the relative weights of the found plies. If non-nil, STRENGTH defines the bias towards better moves. A value below 1.0 will penalize known good moves while a value -above 1.0 will prefer known good moves. The default is 1.0. +above 1.0 will prefer known good moves. The default is the value +of `chess-polyglot-book-strength'. A strength value of 0.0 will completely ignore move weights and evenly distribute the probability that a move gets picked." - (unless strength (setq strength 1.0)) + (unless strength (setq strength chess-polyglot-book-strength)) (cl-assert (and (>= strength 0) (< strength 4))) (cl-flet ((ply-weight (ply) (round (expt (chess-ply-keyword ply :polyglot-book-weight) @@ -495,13 +512,28 @@ distribute the probability that a move gets picked." (random-value (random (cl-reduce #'+ (mapcar #'ply-weight plies)))) (max 0) ply) (while plies - (if (< random-value (setq max (+ max (ply-weight (car plies))))) + (if (< random-value (cl-incf max (ply-weight (car plies)))) (setq ply (car plies) plies nil) (setq plies (cdr plies)))) + (cl-assert ply) ply))) (defalias 'chess-polyglot-book-close 'kill-buffer "Close a polyglot book.") +(defun chess-polyglot-book-reload (symbol value) + (set symbol value) + (when (eq symbol 'chess-polyglot-book-file) + (setq chess-polyglot-book (chess-polyglot-book-open value)))) + +(defcustom chess-polyglot-book-file (expand-file-name "chess-polyglot.bin" + (file-name-directory + (or load-file-name + buffer-file-name))) + "Path to default polyglot book file." + :group 'chess-polyglot + :set 'chess-polyglot-book-reload + :type '(file :must-match t)) + (provide 'chess-polyglot) ;;; chess-polyglot.el ends here diff --git a/chess-uci.el b/chess-uci.el index e421f718..ff2ec516 100644 --- a/chess-uci.el +++ b/chess-uci.el @@ -34,24 +34,6 @@ "Customisations for Chess engines based on the UCI protocol" :group 'chess) -(defcustom chess-uci-polyglot-book-file nil - "The path to a polyglot binary opening book file." - :group 'chess-uci - :type '(choice (const :tag "Not specified" nil) (file :must-match t))) - -(defcustom chess-uci-polyglot-book-strength 1.0 - "Influence random distribution when picking a ply from the book. -A value above 1.0 means to prefer known good moves while a value below -1.0 means to penalize known good moves. 0.0 will stop to consider -move weights and simply pick a move at random. For simple -reasons of numerical overflow, this should be strictly less than 4.0." - :group 'chess-uci - :type '(float :match (lambda (widget value) (and (>= value 0) (< value 4))))) - -(defvar chess-uci-book nil - "A (polyglot) opening book object. -See `chess-uci-polyglot-book-file' for details on how to enable this.") - (defvar chess-uci-long-algebraic-regexp "\\([a-h][1-8]\\)\\([a-h][1-8]\\)\\([nbrq]\\)?" "A regular expression matching a UCI log algebraic move.") @@ -118,10 +100,11 @@ If conversion fails, this function fired an 'illegal event." (unless chess-engine-handling-event (cond ((eq event 'initialize) - (when chess-uci-polyglot-book-file - (unless chess-uci-book - (setq chess-uci-book (chess-polyglot-book-open - chess-uci-polyglot-book-file)))) + (when (and chess-polyglot-book-file + (file-exists-p chess-polyglot-book-file)) + (unless chess-polyglot-book + (setq chess-polyglot-book (chess-polyglot-book-open + chess-polyglot-book-file)))) (apply #'chess-common-handler game event args)) ((eq event 'new) @@ -140,12 +123,11 @@ If conversion fails, this function fired an 'illegal event." (chess-game-set-data game 'active nil))) ((eq event 'post-move) - (let ((book-ply (and chess-uci-book (bufferp chess-uci-book) - (buffer-live-p chess-uci-book) + (let ((book-ply (and chess-polyglot-book (bufferp chess-polyglot-book) + (buffer-live-p chess-polyglot-book) (chess-polyglot-book-ply - chess-uci-book - (chess-game-pos game) - chess-uci-polyglot-book-strength)))) + chess-polyglot-book + (chess-game-pos game))))) (if book-ply (let ((chess-display-handling-event nil)) (funcall chess-engine-response-handler 'move book-ply))