%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/play/ |
Current File : //usr/local/share/emacs/27.2/lisp/play/snake.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'gamegrid) #@42 Non-nil means use glyphs when available. (defvar snake-use-glyphs-flag t (#$ . 428)) #@41 Non-nil means use color when available. (defvar snake-use-color-flag t (#$ . 519)) #@29 Name used for Snake buffer. (defvar snake-buffer-name "*Snake*" (#$ . 608)) #@34 Width of used portion of buffer. (defvar snake-buffer-width 30 (#$ . 690)) #@35 Height of used portion of buffer. (defvar snake-buffer-height 22 (#$ . 771)) #@24 Width of playing area. (defvar snake-width 30 (#$ . 854)) #@25 Height of playing area. (defvar snake-height 20 (#$ . 918)) #@26 Initial length of snake. (defvar snake-initial-length 5 (#$ . 984)) #@30 Initial X position of snake. (defvar snake-initial-x 10 (#$ . 1058)) #@30 Initial Y position of snake. (defvar snake-initial-y 10 (#$ . 1133)) #@30 Initial X velocity of snake. (defvar snake-initial-velocity-x 1 (#$ . 1208)) #@30 Initial Y velocity of snake. (defvar snake-initial-velocity-y 0 (#$ . 1291)) #@61 The default time taken for the snake to advance one square. (defvar snake-tick-period 0.2 (#$ . 1374)) #@31 Hook run upon starting Snake. (defvar snake-mode-hook nil (#$ . 1483)) #@22 X position of score. (defvar snake-score-x 0 (#$ . 1560)) #@22 Y position of score. (defvar snake-score-y snake-height (#$ . 1624)) #@31 File for holding high scores. (defvar snake-score-file "snake-scores" (#$ . 1699)) (defvar snake-blank-options '(((glyph colorize) (t 32)) ((color-x color-x) (mono-x grid-x) (color-tty color-tty)) (((glyph color-x) [0 0 0]) (color-tty "black")))) (defvar snake-snake-options '(((glyph colorize) (emacs-tty 79) (t 32)) ((color-x color-x) (mono-x mono-x) (color-tty color-tty) (mono-tty mono-tty)) (((glyph color-x) [1 1 0]) (color-tty "yellow")))) (defvar snake-dot-options '(((glyph colorize) (t 42)) ((color-x color-x) (mono-x grid-x) (color-tty color-tty)) (((glyph color-x) [1 0 0]) (color-tty "red")))) (defvar snake-border-options '(((glyph colorize) (t 43)) ((color-x color-x) (mono-x grid-x) (color-tty color-tty)) (((glyph color-x) [0.5 0.5 0.5]) (color-tty "white")))) (defvar snake-space-options '(((t 32)) nil nil)) (defconst snake-blank 0) (defconst snake-snake 1) (defconst snake-dot 2) (defconst snake-border 3) (defconst snake-space 4) (defvar snake-length 0) (defvar snake-velocity-x 1) (defvar snake-velocity-y 0) (defvar snake-positions nil) (defvar snake-score 0) (defvar snake-paused nil) (defvar snake-moved-p nil) #@475 This queue stores the velocities requested too quickly by user. They will take effect one at a time at each clock-interval. This is necessary for proper behavior. For instance, if you are moving right, you press up and then left, you want the snake to move up just once before starting to move left. If we implemented all your keystrokes immediately, the snake would effectively never move up. Thus, we need to move it up for one turn and then start moving it leftwards. (defvar snake-velocity-queue nil (#$ . 2842)) (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [make-variable-buffer-local snake-length snake-velocity-x snake-velocity-y snake-positions snake-score snake-paused snake-moved-p snake-velocity-queue] 2) #@25 Keymap for Snake games. (defvar snake-mode-map (byte-code "\301\302!\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\313#\210\303\323\315#\210\303\324\317#\210\303\325\321#\210)\207" [map make-sparse-keymap snake-mode-map define-key "n" snake-start-game "q" snake-end-game "p" snake-pause-game [left] snake-move-left [right] snake-move-right [up] snake-move-up [down] snake-move-down "" "" "" ""] 4) (#$ . 3641)) #@34 Keymap for finished Snake games. (defvar snake-null-map (byte-code "\301\302!\303\304\305#\210)\207" [map make-sparse-keymap snake-null-map define-key "n" snake-start-game] 4) (#$ . 4156)) #@46 Menu for `snake'. Used to initialize menus. (defconst snake--menu-def '("Snake" ["Start new game" snake-start-game :help "Start a new Snake game"] ["End game" snake-end-game :active (snake-active-p) :help "End the current Snake game"]) (#$ . 4354)) #@31 Menu for running Snake games. (defvar snake-mode-menu nil (#$ . 4610)) (easy-menu-do-define 'snake-mode-menu snake-mode-map "Menu for running Snake games." snake--menu-def) #@32 Menu for finished Snake games. (defvar snake-null-menu nil (#$ . 4789)) (easy-menu-do-define 'snake-null-menu snake-null-map "Menu for finished Snake games." snake--menu-def) (defalias 'snake-display-options #[nil "\306\307\310\"\307\311 \nW\203T \211U\203 \f\202K U\203&