%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/play/ |
Current File : //usr/local/share/emacs/27.2/lisp/play/bubbles.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@31 Version number of bubbles.el. (defconst bubbles-version "0.5" (#$ . 408)) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\207" [require gamegrid custom-declare-variable bubbles-game-theme funcall function #[0 "\300\207" [easy] 1] "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 #[0 "\301\302 \207" [bubbles-game-theme easy bubbles] 1 (#$ . 959) nil]) #@29 Set game theme to `medium'. (defalias 'bubbles-set-game-medium #[0 "\301\302 \207" [bubbles-game-theme medium bubbles] 1 (#$ . 1098) nil]) #@32 Set game theme to `difficult'. (defalias 'bubbles-set-game-difficult #[0 "\301\302 \207" [bubbles-game-theme difficult bubbles] 1 (#$ . 1244) nil]) #@27 Set game theme to `hard'. (defalias 'bubbles-set-game-hard #[0 "\301\302 \207" [bubbles-game-theme hard bubbles] 1 (#$ . 1399) nil]) #@35 Set game theme to `user-defined'. (defalias 'bubbles-set-game-userdefined #[0 "\301\302 \207" [bubbles-game-theme user-defined bubbles] 1 (#$ . 1539) nil]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315%\207" [custom-declare-group bubbles nil "Bubbles, a puzzle game." :group games custom-declare-variable bubbles-graphics-theme funcall function #[0 "\300\207" [circles] 1] "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))] 6) #@32 Predefined small bubbles grid. (defconst bubbles--grid-small '(10 . 10) (#$ . 2279)) #@33 Predefined medium bubbles grid. (defconst bubbles--grid-medium '(15 . 10) (#$ . 2370)) #@32 Predefined large bubbles grid. (defconst bubbles--grid-large '(20 . 15) (#$ . 2463)) #@31 Predefined huge bubbles grid. (defconst bubbles--grid-huge '(30 . 20) (#$ . 2554)) (byte-code "\304\305\306\307\310DD\311\312\313\314\315\316F\314\315\317 F\314\315\320\nF\314\315\321F\322BBBBB%\207" [bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge custom-declare-variable bubbles-grid-size funcall function #[0 "\207" [bubbles--grid-medium] 1] "Size of bubbles grid." :type radio const :tag "Small" "Medium" "Large" "Huge" ((cons :tag "User defined" (integer :tag "Width") (integer :tag "Height")))] 13) #@48 Predefined bubbles color list with two colors. (defconst bubbles--colors-2 '("orange" "violet") (#$ . 3100)) #@50 Predefined bubbles color list with three colors. (defconst bubbles--colors-3 '("lightblue" "palegreen" "pink") (#$ . 3215)) #@49 Predefined bubbles color list with four colors. (defconst bubbles--colors-4 '("firebrick" "sea green" "steel blue" "chocolate") (#$ . 3345)) #@49 Predefined bubbles color list with five colors. (defconst bubbles--colors-5 '("firebrick" "sea green" "steel blue" "sandy brown" "bisque3") (#$ . 3492)) (byte-code "\304\305\306\307\310DD\311\312\313\314\315\316F\314\315\317 F\314\315\320\nF\314\315\321F\322BBBBB%\210\304\323\306\307\324DD\325\312\326%\210\304\327\306\307\330DD\331\312\332%\210\304\333\306\307\334DD\335\312\336%\207" [bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--colors-5 custom-declare-variable bubbles-colors funcall function #[0 "\207" [bubbles--colors-3] 1] "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)) bubbles-chars #[0 "\300\207" [(43 79 35 88 46 42 38 167)] 1] "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 #[0 "\300\207" [default] 1] "Shift mode.\nAvailable modes are `shift-default' and `shift-always'." (radio (const :tag "Default" default) (const :tag "Shifter" always)) bubbles-mode-hook #[0 "\300\207" [nil] 1] "Hook run by Bubbles mode." hook] 13) #@40 Open customization buffer for bubbles. (defalias 'bubbles-customize #[0 "\300\301!\207" [customize-group bubbles] 2 (#$ . 4818) nil]) #@24 Current Bubbles score. (defvar bubbles--score 0 (#$ . 4958)) #@39 Score of active bubbles neighborhood. (defvar bubbles--neighborhood-score 0 (#$ . 5025)) #@31 List of currently used faces. (defvar bubbles--faces nil (#$ . 5120)) #@24 Play status indicator. (defvar bubbles--playing nil (#$ . 5196)) #@52 Image used for removed bubbles (empty grid cells). (defvar bubbles--empty-image nil (#$ . 5267)) #@29 List of images for bubbles. (defvar bubbles--images nil (#$ . 5370)) #@57 Indicate whether images have been created successfully. (defvar bubbles--images-ok nil (#$ . 5445)) #@62 Horizontal offset for centering the bubbles grid, in pixels. (defvar bubbles--col-offset 0 (#$ . 5551)) #@60 Vertical offset for centering the bubbles grid, in pixels. (defvar bubbles--row-offset 0 (#$ . 5661)) #@59 List containing bubbles save data (SCORE BUFFERCONTENTS). (defvar bubbles--save-data nil (#$ . 5769)) (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 #[0 "\306\267\202 \202 \n\202 \202 \f\202 \202 \307@\207" [bubbles-game-theme bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (easy 6 medium 10 difficult 14 hard 18 user-defined 22)) nil] 2 (#$ . 16420)]) (put 'bubbles--grid-width 'byte-optimizer 'byte-compile-inline-expand) #@52 Return the grid height for the current game theme. (defalias 'bubbles--grid-height #[0 "\306\267\202 \202 \n\202 \202 \f\202 \202 \307A\207" [bubbles-game-theme bubbles--grid-small bubbles--grid-medium bubbles--grid-large bubbles--grid-huge bubbles-grid-size #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (easy 6 medium 10 difficult 14 hard 18 user-defined 22)) nil] 2 (#$ . 16928)]) (put 'bubbles--grid-height 'byte-optimizer 'byte-compile-inline-expand) #@51 Return the color list for the current game theme. (defalias 'bubbles--colors #[0 "\306\267\202 \207\n\207\207\f\207 \207\307\207" [bubbles-game-theme bubbles--colors-2 bubbles--colors-3 bubbles--colors-4 bubbles--colors-5 bubbles-colors #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (easy 6 medium 8 difficult 10 hard 12 user-defined 14)) nil] 2 (#$ . 17439)]) (put 'bubbles--colors 'byte-optimizer 'byte-compile-inline-expand) #@51 Return the shift mode for the current game theme. (defalias 'bubbles--shift-mode #[0 "\302\267\202 \303\207\303\207\304\207\304\207 \207\305\207" [bubbles-game-theme bubbles-shift-mode #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (easy 6 medium 8 difficult 10 hard 12 user-defined 14)) default always nil] 2 (#$ . 17916)]) (put 'bubbles--shift-mode 'byte-optimizer 'byte-compile-inline-expand) #@38 Save current customization settings. (defalias 'bubbles-save-settings #[0 "\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 (#$ . 18358) nil]) #@60 The character used for removed bubbles (empty grid cells). (defalias 'bubbles--empty-char #[0 "\300\207" [32] 1 (#$ . 18610)]) (put 'bubbles--empty-char 'byte-optimizer 'byte-compile-inline-expand) #@32 Set graphics theme to `ascii'. (defalias 'bubbles-set-graphics-theme-ascii #[0 "\301\302 \207" [bubbles-graphics-theme ascii bubbles--update-faces-or-images] 1 (#$ . 18814) nil]) #@34 Set graphics theme to `circles'. (defalias 'bubbles-set-graphics-theme-circles #[0 "\301\302 \210\303 \207" [bubbles-graphics-theme circles bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19000) nil]) #@34 Set graphics theme to `squares'. (defalias 'bubbles-set-graphics-theme-squares #[0 "\301\302 \210\303 \207" [bubbles-graphics-theme squares bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19228) nil]) #@35 Set graphics theme to `diamonds'. (defalias 'bubbles-set-graphics-theme-diamonds #[0 "\301\302 \210\303 \207" [bubbles-graphics-theme diamonds bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19456) nil]) #@32 Set graphics theme to `balls'. (defalias 'bubbles-set-graphics-theme-balls #[0 "\301\302 \210\303 \207" [bubbles-graphics-theme balls bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19687) nil]) #@32 Set graphics theme to `emacs'. (defalias 'bubbles-set-graphics-theme-emacs #[0 "\301\302 \210\303 \207" [bubbles-graphics-theme emacs bubbles--initialize-images bubbles--update-faces-or-images] 1 (#$ . 19909) nil]) #@34 Map for bubbles game theme menu. (defvar bubbles-game-theme-menu (byte-code "\300\301!\302\303\304\305\306\307\310\257#\210\302\311\304\312\313\307\314\257#\210\302\315\304\316\317\307\320\257#\210\302\321\304\322\323\307\324\257#\210\302\325\304\326\327\307\330\257#\210\211\207" [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)] 9) (#$ . 20131)) #@38 Map for bubbles graphics theme menu. (defvar bubbles-graphics-theme-menu (byte-code "\300\301!\302\303\304\305\306\307\310\257#\210\302\311\304\312\313\307\314\257#\210\302\315\304\316\317\307\320\257#\210\302\321\304\322\323\307\324\257#\210\302\325\304\326\327\307\330\257#\210\302\331\304\332\333\307\334\257#\210\211\207" [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)] 9) (#$ . 21016)) #@23 Map for bubbles menu. (defvar bubbles-menu (byte-code "\302\303!\304\305\306\307\310E#\210\304\311\306\312\313E#\210\304\314\315#\210\304\316\306\317\320E#\210\304\321\306\322\323E#\210\304\324\306\325E#\210\304\326\306\327 \330\331\257#\210\304\332\333#\210\304\334\306\335\336\330\337\257#\210\211\207" [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))] 9) (#$ . 22180)) #@23 Mode map for bubbles. (defvar bubbles-mode-map (byte-code "\301\302!\303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\307#\210\303\312\307#\210\303\313\307#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326#\210\303\327\330B#\210\211\207" [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"] 6) (#$ . 23074)) (defvar bubbles-mode-hook nil) (byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [bubbles-mode-hook variable-documentation put "Hook run after 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] 4) (defvar bubbles-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\317#\207" [bubbles-mode-abbrev-table bubbles-mode-map variable-documentation put purecopy "Keymap for `bubbles-mode'." boundp bubbles-mode-syntax-table definition-name bubbles-mode (lambda (#1=#:def-tmp-var) (defvar bubbles-mode-syntax-table #1#)) make-syntax-table "Syntax table for `bubbles-mode'." (lambda (#1#) (defvar bubbles-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `bubbles-mode'." derived-mode-parent] 5) #@155 Major mode for playing bubbles. \{bubbles-mode-map} This mode runs the hook `bubbles-mode-hook', as the final or penultimate step during initialization. (defalias 'bubbles-mode #[0 "\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-neighborhood run-mode-hooks bubbles-mode-hook local-abbrev-table buffer-read-only show-trailing-whitespace] 5 (#$ . 24817) 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 #[0 "\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 (#$ . 25584) nil]) #@15 Quit Bubbles. (defalias 'bubbles-quit #[0 "\300\301!\210\302 \207" [message "bubbles-quit" bury-buffer] 2 (#$ . 26387) nil]) #@125 Update horizontal and vertical offsets for centering the bubbles grid. Set `bubbles--col-offset' and `bubbles--row-offset'. (defalias 'bubbles--compute-offsets #[0 "\305 \205 \205 \306=?\211\203 \307\n@\310\"@\202 \311\203% \211\312\\\202&