emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/gnugo 2c5e356 107/357: [gnugo maint] Add some debugging


From: Stefan Monnier
Subject: [elpa] externals/gnugo 2c5e356 107/357: [gnugo maint] Add some debugging aids to HACKING; nfc.
Date: Sun, 29 Nov 2020 14:51:00 -0500 (EST)

branch: externals/gnugo
commit 2c5e3567c7fa5db610e272ea0f7798921fb349a1
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>

    [gnugo maint] Add some debugging aids to HACKING; nfc.
---
 HACKING | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/HACKING b/HACKING
index c0e05c4..f096de8 100644
--- a/HACKING
+++ b/HACKING
@@ -11,6 +11,37 @@ This file is both a guide for newcomers and a todo list for 
oldstayers.
 *** [[file:gnugo.el::defun.gnugo-toggle-dead-group][gnugo-toggle-dead-group]] 
only half-complete
 *** no error-handling in SGF parsing
 *** performance -- ‘compare-strings’ approach too clever/slow :-/
+* debugging aids
+*** swizzling branches for frolicking fun
+(defun SWIZ (a b)
+  (let* ((tree (gnugo-get :sgf-gametree))
+         (monkey (gnugo-get :monkey))
+         (bidx (aref monkey 1)))
+    (rotatef (aref tree a)
+             (aref tree b))
+    (cond ((= a bidx) (aset monkey 1 b))
+          ((= b bidx) (aset monkey 1 a)))))
+
+(defun SWIZ-RANDOM ()
+  (interactive)
+  (let* ((n (length (gnugo-get :sgf-gametree)))
+         (one (random n))
+         (two (if (= 1 n)
+                  one
+                (loop with try
+                      while (= one (setq try (random n)))
+                      finally return try))))
+    (SWIZ one two)
+    (message "%d <-> %d" one two)))
+
+(defun UNSWIZ ()
+  (interactive)
+  (let* ((monkey (gnugo-get :monkey))
+         (cur (aref monkey 1)))
+    (if (zerop cur)
+        (message "(nothing to do)")
+      (SWIZ 0 cur)
+      (message "0 <-> %d" cur))))
 * ideas / wishlist
 *** set ‘lexical-binding’ (if possible!)
     Hmm, lots of symbol trickery going on; initial attempts FAIL.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]