Mercurial > emacs
changeset 50563:23dfa4b79c21
(gomoku-buffer-name): New constant.
(gomoku-mode): Doc fix. Add call to kill-all-local-variables,
for global-font-lock-mode.
(gomoku): Do not call gomoku-switch-to-window directly, else the
player is asked the startup questions twice after a killed game.
(gomoku-prompt-for-other-game): Throw an error if no new game,
since otherwise answering no after a killed game has no effect.
(gomoku-switch-to-window): Use gomoku-buffer-name.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sat, 12 Apr 2003 15:51:31 +0000 |
parents | 6ee9d94eaca3 |
children | e634b5a332d1 |
files | lisp/play/gomoku.el |
diffstat | 1 files changed, 23 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/play/gomoku.el Sat Apr 12 15:45:59 2003 +0000 +++ b/lisp/play/gomoku.el Sat Apr 12 15:51:31 2003 +0000 @@ -84,6 +84,9 @@ ;;; CONSTANTS FOR BOARD ;;; +(defconst gomoku-buffer-name "*Gomoku*" + "Name of the Gomoku buffer.") + ;; You may change these values if you have a small screen or if the squares ;; look rectangular, but spacings SHOULD be at least 2 (MUST BE at least 1). @@ -193,8 +196,9 @@ Other useful commands: \\{gomoku-mode-map} Entry to this mode calls the value of `gomoku-mode-hook' if that value -is non-nil. One interesting value is `turn-on-font-lock'." +is non-nil." (interactive) + (kill-all-local-variables) (setq major-mode 'gomoku-mode mode-name "Gomoku") (gomoku-display-statistics) @@ -747,7 +751,17 @@ (interactive (if current-prefix-arg (list (prefix-numeric-value current-prefix-arg) (eval (read-minibuffer "Height: "))))) - (gomoku-switch-to-window) + ;; gomoku-switch-to-window, but without the potential call to gomoku + ;; from gomoku-prompt-for-other-game. + (if (get-buffer gomoku-buffer-name) + (switch-to-buffer gomoku-buffer-name) + (when gomoku-game-in-progress + (setq gomoku-emacs-is-computing nil) + (gomoku-terminate-game 'crash-game) + (sit-for 4) + (or (y-or-n-p "Another game ") (error "Chicken !"))) + (switch-to-buffer gomoku-buffer-name) + (gomoku-mode)) (cond (gomoku-emacs-is-computing (gomoku-crash-game)) @@ -934,7 +948,7 @@ "Ask for another game, and start it." (if (y-or-n-p "Another game ") (gomoku gomoku-board-width gomoku-board-height) - (message "Chicken !"))) + (error "Chicken !"))) (defun gomoku-offer-a-draw () "Offer a draw and return t if Human accepted it." @@ -1067,13 +1081,12 @@ (defun gomoku-switch-to-window () "Find or create the Gomoku buffer, and display it." (interactive) - (let ((buff (get-buffer "*Gomoku*"))) - (if buff ; Buffer exists: - (switch-to-buffer buff) ; no problem. - (if gomoku-game-in-progress - (gomoku-crash-game)) ; buffer has been killed or something - (switch-to-buffer "*Gomoku*") ; Anyway, start anew. - (gomoku-mode)))) + (if (get-buffer gomoku-buffer-name) ; Buffer exists: + (switch-to-buffer gomoku-buffer-name) ; no problem. + (if gomoku-game-in-progress + (gomoku-crash-game)) ; buffer has been killed or something + (switch-to-buffer gomoku-buffer-name) ; Anyway, start anew. + (gomoku-mode))) ;;; ;;; CROSSING WINNING QTUPLES.