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

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

[elpa] 190/255: set level (mainly for playing GNUGO)


From: Eric Schulte
Subject: [elpa] 190/255: set level (mainly for playing GNUGO)
Date: Sun, 16 Mar 2014 01:02:46 +0000

eschulte pushed a commit to branch go
in repository elpa.

commit a3e1e7c18c6729ae240c71748bdd2729225deb83
Author: Eric Schulte <address@hidden>
Date:   Sun May 19 15:58:54 2013 -0600

    set level (mainly for playing GNUGO)
---
 back-ends/gtp.el |    6 ++++++
 back-ends/igs.el |    6 ++++++
 back-ends/sgf.el |    6 ++++++
 go-api.el        |    1 +
 go-board.el      |    7 ++++++-
 5 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/back-ends/gtp.el b/back-ends/gtp.el
index a6e1c73..4b9724e 100644
--- a/back-ends/gtp.el
+++ b/back-ends/gtp.el
@@ -71,6 +71,12 @@
 (defmethod set-go-size ((gtp gtp) size)
   (gtp-command gtp (format "boardsize %d" size)))
 
+(defmethod go-level ((gtp gtp))
+  (signal 'unsupported-back-end-command (list gtp :go-level)))
+
+(defmethod set-go-level ((gtp gtp) level)
+  (gtp-command gtp (format "level %d" level)))
+
 (defmethod go-name ((gtp gtp))
   (gtp-command gtp "name"))
 
diff --git a/back-ends/igs.el b/back-ends/igs.el
index 4188387..29f53d5 100644
--- a/back-ends/igs.el
+++ b/back-ends/igs.el
@@ -371,6 +371,12 @@ This is used to re-send messages to keep the IGS server 
from timing out.")
   (declare (indent 1))
   `(with-current-buffer (buffer ,igs) ,@body))
 
+(defmethod go-level ((igs igs))
+  (signal 'unsupported-back-end-command (list igs :level)))
+
+(defmethod set-go-level ((igs igs) level)
+  (signal 'unsupported-back-end-command (list igs :set-level level)))
+
 (defmethod go-size ((igs igs))
   (with-igs igs (aget (igs-current-game) :size)))
 
diff --git a/back-ends/sgf.el b/back-ends/sgf.el
index 265860d..17052b2 100644
--- a/back-ends/sgf.el
+++ b/back-ends/sgf.el
@@ -110,6 +110,12 @@
    ((aget (root sgf) :SZ) (setf (cdr (assoc :SZ (root sgf))) size))
    (t                     (push (cons :S size) (root sgf)))))
 
+(defmethod go-level ((sgf sgf))
+  (signal 'unsupported-back-end-command (list sgf :go-level)))
+
+(defmethod set-go-level ((sgf sgf) level)
+  (signal 'unsupported-back-end-command (list sgf :set-go-level level)))
+
 (defmethod go-name ((sgf sgf))
   (or (aget (root sgf) :GN)
       (aget (root sgf) :EV)))
diff --git a/go-api.el b/go-api.el
index 2ea36cd..5eb24d6 100644
--- a/go-api.el
+++ b/go-api.el
@@ -56,6 +56,7 @@
 
 ;; setf'able back-end access
 (defgeneric-w-setf go-size    "Access BACK-END size.")
+(defgeneric-w-setf go-level   "Access level of BACK-END.")
 (defgeneric-w-setf go-name    "Access BACK-END name.")
 (defgeneric-w-setf go-move    "Access current BACK-END move.")
 (defgeneric-w-setf go-labels  "Access current BACK-END labels.")
diff --git a/go-board.el b/go-board.el
index c20fc03..f3a83db 100644
--- a/go-board.el
+++ b/go-board.el
@@ -340,7 +340,7 @@
   `(ignoring-unsupported
     (prog1 (let ((,sym *back-end*)) ,@body)
       (with-trackers ,sym ,@body))))
-(def-edebug-spec with-backends (sexp body))
+(def-edebug-spec with-backends (place body))
 
 (defvar go-board-actions '(move resign undo comment)
   "List of actions which may be taken on an GO board.")
@@ -400,6 +400,10 @@
   (interactive "MComment: ")
   (message "comment: %S" comment))
 
+(defun go-board-level (&optional level)
+  (interactive "nLevel: ")
+  (with-backends back (setf (go-level back) level)))
+
 (defun go-board-next (&optional count)
   (interactive "p")
   (dotimes (n (or count 1) (or count 1))
@@ -435,6 +439,7 @@
     (define-key map (kbd "r") 'go-board-resign)
     (define-key map (kbd "u") 'go-board-undo)
     (define-key map (kbd "c") 'go-board-comment)
+    (define-key map (kbd "l") 'go-board-level)
     (define-key map (kbd "p") 'go-board-pass)
     (define-key map (kbd "<right>") 'go-board-next)
     (define-key map (kbd "<left>")  'go-board-undo)



reply via email to

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