[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnugo 98414ca 086/357: [gnugo int] Add abstractions: gn
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnugo 98414ca 086/357: [gnugo int] Add abstractions: gnugo{--root-node, /sgf-root-node} |
Date: |
Sun, 29 Nov 2020 14:50:55 -0500 (EST) |
branch: externals/gnugo
commit 98414ca437c0262c4e7142e1b73cd0a3ba46fd20
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>
[gnugo int] Add abstractions: gnugo{--root-node,/sgf-root-node}
* packages/gnugo/gnugo.el (gnugo--root-node): New func.
(gnugo--root-prop): Rename from ‘gnugo-treeroot’;
take optional arg TREE; default to :sgf-gametree if not specified.
(gnugo--set-root-prop, gnugo--unclose-game): Use ‘gnugo--root-node’.
(gnugo-read-sgf-file): Use ‘gnugo--root-prop’, specifying TREE.
(gnugo-display-final-score, gnugo): Use ‘gnugo--root-prop’.
(gnugo/sgf-root-node): New func.
---
gnugo.el | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/gnugo.el b/gnugo.el
index 3292666..2f3db1c 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -370,11 +370,14 @@ when you are sure the command cannot fail."
(defun gnugo-lsquery (message-format &rest args)
(split-string (apply 'gnugo-query message-format args)))
-(defsubst gnugo-treeroot (prop)
- (cdr (assq prop (car (gnugo-get :sgf-gametree)))))
+(defun gnugo--root-node (&optional tree)
+ (gnugo/sgf-root-node (or tree (gnugo-get :sgf-gametree))))
+
+(defsubst gnugo--root-prop (prop &optional tree)
+ (cdr (assq prop (gnugo--root-node tree))))
(defun gnugo--set-root-prop (prop value &optional tree)
- (let* ((root (car (or tree (gnugo-get :sgf-gametree))))
+ (let* ((root (gnugo--root-node tree))
(cur (assq prop root)))
(if cur
(setcdr cur value)
@@ -749,7 +752,7 @@ For all other values of RSEL, do nothing and return nil."
:scoring-seed
:game-end-time))
(gnugo-put prop nil))
- (let* ((root (car (gnugo-get :sgf-gametree)))
+ (let* ((root (gnugo--root-node))
(cur (assq :RE root)))
(when cur
(assert (not (eq cur (car root))) nil
@@ -1326,7 +1329,7 @@ If FILENAME already exists, Emacs confirms that you wish
to overwrite it."
(gnugo-put :sgf-collection coll)
(gnugo-put :sgf-gametree tree)
;; This is deliberately undocumented for now.
- (gnugo--SZ! (gnugo-treeroot :SZ))
+ (gnugo--SZ! (gnugo--root-prop :SZ tree))
(let* ((loc tree)
(count 0)
mem node play game-over)
@@ -1342,7 +1345,7 @@ If FILENAME already exists, Emacs confirms that you wish
to overwrite it."
(setq loc (cdr loc)))
(gnugo-put :game-over
(setq game-over
- (or (gnugo-treeroot :RE)
+ (or (gnugo--root-prop :RE tree)
(and (cdr mem)
(equal '("PASS" "PASS") (gnugo-move-history 'two))
'two-passes))))
@@ -1505,10 +1508,10 @@ Also, add the `:RE' SGF property to the root node of
the game tree."
(w-terr (length (gnugo-lsquery terr-q "white")))
(b-capt (string-to-number (gnugo-get :black-captures)))
(w-capt (string-to-number (gnugo-get :white-captures)))
- (komi (gnugo-treeroot :KM)))
+ (komi (gnugo--root-prop :KM)))
(setq blurb (list "The game is over. Final score:\n")
result (gnugo-query "final_score %d" seed))
- (cond ((string= "Chinese" (gnugo-treeroot :RU))
+ (cond ((string= "Chinese" (gnugo--root-prop :RU))
(dolist (group live)
(incf (if (string= "black" (caar group))
b-terr
@@ -1845,7 +1848,7 @@ starting a new one. See `gnugo-board-mode' documentation
for more info."
;; first move
(gnugo-put :game-start-time (current-time))
(let ((g (gnugo-get :gnugo-color))
- (n (or (gnugo-treeroot :HA) 0))
+ (n (or (gnugo--root-prop :HA) 0))
(u (gnugo-get :user-color)))
(gnugo-put :last-mover g)
(when (or (and (string= "black" u) (< 1 n))
@@ -2062,6 +2065,9 @@ starting a new one. See `gnugo-board-mode' documentation
for more info."
;; - added: AP AR AS DD IP IY LN OT PM SE SQ ST SU VW
"List of SGF[4] properties, each of the form (PROP NAME CONTEXT SPEC...).")
+(defun gnugo/sgf-root-node (tree)
+ (car tree))
+
(defun gnugo/sgf-read-file (filename)
"Return the collection (list) of gametrees in SGF[4] file FILENAME."
(let ((keywords (or (get 'gnugo/sgf-*r4-properties* :keywords)
- [elpa] externals/gnugo 5c8f31d 043/357: [gnugo maint] Update HACKING; nfc., (continued)
- [elpa] externals/gnugo 5c8f31d 043/357: [gnugo maint] Update HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 2d4c9ad 046/357: [gnugo] New command: ‘_’ and ‘M-_’ (gnugo-boss-is-near), Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 02c55b7 054/357: [gnugo] Release: 2.3.1, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo c479509 044/357: [gnugo] Bind ‘DEL’ to ‘gnugo-undo-two-moves’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 9748703 060/357: [gnugo int] Elide single-use local var., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 6573d16 065/357: [gnugo int] Add abstraction: gnugo--compare-strings, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a949e26 071/357: [gnugo int] Rename arg from SWITCH to ME-NEXT., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 558d778 072/357: [gnugo] Fix bug: Handle property value type ‘none’ normally., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 9469952 075/357: fixup! [gnugo sgf] Move gratuitous newline from after to before (sub)trees., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 4f96ca6 076/357: [gnugo sgf int] Add abstractions: seek, seek-into, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 98414ca 086/357: [gnugo int] Add abstractions: gnugo{--root-node, /sgf-root-node},
Stefan Monnier <=
- [elpa] externals/gnugo 622b1eb 084/357: [gnugo] Handle ‘(gnugo-move-history 'two)’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 06586e9 093/357: [gnugo] Fix bug: Don't bother translating move "resign"., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 7f380e4 006/357: [gnugo] Presume working time-date.el., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 74b839a 066/357: [gnugo int] Use ‘incf’ more., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo ad774f4 074/357: [gnugo sgf] Move gratuitous newline from after to before (sub)trees., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a44da1b 073/357: [gnugo sgf int] Add abstractions: >>prop, >>node, >>tree, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a7f01be 083/357: [gnugo int] Add abstraction: nn, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a07cf7c 109/357: [gnugo int] Use ‘gnugo--as-pos-func’ more., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 71f163d 111/357: [gnugo int] Support growth also off of main line., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0b08017 114/357: [gnugo int] Avoid double list-reverse., Stefan Monnier, 2020/11/29