;;; compiled by eric@mole.gnu.ai.mit.edu on Fri Apr 23 03:13:06 1993
;;; from file /gd/gnu/emacs/19.0/lisp/life.el
;;; emacs version 19.5.1.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defconst life-patterns [("@@@" " @@" "@@@") ("@@@ @@@" "@@  @@ " "@@@ @@@") ("@@@ @@@" "@@   @@" "@@@ @@@") ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") ("@@@@@@@@@@") ("   @@@@@@@@@@       " "     @@@@@@@@@@     " "       @@@@@@@@@@   " "@@@@@@@@@@          " "@@@@@@@@@@          ") ("@" "@" "@" "@" "@" "@" "@" "@" "@" "@" "@" "@" "@" "@" "@") ("@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @" "@               @") ("@@               " " @@              " "  @@             " "   @@            " "    @@           " "     @@          " "      @@         " "       @@        " "        @@       " "         @@      " "          @@     " "           @@    " "            @@   " "             @@  " "              @@ " "               @@") ("@@@@@@@@@" "@   @   @" "@ @@@@@ @" "@ @   @ @" "@@@   @@@" "@ @   @ @" "@ @@@@@ @" "@   @   @" "@@@@@@@@@")] "\
Vector of rectangles containing some Life startup patterns.")
(byte-code "MMMMMMMMMMMMMM" [life-life-char (macro lambda nil 64) life-death-char (macro lambda nil 65) life-birth-char (macro lambda nil 3) life-void-char (macro lambda nil 32) life-life-string (macro . #[nil "!" [char-to-string 64] 2]) life-death-string (macro . #[nil "!" [char-to-string 65] 2]) life-birth-string (macro . #[nil "!" [char-to-string 3] 2]) life-void-string (macro . #[nil "!" [char-to-string 32] 2]) life-not-void-regexp (macro . #[nil "Q" ["[^" " " "\n]"] 3]) goto-beginning-of-buffer (macro . #[nil "" [(goto-char 1)] 1]) maxint (macro . #[nil "\"\"" [lsh -1 1] 4]) goto-end-of-buffer (macro . #[nil "" [(goto-char (maxint))] 1]) increment (macro . #[(variable) "		DE" [setq variable 1+] 4]) nil life-neighbor-deltas life-window-start life-current-generation life-generation-string abs #[(n) "W	 [" [n 0] 2]] 2)
(defalias 'life #[(&optional sleeptime) "  !ō" [sleeptime 1 life-setup life-display-generation life-exit (byte-code "   !)  " [t inhibit-quit life-grim-reaper life-expand-plane-if-needed life-increment-generation life-display-generation sleeptime] 2)] 2 "\
Run Conway's Life simulation.
The starting pattern is randomly selected.  Prefix arg (optional first
arg non-nil from a program) is the number of seconds to sleep between
generations (this defaults to 1)." "p"])
(byte-code "\"#!MMMMMMMM##!" [defalias life-mode life put mode-class special random t life-setup #[nil "!\"  \n Sp! b#G ŉ#6 b `)Z\"md 	j W  Sed\"Z\"b	!b	!bm  j!` `\"  ed\"  )" [nil n switch-to-buffer get-buffer-create "*Life*" t erase-buffer kill-all-local-variables case-fold-search "Life" mode-name life-mode major-mode truncate-lines 0 life-current-generation "0" life-generation-string ("Life: generation " life-generation-string) mode-line-buffer-identification window-width fill-column 1 life-window-start buffer-disable-undo life-insert-random-pattern re-search-forward "[^ \n]" replace-match "@" / end-of-line 2 forward-line window-height count-lines newline 8388607 move-to-column delete-region untabify life-expand-plane-if-needed life-compute-neighbor-deltas] 5] life-compute-neighbor-deltas #[nil "\n[\nT[\n\\[\nT\n\\&" [list -1 fill-column 2 1 life-neighbor-deltas] 10] life-insert-random-pattern #[nil "\n !\nG\"\"!c" [insert-rectangle elt life-patterns % abs random 10] 6] life-increment-generation #[nil "T!" [life-current-generation int-to-string life-generation-string] 2] life-grim-reaper #[nil "!b# `S @\\f=D T%y WZ TT%y Wo T%y Yy TA' > T% -!  d%d%d%d%d%" [store-match-data nil 1 list living-neighbors pivot char point search-forward "@" t life-neighbor-deltas 0 32 subst-char-in-region 3 9 64 (2 3) 65 match-beginning life-extinct-quit 2] 7] life-expand-plane-if-needed #[nil "b`\\\\\\#0 b\"c\"c\\\\b`ZZZ#] b\"c\"c\\\\" [done (byte-code "bmB g=  h=< bm, c c  \\! \"  " [1 64 end-of-line 32 forward-char fill-column 2 scroll-left life-compute-neighbor-deltas throw done t forward-line] 3) 1 search-forward "@" fill-column 2 t insert-char 32 10 life-window-start 8388607 search-backward] 6] life-display-generation #[(sleeptime) "b!!= \"" [life-window-start recenter 0 sit-for sleeptime t throw life-exit nil] 3] life-extinct-quit #[nil "!\"" [life-display-generation 0 signal life-extinct nil] 3] life-extinct error-conditions (life-extinct quit) error-message "All life has perished" provide] 4)
