?
Current Path : /usr/share/emacs/24.3/lisp/play/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : //usr/share/emacs/24.3/lisp/play/bubbles.elc |
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:06:35 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/play/bubbles.el ;;; in Emacs version 24.3.1 ;;; 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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@31 Version number of bubbles.el. (defconst bubbles-version "0.5" (#$ . 555)) (byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\207" [require gamegrid custom-declare-variable bubbles-game-theme 'easy "Overall game theme.\nThe overall game theme specifies a grid size, a set of colors,\nand a shift mode." :type (radio (const :tag "Easy" easy) (const :tag "Medium" medium) (const :tag "Difficult" difficult) (const :tag "Hard" hard) (const :tag "User defined" user-defined)) :group bubbles] 8) #@27 Set game theme to 'easy'. (defalias 'bubbles-set-game-easy #[nil "\301\302 \207" [bubbles-game-theme easy bubbles] 1 (#$ . 1060) nil]) #@29 Set game theme to 'medium'. (defalias 'bubbles-set-game-medium #[nil "\301\302 \207" [bubbles-game-theme medium bubbles] 1 (#$ . 1202) nil]) #@32 Set game theme to 'difficult'. (defalias 'bubbles-set-game-difficult #[nil "\301\302 \207" [bubbles-game-theme difficult bubbles] 1 (#$ . 1350) nil]) #@27 Set game theme to 'hard'. (defalias 'bubbles-set-game-hard #[nil "\301\302 \207" [bubbles-game-theme hard bubbles] 1 (#$ . 1507) nil]) #@35 Set game theme to 'user-defined'. (defalias 'bubbles-set-game-userdefined #[nil "\301\302 \207" [bubbles-game-theme user-defined bubbles] 1 (#$ . 1649) nil]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312\313\304\301&\207" [custom-declare-group bubbles nil "Bubbles, a puzzle game." :group games custom-declare-variable bubbles-graphics-theme 'circles "Graphics theme.\nIt is safe to choose a graphical theme. If Emacs cannot display\nimages the `ascii' theme will be used." :type (radio (const :tag "Circles" circles) (const :tag "Squares" squares) (const :tag "Diamonds" diamonds) (const :tag "Balls" balls) (const :tag "Emacs" emacs) (const :tag "ASCII (no images)" ascii))] 8) #@32 Predefined small bubbles grid. (defconst bubbles--grid-small '(10 . 10) (#$ . 2354)) #@33 Predefined medium bubbles grid. (defconst bubbles--grid-medium '(15 . 10) (#$ . 2445)) #@32 Predefined large bubbles grid. (defconst bubbles--grid-large '(20 . 15) (#$ . 2538)) #@31 Predefined huge bubbles grid. (defconst bubbles--grid-huge '(30 . 20) (#$ . 2629)) (byte-code "\304\305\301\306\307\310\311\312\313F\311\312\314 F\311\312\315\nF\311\312\316F\317BBBBB\320\321&\207" [bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge custom-declare-variable bubbles-grid-size "Size of bubbles grid." :type radio const :tag "Small" "Medium" "Large" "Huge" ((cons :tag "User defined" (integer :tag "Width") (integer :tag "Height"))) :group bubbles] 13) #@48 Predefined bubbles color list with two colors. (defconst bubbles--colors-2 '("orange" "violet") (#$ . 3134)) #@50 Predefined bubbles color list with three colors. (defconst bubbles--colors-3 '("lightblue" "palegreen" "pink") (#$ . 3249)) #@49 Predefined bubbles color list with four colors. (defconst bubbles--colors-4 '("firebrick" "sea green" "steel blue" "chocolate") (#$ . 3379)) #@49 Predefined bubbles color list with five colors. (defconst bubbles--colors-5 '("firebrick" "sea green" "steel blue" "sandy brown" "bisque3") (#$ . 3526)) (byte-code "\304\305\301\306\307\310\311\312\313F\311\312\314 F\311\312\315\nF\311\312\316F\317BBBBB\320\321&\210\304\322\323\324\307\325\320\321&\210\304\326\327\330\307\331\320\321&\210\304\332\333\334\320\321\307\335&\207" [bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--colors-5 custom-declare-variable bubbles-colors "List of bubble colors.\nThe length of this list determines how many different bubble\ntypes are present." :type radio const :tag "Red, darkgreen" "Red, darkgreen, blue" "Red, darkgreen, blue, orange" "Red, darkgreen, blue, orange, violet" ((repeat :tag "User defined" color)) :group bubbles bubbles-chars '(43 79 35 88 46 42 38 167) "Characters used for bubbles.\nNote that the actual number of different bubbles is determined by\nthe number of colors, see `bubbles-colors'." (repeat character) bubbles-shift-mode 'default "Shift mode.\nAvailable modes are `shift-default' and `shift-always'." (radio (const :tag "Default" default) (const :tag "Shifter" always)) bubbles-mode-hook nil "Hook run by Bubbles mode." hook] 13) #@40 Open customization buffer for bubbles. (defalias 'bubbles-customize #[nil "\300\301!\207" [customize-group bubbles] 2 (#$ . 4753) nil]) #@24 Current Bubbles score. (defvar bubbles--score 0 (#$ . 4895)) #@39 Score of active bubbles neighborhood. (defvar bubbles--neighbourhood-score 0 (#$ . 4962)) #@31 List of currently used faces. (defvar bubbles--faces nil (#$ . 5058)) #@24 Play status indicator. (defvar bubbles--playing nil (#$ . 5134)) #@52 Image used for removed bubbles (empty grid cells). (defvar bubbles--empty-image nil (#$ . 5205)) #@29 List of images for bubbles. (defvar bubbles--images nil (#$ . 5308)) #@57 Indicate whether images have been created successfully. (defvar bubbles--images-ok nil (#$ . 5383)) #@51 Horizontal offset for centering the bubbles grid. (defvar bubbles--col-offset 0 (#$ . 5489)) #@49 Vertical offset for centering the bubbles grid. (defvar bubbles--row-offset 0 (#$ . 5588)) #@59 List containing bubbles save data (SCORE BUFFERCONTENTS). (defvar bubbles--save-data nil (#$ . 5685)) (defconst bubbles--image-template-circle "/* XPM */\nstatic char * dot_xpm[] = {\n\"20 20 2 1\",\n\" c None\",\n\". c #FFFFFF\",\n\" ...... \",\n\" .......... \",\n\" .............. \",\n\" ................ \",\n\" ................ \",\n\" .................. \",\n\" .................. \",\n\"....................\",\n\"....................\",\n\"....................\",\n\"....................\",\n\"....................\",\n\"....................\",\n\" .................. \",\n\" .................. \",\n\" ................ \",\n\" ................ \",\n\" .............. \",\n\" .......... \",\n\" ...... \"};") (defconst bubbles--image-template-square "/* XPM */\nstatic char * dot_xpm[] = {\n\"20 20 2 1\",\n\"0 c None\",\n\"1 c #FFFFFF\",\n\"00000000000000000000\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"01111111111111111110\",\n\"00000000000000000000\"};") (defconst bubbles--image-template-diamond "/* XPM */\nstatic char * dot_xpm[] = {\n\"20 20 2 1\",\n\"0 c None\",\n\"1 c #FFFFFF\",\n\"00000000011000000000\",\n\"00000000111100000000\",\n\"00000001111110000000\",\n\"00000011111111000000\",\n\"00000111111111100000\",\n\"00001111111111110000\",\n\"00011111111111111000\",\n\"00111111111111111100\",\n\"01111111111111111110\",\n\"11111111111111111111\",\n\"01111111111111111110\",\n\"00111111111111111100\",\n\"00011111111111111000\",\n\"00001111111111110000\",\n\"00000111111111100000\",\n\"00000011111111000000\",\n\"00000001111110000000\",\n\"00000000111100000000\",\n\"00000000011000000000\",\n\"00000000000000000000\"};") (defconst bubbles--image-template-emacs "/* XPM */\nstatic char * emacs_24_xpm[] = {\n\"24 24 129 2\",\n\" c None\",\n\". c #837DA4\",\n\"+ c #807AA0\",\n\"@ c #9894B2\",\n\"# c #CCCAD9\",\n\"$ c #C2C0D2\",\n\"% c #B6B3C9\",\n\"& c #A19DB9\",\n\"* c #8681A5\",\n\"= c #7D779B\",\n\"- c #B6B3C7\",\n\"; c #ABA7BE\",\n\"> c #9792AF\",\n\", c #AAA6BD\",\n\"' c #CBC9D7\",\n\") c #AAA7BE\",\n\"! c #908BAA\",\n\"~ c #797397\",\n\"{ c #948FAC\",\n\"] c #9A95B1\",\n\"^ c #EBEAEF\",\n\"/ c #F1F1F5\",\n\"( c #BCB9CB\",\n\"_ c #A9A5BD\",\n\": c #757093\",\n\"< c #918DA9\",\n\"[ c #DDDBE4\",\n\"} c #FFFFFF\",\n\"| c #EAE9EF\",\n\"1 c #A7A4BA\",\n\"2 c #716C8F\",\n\"3 c #8D89A5\",\n\"4 c #9C98B1\",\n\"5 c #DBDAE3\",\n\"6 c #A4A1B7\",\n\"7 c #6E698A\",\n\"8 c #8B87A1\",\n\"9 c #928EA7\",\n\"0 c #C5C3D1\",\n\"a c #F8F8F9\",\n\"b c #CCCAD6\",\n\"c c #A29FB4\",\n\"d c #6A6585\",\n\"e c #88849D\",\n\"f c #B5B2C2\",\n\"g c #F0F0F3\",\n\"h c #E1E0E6\",\n\"i c #A5A2B5\",\n\"j c #A09DB1\",\n\"k c #676281\",\n\"l c #85819A\",\n\"m c #9591A7\",\n\"n c #E1E0E5\",\n\"o c #F0EFF2\",\n\"p c #B3B0C0\",\n\"q c #9D9AAE\",\n\"r c #635F7C\",\n\"s c #827F96\",\n\"t c #9997AA\",\n\"u c #F7F7F9\",\n\"v c #C8C7D1\",\n\"w c #89869D\",\n\"x c #9B99AB\",\n\"y c #5F5B78\",\n\"z c #7F7C93\",\n\"A c #CFCDD6\",\n\"B c #B7B5C2\",\n\"C c #9996A9\",\n\"D c #5C5873\",\n\"E c #7A778D\",\n\"F c #F5F5F6\",\n\"G c #8E8C9E\",\n\"H c #7D798F\",\n\"I c #58546F\",\n\"J c #6C6981\",\n\"K c #D5D4DB\",\n\"L c #F5F4F6\",\n\"M c #9794A5\",\n\"N c #625F78\",\n\"O c #79768C\",\n\"P c #55516A\",\n\"Q c #605C73\",\n\"R c #CAC9D1\",\n\"S c #EAE9EC\",\n\"T c #B4B3BE\",\n\"U c #777488\",\n\"V c #514E66\",\n\"W c #DEDEE2\",\n\"X c #F4F4F5\",\n\"Y c #9D9BA9\",\n\"Z c #747185\",\n\"` c #4E4B62\",\n\" . c #DEDDE1\",\n\".. c #A6A5B0\",\n\"+. c #716F81\",\n\"@. c #4A475D\",\n\"#. c #A4A3AE\",\n\"$. c #F4F3F5\",\n\"%. c #777586\",\n\"&. c #6E6C7D\",\n\"*. c #464358\",\n\"=. c #514E62\",\n\"-. c #B9B8C0\",\n\";. c #D1D0D5\",\n\">. c #747282\",\n\",. c #6B6979\",\n\"'. c #434054\",\n\"). c #5A5769\",\n\"!. c #D0CFD4\",\n\"~. c #5B5869\",\n\"{. c #696676\",\n\"]. c #403D50\",\n\"^. c #DBDADE\",\n\"/. c #F3F3F4\",\n\"(. c #646271\",\n\"_. c #666473\",\n\":. c #3D3A4C\",\n\"<. c #555362\",\n\"[. c #9E9DA6\",\n\"}. c #9E9CA5\",\n\"|. c #646170\",\n\"1. c #393647\",\n\"2. c #514E5D\",\n\"3. c #83818C\",\n\"4. c #A8A7AE\",\n\"5. c #E6E6E8\",\n\"6. c #DAD9DC\",\n\"7. c #353343\",\n\"8. c #32303E\",\n\" . . . . . . . . . . . . . . . . . . \",\n\" + @ # $ % % % % % % % % % % % % % % & * + + \",\n\" = - ; > > > > > > > > , ' ) > > > > > > ! = \",\n\"~ ~ { { { { { { { { { { { ] ^ / ( { { { { _ ~ ~ \",\n\": : < < < < < < < < < < < < [ } } | < < < 1 : : \",\n\"2 2 3 3 3 3 3 3 3 3 3 3 4 5 } } } 5 3 3 3 6 2 2 \",\n\"7 7 8 8 8 8 8 8 8 8 9 0 a } } } b 8 8 8 8 c 7 7 \",\n\"d d e e e e e e e f g } } } h i e e e e e j d d \",\n\"k k l l l l l m n } } } o p l l l l l l l q k k \",\n\"r r s s s s t u } } } v w s s s s s s s s x r r \",\n\"y y z z z z A } } } B z z z z z z z z z z C y y \",\n\"D D D D D D E F } } G D D D D D D D D D D H D D \",\n\"I I I I I I I J K } L M N I I I I I I I I O I I \",\n\"P P P P P P Q R } } } S T P P P P P P P P U P P \",\n\"V V V V V V W } } X Y V V V V V V V V V V Z V V \",\n\"` ` ` ` ` ` .} } ..` ` ` ` ` ` ` ` ` ` ` +.` ` \",\n\"@.@.@.@.@.@.@.#.$.$.%.@.@.@.@.@.@.@.@.@.@.&.@.@.\",\n\"*.*.*.*.*.*.*.*.=.-.} ;.>.*.*.*.*.*.*.*.*.,.*.*.\",\n\"'.'.'.'.'.'.'.'.'.'.).!.} !.~.'.'.'.'.'.'.{.'.'.\",\n\"].].].].].].].].].].].].^.} /.(.].].].].]._.].].\",\n\":.:.:.:.:.:.:.:.:.:.<.[./.} } }.:.:.:.:.:.|.:.:.\",\n\" 1.1.1.1.1.1.1.1.2.3.4.5.6.3.1.1.1.1.1.1.1.1. \",\n\" 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7. \",\n\" 8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8. \"};") (defconst bubbles--image-template-ball "/* XPM */\nstatic char * dot3d_xpm[] = {\n\"20 20 190 2\",\n\" c None\",\n\". c #F9F6F6\",\n\"+ c #D6D0D0\",\n\"@ c #BFBBBB\",\n\"# c #AAA4A4\",\n\"$ c #ABAAAB\",\n\"% c #A8A8A8\",\n\"& c #A29D9D\",\n\"* c #B5B2B2\",\n\"= c #CDC9C9\",\n\"- c #D7D0D0\",\n\"; c #B3AFAF\",\n\"> c #B5B5B5\",\n\", c #B7B7B7\",\n\"' c #B8B8B8\",\n\") c #B6B6B6\",\n\"! c #B3B3B3\",\n\"~ c #AFAFAF\",\n\"{ c #A9A9A9\",\n\"] c #A2A2A2\",\n\"^ c #9C9A9A\",\n\"/ c #C9C5C5\",\n\"( c #FDFBFB\",\n\"_ c #C3BCBC\",\n\": c #BBBBBB\",\n\"< c #C0C0C0\",\n\"[ c #C3C2C2\",\n\"} c #C3C3C3\",\n\"| c #C2C2C2\",\n\"1 c #BEBEBE\",\n\"2 c #B9B9B9\",\n\"3 c #B2B2B2\",\n\"4 c #ABAAAA\",\n\"5 c #999999\",\n\"6 c #ACA7A7\",\n\"7 c #C2BBBB\",\n\"8 c #C5C5C5\",\n\"9 c #CACBCB\",\n\"0 c #CECECE\",\n\"a c #CFCFCF\",\n\"b c #CDCDCD\",\n\"c c #C8C9C9\",\n\"d c #9F9F9F\",\n\"e c #959595\",\n\"f c #A9A5A5\",\n\"g c #D5CFCE\",\n\"h c #BDBDBD\",\n\"i c #C6C6C6\",\n\"j c #D5D5D5\",\n\"k c #D9D9D9\",\n\"l c #DADADA\",\n\"m c #D8D8D8\",\n\"n c #D2D2D2\",\n\"o c #CBCBCB\",\n\"p c #A4A4A5\",\n\"q c #9A9A9A\",\n\"r c #8F8F8F\",\n\"s c #C3BFBF\",\n\"t c #AFACAB\",\n\"u c #CCCCCC\",\n\"v c #D6D6D6\",\n\"w c #DEDEDE\",\n\"x c #E4E4E4\",\n\"y c #E5E5E5\",\n\"z c #E2E2E2\",\n\"A c #DBDBDB\",\n\"B c #C9C8C8\",\n\"C c #A8A9A8\",\n\"D c #9D9E9D\",\n\"E c #929292\",\n\"F c #8A8888\",\n\"G c #D3CECE\",\n\"H c #B0B0B0\",\n\"I c #D1D1D1\",\n\"J c #DCDCDC\",\n\"K c #E6E6E6\",\n\"L c #EEEEEE\",\n\"M c #F1F1F0\",\n\"N c #EBEBEB\",\n\"O c #D7D7D8\",\n\"P c #ABABAB\",\n\"Q c #A0A0A0\",\n\"R c #949494\",\n\"S c #898989\",\n\"T c #C0BDBD\",\n\"U c #B9B6B6\",\n\"V c #B1B1B1\",\n\"W c #BCBCBC\",\n\"X c #C8C8C8\",\n\"Y c #D3D3D3\",\n\"Z c #DFDFDE\",\n\"` c #EAEAEA\",\n\" . c #F5F5F5\",\n\".. c #FAFAFA\",\n\"+. c #F1F1F1\",\n\"@. c #CECFCF\",\n\"#. c #ACACAC\",\n\"$. c #A1A1A1\",\n\"%. c #8A8A8A\",\n\"&. c #9B9999\",\n\"*. c #C7C7C7\",\n\"=. c #DDDDDD\",\n\"-. c #E8E8E8\",\n\";. c #F2F2F2\",\n\">. c #898A89\",\n\",. c #7A7878\",\n\"'. c #AEAEAE\",\n\"). c #C4C4C4\",\n\"!. c #CBCBCA\",\n\"~. c #AAAAAA\",\n\"{. c #939393\",\n\"]. c #888888\",\n\"^. c #7C7C7C\",\n\"/. c #AAAAAB\",\n\"(. c #BFBFBF\",\n\"_. c #C9C9C9\",\n\":. c #DFDEDF\",\n\"<. c #A6A6A6\",\n\"[. c #9B9B9B\",\n\"}. c #909191\",\n\"|. c #858586\",\n\"1. c #797979\",\n\"2. c #989494\",\n\"3. c #A5A6A5\",\n\"4. c #B9B9B8\",\n\"5. c #C1C1C1\",\n\"6. c #CFCFCE\",\n\"7. c #979797\",\n\"8. c #8D8D8D\",\n\"9. c #828282\",\n\"0. c #747171\",\n\"a. c #ADAAAA\",\n\"b. c #A9A8A9\",\n\"c. c #B8B9B9\",\n\"d. c #A5A5A5\",\n\"e. c #9C9C9C\",\n\"f. c #7E7E7D\",\n\"g. c #929191\",\n\"h. c #C9C4C4\",\n\"i. c #989898\",\n\"j. c #ADADAD\",\n\"k. c #9D9D9D\",\n\"l. c #8C8C8C\",\n\"m. c #787878\",\n\"n. c #B8B6B6\",\n\"o. c #939191\",\n\"p. c #A5A5A6\",\n\"q. c #ABABAA\",\n\"r. c #A8A8A9\",\n\"s. c #A3A3A3\",\n\"t. c #858585\",\n\"u. c #757474\",\n\"v. c #C5C1C1\",\n\"w. c #969696\",\n\"x. c #9B9B9C\",\n\"y. c #A4A4A4\",\n\"z. c #9E9E9E\",\n\"A. c #939394\",\n\"B. c #7D7D7D\",\n\"C. c #747474\",\n\"D. c #B7B5B5\",\n\"E. c #A5A1A1\",\n\"F. c #919191\",\n\"G. c #9A9999\",\n\"H. c #838383\",\n\"I. c #757575\",\n\"J. c #939090\",\n\"K. c #A29E9E\",\n\"L. c #868686\",\n\"M. c #8D8D8C\",\n\"N. c #8E8E8E\",\n\"O. c #8D8D8E\",\n\"P. c #8B8C8C\",\n\"Q. c #848485\",\n\"R. c #7F7F80\",\n\"S. c #7A7A7A\",\n\"T. c #737373\",\n\"U. c #929090\",\n\"V. c #828080\",\n\"W. c #818181\",\n\"X. c #808080\",\n\"Y. c #7E7E7E\",\n\"Z. c #737272\",\n\"`. c #B7B4B4\",\n\" + c #BCBABA\",\n\".+ c #959494\",\n\"++ c #747172\",\n\"@+ c #767676\",\n\"#+ c #6F6D6D\",\n\"$+ c #8F8E8E\",\n\" . + @ # $ % & * = . \",\n\" - ; > , ' ) ! ~ { ] ^ / \",\n\" ( _ > : < [ } | 1 2 3 4 ] 5 6 ( \",\n\" 7 ) 1 8 9 0 a b c | : 3 { d e f \",\n\" g ! h i 0 j k l m n o | 2 ~ p q r s \",\n\". t ' | u v w x y z A n B 1 ! C D E F . \",\n\"G H : i I J K L M N z O b | ) P Q R S T \",\n\"U V W X Y Z ` ...+.y l @.} ' #.$.e %.&.\",\n\"& H W *.n =.-.;. .L x k 0 [ , #.Q e >.,.\",\n\"] '.2 ).a k z -.` K w j !.< > ~.d {.].^.\",\n\"d /.> (._.I k =.:.J v 0 8 : V <.[.}.|.1.\",\n\"2.3.~ 4.5._.6.n Y I u i 1 > P $.7.8.9.0.\",\n\"a.d b.V c.(.).*.X i | h ) '.d.e.E ].f.g.\",\n\"h.i.$.C ~ > 2 W W : ' ! j.d.k.e l.9.m.n.\",\n\". o.i.d p.q.'.H V H j.r.s.k.e 8.t.^.u.. \",\n\" v.r w.x.Q s.d.d.y.] z.5 A.8.t.B.C.D. \",\n\" E.l.F.e i.G.q 5 7.{.r %.H.^.I.J. \",\n\" ( K.L.%.M.N.N.O.P.S Q.R.S.T.U.( \",\n\" @ V.W.H.H.9.X.Y.S.I.Z.`. \",\n\" . +.+++@+C.#+$+D.. \"};") #@51 Return the grid width for the current game theme. (defalias 'bubbles--grid-width #[nil "\306=\203\n \2023 \307=\203 \n\2023 \310=\203 \2023 \311=\203( \f\2023 \312=\2032 \2023 \313@\207" [bubbles-game-theme bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size easy medium difficult hard user-defined nil] 2 (#$ . 16336)]) (put 'bubbles--grid-width 'byte-optimizer 'byte-compile-inline-expand) #@52 Return the grid height for the current game theme. (defalias 'bubbles--grid-height #[nil "\306=\203\n \2023 \307=\203 \n\2023 \310=\203 \2023 \311=\203( \f\2023 \312=\2032 \2023 \313A\207" [bubbles-game-theme bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size easy medium difficult hard user-defined nil] 2 (#$ . 16790)]) (put 'bubbles--grid-height 'byte-optimizer 'byte-compile-inline-expand) #@51 Return the color list for the current game theme. (defalias 'bubbles--colors #[nil "\306=\203 \207\307=\203 \n\207\310=\203 \207\311=\203 \f\207\312=\203( \207\313\207" [bubbles-game-theme bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--colors-5 bubbles-colors easy medium difficult hard user-defined nil] 2 (#$ . 17247)]) (put 'bubbles--colors 'byte-optimizer 'byte-compile-inline-expand) #@51 Return the shift mode for the current game theme. (defalias 'bubbles--shift-mode #[nil "\302=\203 \303\207\304=\203 \303\207\305=\203 \306\207\307=\203 \306\207\310=\203( \207\311\207" [bubbles-game-theme bubbles-shift-mode easy default medium difficult always hard user-defined nil] 2 (#$ . 17670)]) (put 'bubbles--shift-mode 'byte-optimizer 'byte-compile-inline-expand) #@38 Save current customization settings. (defalias 'bubbles-save-settings #[nil "\302\300\303D\304E\301\303 D\304E\"\210\305 \207" [bubbles-game-theme bubbles-graphics-theme custom-set-variables quote t customize-save-customized] 5 (#$ . 18058) nil]) #@60 The character used for removed bubbles (empty grid cells). (defalias 'bubbles--empty-char #[nil "\300\207" [32] 1 (#$ . 18312)]) (put 'bubbles--empty-char 'byte-optimizer 'byte-compile-inline-expand) #@32 Set graphics theme to `ascii'. (defalias 'bubbles-set-graphics-theme-ascii #[nil "\301\302 \207" [bubbles-graphics-theme ascii bubbles--update-faces-or-images] 1 (#$ . 18518) nil]) #@34 Set graphics theme to `circles'. (defalias 'bubbles-set-graphics-theme-circles #[nil "\301\302 \210\303 \207" [bubbles-graphics-theme circles bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 18706) nil]) #@34 Set graphics theme to `squares'. (defalias 'bubbles-set-graphics-theme-squares #[nil "\301\302 \210\303 \207" [bubbles-graphics-theme squares bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 18936) nil]) #@35 Set graphics theme to `diamonds'. (defalias 'bubbles-set-graphics-theme-diamonds #[nil "\301\302 \210\303 \207" [bubbles-graphics-theme diamonds bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19166) nil]) #@32 Set graphics theme to `balls'. (defalias 'bubbles-set-graphics-theme-balls #[nil "\301\302 \210\303 \207" [bubbles-graphics-theme balls bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19399) nil]) #@32 Set graphics theme to `emacs'. (defalias 'bubbles-set-graphics-theme-emacs #[nil "\301\302 \210\303 \207" [bubbles-graphics-theme emacs bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19623) nil]) #@34 Map for bubbles game theme menu. (defvar bubbles-game-theme-menu (byte-code "\301\302!\303\304\305\306\307\310\311\257#\210\303\312\305\313\314\310\315\257#\210\303\316\305\317\320\310\321\257#\210\303\322\305\323\324\310\325\257#\210\303\326\305\327\330\310\331\257#\210)\207" [menu make-sparse-keymap "Game Theme" define-key [bubbles-set-game-userdefined] menu-item "User defined" bubbles-set-game-userdefined :button (:radio eq bubbles-game-theme 'user-defined) [bubbles-set-game-hard] "Hard" bubbles-set-game-hard (:radio eq bubbles-game-theme 'hard) [bubbles-set-game-difficult] "Difficult" bubbles-set-game-difficult (:radio eq bubbles-game-theme 'difficult) [bubbles-set-game-medium] "Medium" bubbles-set-game-medium (:radio eq bubbles-game-theme 'medium) [bubbles-set-game-easy] "Easy" bubbles-set-game-easy (:radio eq bubbles-game-theme 'easy)] 8) (#$ . 19847)) #@38 Map for bubbles graphics theme menu. (defvar bubbles-graphics-theme-menu (byte-code "\301\302!\303\304\305\306\307\310\311\257#\210\303\312\305\313\314\310\315\257#\210\303\316\305\317\320\310\321\257#\210\303\322\305\323\324\310\325\257#\210\303\326\305\327\330\310\331\257#\210\303\332\305\333\334\310\335\257#\210)\207" [menu make-sparse-keymap "Graphics Theme" define-key [bubbles-set-graphics-theme-ascii] menu-item "ASCII" bubbles-set-graphics-theme-ascii :button (:radio eq bubbles-graphics-theme 'ascii) [bubbles-set-graphics-theme-emacs] "Emacs" bubbles-set-graphics-theme-emacs (:radio eq bubbles-graphics-theme 'emacs) [bubbles-set-graphics-theme-balls] "Balls" bubbles-set-graphics-theme-balls (:radio eq bubbles-graphics-theme 'balls) [bubbles-set-graphics-theme-diamonds] "Diamonds" bubbles-set-graphics-theme-diamonds (:radio eq bubbles-graphics-theme 'diamonds) [bubbles-set-graphics-theme-squares] "Squares" bubbles-set-graphics-theme-squares (:radio eq bubbles-graphics-theme 'squares) [bubbles-set-graphics-theme-circles] "Circles" bubbles-set-graphics-theme-circles (:radio eq bubbles-graphics-theme 'circles)] 8) (#$ . 20736)) #@23 Map for bubbles menu. (defvar bubbles-menu (byte-code "\303\304!\305\306\307\310\311E#\210\305\312\307\313\314E#\210\305\315\316#\210\305\317\307\320\321E#\210\305\322\307\323\324E#\210\305\325\307\326 E#\210\305\327\307\330\n\331\332\257#\210\305\333\334#\210\305\335\307\336\337\331\340\257#\210)\207" [menu bubbles-game-theme-menu bubbles-graphics-theme-menu make-sparse-keymap "Bubbles" define-key [bubbles-quit] menu-item "Quit" bubbles-quit [bubbles] "New game" bubbles [bubbles-separator-1] ("--") [bubbles-save-settings] "Save all settings" bubbles-save-settings [bubbles-customize] "Edit all settings" bubbles-customize [bubbles-game-theme-menu] "Game Theme" [bubbles-graphics-theme-menu] "Graphics Theme" :enable bubbles--playing [bubbles-separator-2] ("--") [bubbles-undo] "Undo last move" bubbles-undo (and bubbles--playing (listp buffer-undo-list))] 8) (#$ . 21904)) #@23 Mode map for bubbles. (defvar bubbles-mode-map (byte-code "\302\303!\304\305\306#\210\304\307\310#\210\304\311\310#\210\304\312\310#\210\304\313\310#\210\304\314\310#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327 #\210\304\330\331 B#\210)\207" [map bubbles-menu make-sparse-keymap bubbles-mode-map define-key "q" bubbles-quit "\n" bubbles-plop " " [double-down-mouse-1] [mouse-2] " " "u" bubbles-undo "p" previous-line "n" next-line "f" forward-char "b" backward-char [down-mouse-3] [menu-bar Bubbles] "Bubbles"] 5) (#$ . 22803)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\300\207" [bubbles-mode-hook variable-documentation put purecopy "Hook run when entering Bubbles mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp bubbles-mode-map definition-name bubbles-mode] 5) (defvar bubbles-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\300\207" [bubbles-mode-map variable-documentation put purecopy "Keymap for `bubbles-mode'." boundp bubbles-mode-syntax-table definition-name bubbles-mode] 5) (defvar bubbles-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [bubbles-mode-syntax-table variable-documentation put purecopy "Syntax table for `bubbles-mode'." bubbles-mode-abbrev-table definition-name bubbles-mode] 5) (defvar bubbles-mode-abbrev-table (progn (define-abbrev-table 'bubbles-mode-abbrev-table nil) bubbles-mode-abbrev-table)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [bubbles-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `bubbles-mode'." bubbles-mode derived-mode-parent nil] 5) #@140 Major mode for playing bubbles. \{bubbles-mode-map} This mode runs the hook `bubbles-mode-hook', as the final step during initialization. (defalias 'bubbles-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210 \307\315\316 \210\317 \210\320 \210\321\322\323\307\211$\210)\324\325!\207" [delay-mode-hooks major-mode mode-name bubbles-mode-map bubbles-mode-syntax-table bubbles-mode-abbrev-table make-local-variable t kill-all-local-variables bubbles-mode "Bubbles" use-local-map set-syntax-table nil buffer-disable-undo force-mode-line-update redisplay add-hook post-command-hook bubbles--mark-neighbourhood run-mode-hooks bubbles-mode-hook local-abbrev-table buffer-read-only show-trailing-whitespace] 5 (#$ . 24703) nil]) #@553 Play Bubbles game. \<bubbles-mode-map> The goal is to remove all bubbles with as few moves as possible. \[bubbles-plop] on a bubble removes that bubble and all connected bubbles of the same color. Unsupported bubbles fall down, and columns that do not contain any bubbles suck the columns on its right towards the left. \[bubbles-set-game-easy] sets the difficulty to easy. \[bubbles-set-game-medium] sets the difficulty to medium. \[bubbles-set-game-difficult] sets the difficulty to difficult. \[bubbles-set-game-hard] sets the difficulty to hard. (defalias 'bubbles #[nil "\302\303\304!!\210\203 \305\306!\205 \307\310\311 \207" [bubbles--playing bubbles--save-data switch-to-buffer get-buffer-create "*bubbles*" y-or-n-p "Start new game? " nil t bubbles--initialize] 3 (#$ . 25458) nil]) #@15 Quit Bubbles. (defalias 'bubbles-quit #[nil "\300\301!\210\302 \207" [message "bubbles-quit" bury-buffer] 2 (#$ . 26263) nil]) #@125 Update horizontal and vertical offsets for centering the bubbles grid. Set `bubbles--col-offset' and `bubbles--row-offset'. (defalias 'bubbles--compute-offsets #[nil "\306 \203\267 \203\267 \307=\204\267 \310\311!\203\267 \312\n@\313\"@\314\315\316\311 8\311 @\316\\\f\317=\2032 \202_ \f\320=\203= \202_ \f\321=\203H \202_ \f\322=\203S \202_ \f\323=\203^ \202_ \324@_#\316\245]C\314\315\325\311 8\311 A@T\f\317=\203~ \202\253 \f\320=\203\211 \202\253 \f\321=\203\224 \202\253 \f\322=\203\237 \202\253 \f\323=\203\252 \202\253 \324A_#\316\245]C\211)\207\314\326 \f\317=\203\304 \202\361 \f\320=\203\317 \202\361 \f\321=\203\332 \202\361 \f\322=\203\345 \202\361 \f\323=\203\360 \202\361 \324@Z\316\245]\314\315\327 \f\317=\203 \2023\f\320=\203\2023\f\321=\203\2023\f\322=\203'\2023\f\323=\2032\2023\324A\316#\316\245]\211\207" [bubbles--images-ok bubbles-graphics-theme bubbles--images bubbles--image-size bubbles-game-theme bubbles--grid-small display-images-p ascii fboundp window-inside-pixel-edges image-size t 0 - 2 easy medium difficult hard user-defined nil 3 window-width window-height bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size bubbles--col-offset bubbles--row-offset] 7 (#$ . 26397)]) #@22 Remove all overlays. (defalias 'bubbles--remove-overlays #[nil "\300\301!\205 \301 \207" [fboundp remove-overlays] 2 (#$ . 27693)]) #@26 Initialize Bubbles game. (defalias 'bubbles--initialize #[nil "\306 \210\307 \210\310 \210\311\312\313!!\210\314 \210\315\316\317!\210\320 \210\321c\210\322e`\323\315\324\325\326 DBF#\210\327c\210\n\330=\2039 \202d \n\331=\203C \f\202d \n\332=\203M \202d \n\333=\203X +\202d \n\334=\203c ,\202d \317G-\n\330=\203r .\202\237 \n\331=\203} /\202\237 \n\332=\203\210 0\202\237 \n\333=\203\223 1\202\237 \n\334=\203\236 2\202\237 \317A\3353434W\203:`5\321c\210\3225`\323\315\324\325\3366DBF#\210)\n\330=\203\317 .\202\374 \n\331=\203\332 /\202\374 \n\332=\203\345 0\202\374 \n\333=\203\360 1\202\374 \n\334=\203\373 2\202\374 \317@\3357474W\203-\337-!\211 88\2119c\210\322`S`\340 D#\210*7T\2117\202*\327c\2103T\2113\202\247 *\341c\210\322`S`\323\315\324\325\3366DBF#\210)\342ed\343\344$\210)\345 \210\346 \210\347 \210\350\335\211\"\210\315:\351 \210\352 \207" [inhibit-read-only bubbles--row-offset bubbles-game-theme bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--initialize-faces bubbles--initialize-images bubbles--remove-overlays switch-to-buffer get-buffer-create "*bubbles*" bubbles--compute-offsets t set-buffer-modified-p nil erase-buffer " " add-text-properties intangible display space :height "\n" easy medium difficult hard user-defined 0 :width random index "\n " put-text-property pointer arrow bubbles-mode bubbles--reset-score bubbles--update-faces-or-images bubbles--goto force-mode-line-update redisplay bubbles--colors-5 bubbles-colors max-char bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size i --dotimes-limit-- p bubbles--col-offset j bubbles-chars char buffer-undo-list] 10 (#$ . 27832)]) #@38 Prepare faces for playing `bubbles'. (defalias 'bubbles--initialize-faces #[nil "\306\307\310\"\210\311\310\312\"\210\313 \205H \314\315\316=\203 \202D \317=\203% \n\202D \320=\203/ \202D \321=\2039 \f\202D \322=\203C \202D \323\"\211\207" [bubbles-game-theme bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--colors-5 bubbles-colors copy-face default bubbles--highlight-face set-face-background "#8080f4" display-color-p mapcar #[(color) "\302\303\304\"!\305 !\204 \306\307 \"\210\310 \"\210 )\207" [color fname intern format "bubbles--face-%s" facep copy-face default set-face-foreground] 4] easy medium difficult hard user-defined nil bubbles--faces] 4 (#$ . 29553)]) #@26 Return row of point POS. (defalias 'bubbles--row #[(pos) "\212b\210\301 \210\302e`\"S)\207" [pos beginning-of-line count-lines] 3 (#$ . 30258)]) (put 'bubbles--row 'byte-optimizer 'byte-compile-inline-expand) #@29 Return column of point POS. (defalias 'bubbles--col #[(pos) "\212b\210iS)\207" [pos] 1 (#$ . 30474)]) (put 'bubbles--col 'byte-optimizer 'byte-compile-inline-expand) #@50 Move point to bubble at coordinates ROW and COL. (defalias 'bubbles--goto #[(row col) "\306W\206 \306W\206 \n\307=\203 \202B \n\310=\203! \f\202B \n\311=\203+ \202B \n\312=\2036 \202B \n\313=\203A \202B \314AY\206 \n\307=\203R \202} \n\310=\203\\ \f\202} \n\311=\203f \202} \n\312=\203q \202} \n\313=\203| \202} \314@Y?\205\217 eb\210Ty\210 Tu\210`\207" [row col bubbles-game-theme bubbles--grid-small bubbles--grid-medium bubbles--grid-large 0 easy medium difficult hard user-defined nil bubbles--grid-huge bubbles-grid-size] 3 (#$ . 30647)]) #@41 Return character at bubble ROW and COL. (defalias 'bubbles--char-at #[(row col) "\212\302 \"\205\n `f)\207" [row col bubbles--goto] 3 (#$ . 31218)]) #@60 Mark direct neighbors of bubble at ROW COL with same CHAR. (defalias 'bubbles--mark-direct-neighbours #[(row col char) "\212\304\305 \n\"\203; `f=\203; \306`\307\"\204; \310``T\311#\210\312\313\314 \nT#\314 \nS#\314 T\n#\314 S\n#%*\207" [count row col char 0 bubbles--goto get-text-property active add-text-properties (active t face 'bubbles--highlight-face) + 1 bubbles--mark-direct-neighbours] 9 (#$ . 31374)]) #@83 Mark neighborhood of point. Use optional parameter POS instead of point if given. (defalias 'bubbles--mark-neighbourhood #[(&optional pos) "\205 \204\n `\302\303\304\217\207" [bubbles--playing pos err (byte-code "f\306`\212b\210\307 \210\310e`\"S*`\212b\210iS*\311ed\312#\210\313\n\203I \203I \f\314=\204I \315\n \f#\211\316V\204I \311ed\317#\210\313\320 !\210)\321ed\322\323$\210\324 \210\325\313!,\207" [pos col row inhibit-read-only char count t beginning-of-line count-lines add-text-properties (face default active nil) 0 32 bubbles--mark-direct-neighbours 1 (face default active nil) bubbles--update-neighbourhood-score put-text-property pointer arrow bubbles--update-faces-or-images sit-for] 6) ((error (message "Bubbles: Internal error %s" err)))] 3 (#$ . 31801)]) #@54 Return t if another valid neighborhood is available. (defalias 'bubbles--neighbourhood-available #[nil "\300\301\215\207" [found (byte-code "\212\306=\203 \2024 \307=\203 \n\2024 \310=\203 \2024 \311=\203) \f\2024 \312=\2033 \2024 \313A\314W\203\304 \306=\203L \202u \307=\203V \n\202u \310=\203` \202u \311=\203j \f\202u \312=\203t \202u \313@\314W\203\272 \315\"\211\316=\204\260 \315T\"=\204\253 \315T\"=\203\260 \317\320\321\"\210)T\211\202} *T\211\202<