summaryrefslogtreecommitdiff
path: root/lisp/play/tetris.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-01-23 23:33:02 +0000
committerRichard M. Stallman <rms@gnu.org>2002-01-23 23:33:02 +0000
commit67ec1c1ab395667bf5ed4e513d92099f6b1e3abf (patch)
tree7cd4ca7f0c5601e3a978c6ab4bc343ab586c14c9 /lisp/play/tetris.el
parentab76d3768051bb2ddc2a48ffafd092619f685119 (diff)
downloademacs-67ec1c1ab395667bf5ed4e513d92099f6b1e3abf.tar.gz
(tetris): New defgroup.
(tetris-use-glyphs, tetris-use-color, tetris-draw-border-with-glyphs) (tetris-default-tick-period): Convert to defcustom. Added * in docstring to indicate user variable. (tetris-update-speed-function, tetris-mode-hook, tetris-tty-colors) (tetris-x-colors, tetris-buffer-name, tetris-buffer-width) (tetris-buffer-height, tetris-width, tetris-height) (tetris-top-left-x, tetris-top-left-y): Convert to defcustom.
Diffstat (limited to 'lisp/play/tetris.el')
-rw-r--r--lisp/play/tetris.el132
1 files changed, 90 insertions, 42 deletions
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el
index 704ed5045ff..44968431497 100644
--- a/lisp/play/tetris.el
+++ b/lisp/play/tetris.el
@@ -35,60 +35,108 @@
;; ;;;;;;;;;;;;; customization variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defvar tetris-use-glyphs t
- "Non-nil means use glyphs when available.")
-
-(defvar tetris-use-color t
- "Non-nil means use color when available.")
-
-(defvar tetris-draw-border-with-glyphs t
- "Non-nil means draw a border even when using glyphs.")
-
-(defvar tetris-default-tick-period 0.3
- "The default time taken for a shape to drop one row.")
-
-(defvar tetris-update-speed-function
+(defgroup tetris nil
+ "Play a game of tetris."
+ :prefix "tetris-"
+ :group 'games)
+
+(defcustom tetris-use-glyphs t
+ "*Non-nil means use glyphs when available."
+ :group 'tetris
+ :type 'boolean)
+
+(defcustom tetris-use-color t
+ "*Non-nil means use color when available."
+ :group 'tetris
+ :type 'boolean)
+
+(defcustom tetris-draw-border-with-glyphs t
+ "*Non-nil means draw a border even when using glyphs."
+ :group 'tetris
+ :type 'boolean)
+
+(defcustom tetris-default-tick-period 0.3
+ "*The default time taken for a shape to drop one row."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-update-speed-function
'tetris-default-update-speed-function
"Function run whenever the Tetris score changes
Called with two arguments: (SHAPES ROWS)
SHAPES is the number of shapes which have been dropped
ROWS is the number of rows which have been completed
-If the return value is a number, it is used as the timer period.")
+If the return value is a number, it is used as the timer period."
+ :group 'tetris
+ :type 'function)
-(defvar tetris-mode-hook nil
- "Hook run upon starting Tetris.")
+(defcustom tetris-mode-hook nil
+ "Hook run upon starting Tetris."
+ :group 'tetris
+ :type 'hook)
-(defvar tetris-tty-colors
+(defcustom tetris-tty-colors
[nil "blue" "white" "yellow" "magenta" "cyan" "green" "red"]
"Vector of colors of the various shapes in text mode
-Element 0 is ignored.")
-
-(defvar tetris-x-colors
+Element 0 is ignored."
+ :group 'tetris
+ :type (let ((names `("Shape 1" "Shape 2" "Shape 3"
+ "Shape 4" "Shape 5" "Shape 6" "Shape 7"))
+ (result `(vector (const nil))))
+ (while names
+ (add-to-list 'result
+ (cons 'choice
+ (cons :tag
+ (cons (car names)
+ (mapcar (lambda (color)
+ (list 'const color))
+ (defined-colors)))))
+ t)
+ (setq names (cdr names)))
+ result))
+
+(defcustom tetris-x-colors
[nil [0 0 1] [0.7 0 1] [1 1 0] [1 0 1] [0 1 1] [0 1 0] [1 0 0]]
"Vector of colors of the various shapes
-Element 0 is ignored.")
-
-(defvar tetris-buffer-name "*Tetris*"
- "Name used for Tetris buffer.")
-
-(defvar tetris-buffer-width 30
- "Width of used portion of buffer.")
-
-(defvar tetris-buffer-height 22
- "Height of used portion of buffer.")
-
-(defvar tetris-width 10
- "Width of playing area.")
-
-(defvar tetris-height 20
- "Height of playing area.")
-
-(defvar tetris-top-left-x 3
- "X position of top left of playing area.")
-
-(defvar tetris-top-left-y 1
- "Y position of top left of playing area.")
+Element 0 is ignored."
+ :group 'tetris
+ :type 'sexp)
+
+(defcustom tetris-buffer-name "*Tetris*"
+ "Name used for Tetris buffer."
+ :group 'tetris
+ :type 'string)
+
+(defcustom tetris-buffer-width 30
+ "Width of used portion of buffer."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-buffer-height 22
+ "Height of used portion of buffer."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-width 10
+ "Width of playing area."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-height 20
+ "Height of playing area."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-top-left-x 3
+ "X position of top left of playing area."
+ :group 'tetris
+ :type 'number)
+
+(defcustom tetris-top-left-y 1
+ "Y position of top left of playing area."
+ :group 'tetris
+ :type 'number)
(defvar tetris-next-x (+ (* 2 tetris-top-left-x) tetris-width)
"X position of next shape.")