X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6919bf38d2d61b1d502a6548384a992c9106a66d..ae940284fa77a6928f5162b7de859e67bdc7506c:/lisp/play/5x5.el diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index a7860244a8..d81c4f324d 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el @@ -1,6 +1,7 @@ ;;; 5x5.el --- simple little puzzle game -;; Copyright (C) 1999,2000,2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Author: Dave Pearson ;; Maintainer: Dave Pearson @@ -9,10 +10,10 @@ ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,9 +21,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -34,7 +33,7 @@ ;; o The code for updating the grid needs to be re-done. At the moment it ;; simply re-draws the grid every time a move is made. ;; -;; o Look into tarting up the display with colour. gamegrid.el looks +;; o Look into tarting up the display with color. gamegrid.el looks ;; interesting, perhaps that is the way to go? ;;; Thanks: @@ -52,13 +51,6 @@ (eval-when-compile (require 'cl)) -;; If customize isn't available just use defvar instead. -(eval-and-compile - (unless (fboundp 'defgroup) - (defmacro defgroup (&rest rest) nil) - (defmacro defcustom (symbol init docstring &rest rest) - `(defvar ,symbol ,init ,docstring)))) - ;; Customize options. (defgroup 5x5 nil @@ -169,7 +161,7 @@ (put '5x5-mode 'mode-class 'special) (defun 5x5-mode () - "A mode for playing `5x5' + "A mode for playing `5x5'. The key bindings for 5x5-mode are: @@ -178,10 +170,10 @@ The key bindings for 5x5-mode are: (use-local-map 5x5-mode-map) (setq major-mode '5x5-mode mode-name "5x5") - (run-hooks '5x5-mode-hook) + (run-mode-hooks '5x5-mode-hook) (setq buffer-read-only t truncate-lines t) - (buffer-disable-undo (current-buffer))) + (buffer-disable-undo)) ;;;###autoload (defun 5x5 (&optional size) @@ -281,7 +273,7 @@ Quit current game \\[5x5-quit-game]" (loop for y from 0 to (1- 5x5-grid-size) sum (5x5-row-value (aref grid y)))) (defun 5x5-draw-grid-end () - "Draw the top/bottom of the grid" + "Draw the top/bottom of the grid." (insert "+") (loop for x from 0 to (1- 5x5-grid-size) do (insert "-" (make-string 5x5-x-scale ?-))) @@ -346,7 +338,7 @@ Quit current game \\[5x5-quit-game]" ;;;###autoload (defun 5x5-crack-xor-mutate () - "Attempt to crack 5x5 by xor the current and best solution. + "Attempt to crack 5x5 by xoring the current and best solution. Mutate the result." (interactive) (5x5-crack #'5x5-make-xor-with-mutation)) @@ -357,7 +349,7 @@ Mutate the result." 5x5-crack takes the argument BREEDER which should be a function that takes two parameters, the first will be a grid vector array that is the current -solution and the second will be the best solution so far. The function +solution and the second will be the best solution so far. The function should return a grid vector array that is the new solution." (interactive "aBreeder function: ") @@ -392,7 +384,7 @@ should return a grid vector array that is the new solution." (5x5-mutate-solution best)) (defun 5x5-make-xor-with-mutation (current best) - "xor current and best solution then mutate the result." + "Xor current and best solution then mutate the result." (let ((xored (5x5-make-new-grid))) (loop for y from 0 to (1- 5x5-grid-size) do (loop for x from 0 to (1- 5x5-grid-size) do @@ -411,8 +403,8 @@ should return a grid vector array that is the new solution." solution) (defun 5x5-play-solution (solution best) - "Play a solution on an empty grid. This destroys the current game in -progress because it is an animated attempt." + "Play a solution on an empty grid. This destroys the current game +in progress because it is an animated attempt." (5x5-new-game) (let ((inhibit-quit t)) (loop for y from 0 to (1- 5x5-grid-size) do @@ -513,12 +505,14 @@ progress because it is an animated attempt." (and (or x y) (not (and x y)))) (defun 5x5-y-or-n-p (prompt) - "5x5 wrapper for y-or-n-p which respects the 5x5-hassle-me setting." + "5x5 wrapper for `y-or-n-p' which respects the `5x5-hassle-me' setting." (if 5x5-hassle-me (y-or-n-p prompt) t)) +(random t) + (provide '5x5) -;;; arch-tag: ec4dabd5-572d-41ea-b48c-ec5ce0d68fa9 +;; arch-tag: ec4dabd5-572d-41ea-b48c-ec5ce0d68fa9 ;;; 5x5.el ends here