[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnugo 7211950 346/357: [gnugo] Indicate seki groups on
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnugo 7211950 346/357: [gnugo] Indicate seki groups on the board. |
Date: |
Sun, 29 Nov 2020 14:51:54 -0500 (EST) |
branch: externals/gnugo
commit 721195072c47b6dbcca0ba563102e8cafc59b748
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>
[gnugo] Indicate seki groups on the board.
* packages/gnugo/gnugo.el (gnugo-refresh) [pall of death]:
Extract ‘seki’ from game-over data; factor ‘dead’
handling into new local func ‘P’; use ‘P’ on ‘seki’,
specifying ‘font-lock-type-face’ and a func that selects
the proper "point on stone" image, depending on whether
or not Gnugo Image Display mode is enabled.
---
gnugo.el | 66 ++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 35 insertions(+), 31 deletions(-)
diff --git a/gnugo.el b/gnugo.el
index 82da129..1583228 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -1058,7 +1058,7 @@ its move."
window last)
(when (and nocache (not (gnugo-get :waiting)))
;; (search-forward "pall of death")
- (dolist (group (gnugo-aqr 'dead game-over))
+ (dolist (group (apply #'append (mapcar #'cdr game-over)))
(gnugo--zonk-ovs (cdar group))
(setcdr (car group) nil))
(gnugo-propertize-board-buffer))
@@ -1093,41 +1093,45 @@ its move."
(gnugo-current-player)))))
;; pall of death
(when game-over
- (cl-destructuring-bind (live dead)
+ (cl-destructuring-bind (live seki dead)
(mapcar (lambda (sel)
(gnugo-aqr sel game-over))
- '(live dead))
+ '(live seki dead))
(dolist (head (mapcar #'car live))
(gnugo--zonk-ovs (cdr head))
(setcdr head nil))
- (cl-loop
- for (head . positions) in dead
- unless (cdr head)
- do (setcdr
- head
- (cl-loop
- with cprop = (car head)
- with shown = (if using-images
- (gnugo-yang (if (gnugo--prop-blackp cprop)
- ?X
- ?O))
- (propertize (if (gnugo--prop-blackp cprop)
- "x"
- "o")
- 'face
- 'font-lock-warning-face))
- for p in (mapcar #'gnugo-goto-pos positions)
- collect
- (let ((ov (make-overlay p (1+ p))))
- (overlay-put
- ov 'display
- (if using-images
- ;; respect the dead individually; it takes more time
- ;; but that's not a problem (for them)
- (gnugo-venerate (get-text-property p 'gnugo-yin)
- shown)
- shown))
- ov))))))
+ (cl-flet
+ ((P (groups face respect)
+ (cl-loop
+ for (head . positions) in groups
+ unless (cdr head)
+ do (setcdr
+ head
+ (cl-loop
+ with b/w = (gnugo--prop-blackp (car head))
+ with yang = (if using-images
+ (gnugo-yang (if b/w ?X ?O))
+ (propertize (if b/w "x" "o")
+ 'face face))
+ for pos in (mapcar #'gnugo-goto-pos positions)
+ collect
+ (let ((ov (make-overlay pos (1+ pos))))
+ (overlay-put
+ ov 'display
+ (if using-images
+ ;; respect the dead individually; it takes more
+ ;; time but that's not a problem (for them)
+ (funcall respect (get-text-property
+ pos 'gnugo-yin)
+ yang)
+ yang))
+ ov))))))
+ (P seki 'font-lock-type-face
+ (lambda (yin yang)
+ (get (gnugo-yy yin yang t)
+ 'display)))
+ (P dead 'font-lock-warning-face
+ #'gnugo-venerate))))
;; window update
(when (setq window (get-buffer-window (current-buffer)))
(let* ((gridp (not (memq :nogrid buffer-invisibility-spec)))
- [elpa] externals/gnugo 781a385 332/357: [gnugo] Drop trailing fullstop for "... done" messages., (continued)
- [elpa] externals/gnugo 781a385 332/357: [gnugo] Drop trailing fullstop for "... done" messages., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo c5ef13d 334/357: [gnugo] Make ‘gnugo-goto-pos’ return buffer position., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 6170d2a 333/357: [gnugo] Make ‘C-c C-p’ output more spacious., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0320a5c 335/357: [gnugo int] Decruft: Don't bother w/ ‘group’ text property., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 8123275 338/357: [gnugo] Drop trailing fullstop in animation message., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 08f11af 339/357: [gnugo int] Incorporate ‘gnugo-toggle-image-display’ into unique caller., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 1e01c65 340/357: [gnugo] When sorry, say "Sorry" first., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 3541ccf 343/357: [gnugo int] Lift redundant pall of death computation., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 38b2529 124/357: [gnugo int] Add abstraction: gnugo--mkht, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0f9f540 125/357: [gnugo int] Maintain tree MNUM., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 7211950 346/357: [gnugo] Indicate seki groups on the board.,
Stefan Monnier <=
- [elpa] externals/gnugo 35c4645 347/357: [gnugo] Make ‘C-u F’ store additional SGF properties., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0c4b37b 349/357: [gnugo] Document new ‘C-u F’ behavior., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo e66bfa0 352/357: [gnugo int] Gate ‘cursor-intangible-mode’ call precisely, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 2f73382 353/357: [gnugo] Add some docstrings to some vars/funcs., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo eb9748f 355/357: [gnugo maint] Update years in copyright notice; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 2dd0aca 357/357: * .gitignore: New file, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo ee905ef 048/357: [gnugo] Fix bug: Compute grid spacing using offset math., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 566623c 121/357: [gnugo int] Invert ‘if’ CONDITION and THEN/ELSE clauses., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 19309c3 139/357: [gnugo frolic] Handle invalid branch more consistently., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo d214e7e 137/357: [gnugo frolic] Add command to set the main line., Stefan Monnier, 2020/11/29