%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/play/ |
Current File : //usr/local/share/emacs/27.2/lisp/play/gomoku.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\306\301&\207" [custom-declare-group gomoku nil "Gomoku game between you and Emacs." :prefix "gomoku-" :group games custom-declare-variable gomoku-mode-hook funcall function #[0 "\300\207" [nil] 1] "If non-nil, its value is called on entry to Gomoku mode.\nOne useful value to include is `turn-on-font-lock' to highlight the pieces." :type hook] 8) #@28 Name of the Gomoku buffer. (defconst gomoku-buffer-name "*Gomoku*" (#$ . 842)) #@57 Horizontal spacing between squares on the Gomoku board. (defconst gomoku-square-width 4 (#$ . 927)) #@55 Vertical spacing between squares on the Gomoku board. (defconst gomoku-square-height 2 (#$ . 1033)) #@72 Number of columns between the Gomoku board and the side of the window. (defconst gomoku-x-offset 3 (#$ . 1139)) #@69 Number of lines between the Gomoku board and the top of the window. (defconst gomoku-y-offset 1 (#$ . 1257)) #@37 Local keymap to use in Gomoku mode. (defvar gomoku-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\303#\210\301\323\305#\210\301\324\307#\210\301\325\311#\210\301\326\313#\210\301\327\315#\210\301\330\317#\210\301\331\321#\210\301\332\317#\210\301\333\321#\210\301\334\335#\210\301\336\335#\210\301\337\335#\210\301\340\335#\210\301\341\335#\210\301\342\343#\210\301\344\345#\210\301\346\347#\210\301\350\335#\210\301\351\335#\210\301\352\353#\210\301\354\353#\210\301\355\353#\210\301\356\353#\210\301\357\360#\210\301\361\360#\210\301\362\321#\210\301\363\317#\210\301\364\365#\210\301\366\367#\210\301\370\343#\210\301\371\343#\210\211\207" [make-sparse-keymap define-key "y" gomoku-move-nw "u" gomoku-move-ne "b" gomoku-move-sw "n" gomoku-move-se "h" backward-char "l" forward-char "j" gomoku-move-down "k" gomoku-move-up [kp-7] [kp-9] [kp-1] [kp-3] [kp-4] [kp-6] [kp-2] [kp-8] "" "" "X" gomoku-human-plays "x" " " " " "" "" gomoku-human-takes-back "" gomoku-human-resigns "" gomoku-emacs-plays [kp-enter] [insert] [down-mouse-1] gomoku-click [drag-mouse-1] [mouse-1] [down-mouse-2] [mouse-2] gomoku-mouse-play [drag-mouse-2] [remap previous-line] [remap next-line] [remap move-beginning-of-line] gomoku-beginning-of-line [remap move-end-of-line] gomoku-end-of-line [remap undo] [remap advertised-undo]] 5) (#$ . 1372)) #@58 For making font-lock use the winner's face for the line. (defvar gomoku-emacs-won nil (#$ . 2875)) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\207" [custom-declare-face gomoku-O ((((class color)) (:foreground "red" :weight bold))) "Face to use for Emacs's O." :group gomoku gomoku-X ((((class color)) (:foreground "green" :weight bold))) "Face to use for your X."] 6) #@29 Font lock rules for Gomoku. (defvar gomoku-font-lock-keywords '(("O" quote gomoku-O) ("X" quote gomoku-X) ("[-|/\\]" 0 (if gomoku-emacs-won 'gomoku-O 'gomoku-X))) (#$ . 3272)) (defvar gomoku-mode-hook nil) (byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [gomoku-mode-hook variable-documentation put "Hook run after entering Gomoku mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp gomoku-mode-map definition-name gomoku-mode] 4) (defvar gomoku-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204 \303\307\310\311#\210\312\313 !\210\307\302N\204- \303\307\302\304\314!#\210\306\300!\204B \303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P \303\300\302\304\320!#\210\303\311\321\322#\207" [gomoku-mode-abbrev-table gomoku-mode-map variable-documentation put purecopy "Keymap for `gomoku-mode'." boundp gomoku-mode-syntax-table definition-name gomoku-mode (lambda (#1=#:def-tmp-var) (defvar gomoku-mode-syntax-table #1#)) make-syntax-table "Syntax table for `gomoku-mode'." (lambda (#1#) (defvar gomoku-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `gomoku-mode'." derived-mode-parent special-mode] 5) #@569 Major mode for playing Gomoku against Emacs. You and Emacs play in turn by marking a free square. You mark it with X and Emacs marks it with O. The winner is the first to get five contiguous marks horizontally, vertically or in diagonal. \<gomoku-mode-map> You play by moving the cursor over the square you choose and hitting \[gomoku-human-plays]. Other useful commands: \{gomoku-mode-map} In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `gomoku-mode-hook', as the final or penultimate step during initialization. (defalias 'gomoku-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324 \325\"\204R \"=\204R \326 \325\"C#\210\327!\210\330\f!\210 \"\331 \210\306\332!\210\333\307#\334\335\336\337\307$\210)\340\341!\207" [delay-mode-hooks major-mode mode-name gomoku-mode-map gomoku-mode-syntax-table gomoku-mode-abbrev-table make-local-variable t special-mode gomoku-mode "Gomoku" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table gomoku-display-statistics font-lock-defaults (gomoku-font-lock-keywords t) add-hook post-command-hook gomoku--intangible nil run-mode-hooks gomoku-mode-hook local-abbrev-table buffer-read-only] 5 (#$ . 4596) nil]) #@40 Number of columns on the Gomoku board. (defvar gomoku-board-width nil (#$ . 6093)) #@38 Number of lines on the Gomoku board. (defvar gomoku-board-height nil (#$ . 6182)) #@56 Vector recording the actual state of the Gomoku board. (defvar gomoku-board nil (#$ . 6270)) #@34 Length of `gomoku-board' vector. (defvar gomoku-vector-length nil (#$ . 6369)) #@47 After how many moves will Emacs offer a draw? (defvar gomoku-draw-limit nil (#$ . 6454)) #@79 Translate X, Y cartesian coords into the corresponding board index. (fn X Y) (defalias 'gomoku-xy-to-index #[514 "\301_#\207" [gomoku-board-width +] 6 (#$ . 6549)]) #@58 Return corresponding x-coord of board INDEX. (fn INDEX) (defalias 'gomoku-index-to-x #[257 "\211T\246\207" [gomoku-board-width] 3 (#$ . 6725)]) #@58 Return corresponding y-coord of board INDEX. (fn INDEX) (defalias 'gomoku-index-to-y #[257 "\211T\245\207" [gomoku-board-width] 3 (#$ . 6877)]) #@67 Create the `gomoku-board' vector and fill it with initial values. (defalias 'gomoku-init-board #[0 "\303\304\"\304S\nX\203# \305I\210 \305I\210T\262\211S\262\202 \266\304\211W\205; \305I\210\306\n\307#\262\202&