home *** CD-ROM | disk | FTP | other *** search
/ Eigen PC: 32 Screensaver Special / EPC32SCREENSAVER.BIN / Life11 / README.TXT < prev    next >
Text File  |  1998-05-17  |  11KB  |  236 lines

  1. Game of Life Screen Saver v1.1
  2. by Chris Studholme (c) 1998
  3. ==============================
  4.  
  5. This screen saver represents an implementation of Conway's Game of Life.  
  6. A brief description, not written by me, of the game is given here:
  7.  
  8.   Cellular Automata, of which Life is an example, were suggested by
  9.   Stanislaw Ulam in the 1940s, and first formalized by von Neumann.
  10.   Conway's "Game of Life" was popularized in Martin Gardner's
  11.   mathematical games column in the October 1970 and February 1971 issues
  12.   of Scientific American.  (Shorter notes on life are also given in the
  13.   column in each month from October 1970 to April 1971, and well as
  14.   November 1971, January 1972, and December 1972.) There's also quite a
  15.   bit on the game in "The Recursive Universe", by William Poundstone,
  16.   Oxford University Press, 1987, 252 pages.
  17.  
  18.   The rules for the game of life are quite simple. The game board is a
  19.   rectangular cell array, with each cell either empty or filled. At each
  20.   tick of the clock, we generate the next generation by the following rules:
  21.  
  22.         if a cell is empty, fill it if 3 of its neighbors are filled
  23.         (otherwise leave it empty)
  24.  
  25.         if a cell is filled, it
  26.                 dies of loneliness if it has 1 or fewer neighbors
  27.                 continues to live if it has 2 or 3 neighbors
  28.                 dies of overcrowding if it has more than 3 neighbors
  29.  
  30.   Conway has demonstrated that it is possible to construct the basic
  31.   building blocks of a computer from Life using modified glider guns.
  32.   See the last chapter of
  33.      Elwyn R. Berlekamp, John H. Conway, and Richard K. Guy, "Winning
  34.      Ways", Academic Press, New York, 1982, ISBN 0-120911-507.
  35.   for details.
  36.  
  37.  
  38. This readme file contains the following sections:
  39.  
  40. - System Requirements
  41. - What's New
  42. - Random Numbers
  43. - Installation and Usage
  44. - Undocumented Features
  45. - Registry
  46. - Known Bugs
  47. - Legal Stuff
  48.  
  49.  
  50. SYSTEM REQUIREMENTS
  51. -------------------
  52. This screen saver requires your computer to be:
  53.  
  54.   - at least a 486
  55.   - running Windows 95 or Windows NT
  56.  
  57. That is all.  This software makes very minimal use of RAM and hard disk space, 
  58. and thus, minimum requirements in these areas are not specified.  
  59.  
  60. This screen saver is a Win32 program written using C++, with all time critical 
  61. methods hand coded in 32-bit machine language.  The machine language coded 
  62. methods make use of one 486 only instruction (hence the requirement above) and 
  63. have been hand optimized for the Pentium instruction pipeline.  A result of 
  64. this coding practice is that this screen saver should give acceptable 
  65. performance on any speed of machine.  
  66.  
  67.  
  68. WHAT'S NEW
  69. ----------
  70. The only change in version 1.1 is that the Game of Life engine is significantly
  71. faster.  Up to 30% faster is some cases.
  72.  
  73.  
  74. RANDOM NUMBERS
  75. --------------
  76. Before going any further, I would like to say something here about the way in 
  77. which random numbers are generated by this screen saver.  
  78.  
  79. The Game of Life screen saver makes use of a combined linear congruential 
  80. generator as its pseudo-random number generator.  The chosen generator has a 
  81. period of 2^62 which is represented by a 64 bit internal state.  Random 
  82. numbers are carried from one instance of the screen saver to another via the 
  83. registry (see the Registry section later in this document for more details).  
  84. At each instanciation of the screen saver, a random seed is acquired by 
  85. combining bits from the registry with the current value of the system timer.  
  86.  
  87. As the screen saver is being executed, addition truly random bits are acquired 
  88. at a rate of approximately two bits per second and combined into the state of 
  89. the pseudo-random number generator.  These, so called, truly random bits are 
  90. acquired by examining the parity of the value of the system timer at an 
  91. interval that is given as some number of iterations of the game.  The number 
  92. of iterations between random bit generations is chosen such that one random 
  93. bit is generated every half second or so.  This method of truly random bit 
  94. infusion is not guaranteed to yield truly random bits of any specified 
  95. quality, but does ensure that the Game of Life will always proceed in a non-
  96. deterministic manner and will never cease to surprise and amaze the viewer.  
  97.  
  98. Random numbers are used by the Game of Life for two purposes.  The first is to 
  99. initialize the world (or game board) on which the game will be played.  It can 
  100. be safely said that there are only 62 bits of entropy in this initial world.  
  101. If the game is left to be played without perturbation, these initial 62 bits 
  102. of entropy will dictate the remainder of the game; however, if world mutations 
  103. are enabled (see the Usage section below), then random mutations of the world 
  104. will occur at a specified interval.  Since the state of the random number 
  105. generator changes in a truly random manner during the course of the game, it 
  106. can be assumed that there is a truly random component to the random mutations, 
  107. and therefore, after the mutations have begun, it can no longer be said that 
  108. the world has only 62 bits of entropy.  
  109.  
  110.  
  111. INSTALLATION AND USAGE
  112. ----------------------
  113. To install the Game of Life screen saver, simply copy the file LIFE.SCR to 
  114. your Windows SYSTEM directory (SYSTEM32 for Windows NT) and then select the 
  115. Game of Life screen saver as your active screen saver.  If you are using 
  116. Windows 95, you may find that the screen saver appears as just "Life" in the 
  117. screen saver dialog.  If this is the case, and you don't like it, you should 
  118. rename the file LIFE.SCR to "Game Of Life.scr" (without the quotes).  If you 
  119. are using Windows NT, you don't have to worry about this.
  120.  
  121. The Game of Life screen saver has a variety of settings that may be adjusted 
  122. by the user.  These settings are documented below.
  123.  
  124. - WORLD SIZE
  125.     The world size dictates the size of the world on which the game will be     
  126. played.  If the world size is set to full, a world equal to the size of     
  127. your screen is used.  If Half or Quarter size is selected, then the     
  128. world will have dimensions that are half or a quarter, respectively, of 
  129. your screenÆs dimensions.
  130.  
  131. - ZOOM FACTOR
  132.     If your world size is less than the size of the whole screen, you may 
  133. zoom the world such that it fills more, or all, of your screen.  If your 
  134. world size is half the screen dimensions, you may zoom by 2, or if your 
  135. world is a quarter the screen dimensions, you may zoom by either 2 or 4.  
  136.  
  137. - TILE WORLD
  138.     If your world size is less than the size of the whole screen, and you do     
  139. not zoom the world to fill the whole screen, you may instead tile the 
  140. world such that it occupies the entire screen.  
  141.  
  142. - INITIALIZATION SIZE
  143.     This option allows you to choose how much of the world you wish to have     
  144. initialized with random bits.  You may choose to initialize all of the     
  145. world, half of the world, or a quarter of the world.  These ratios are of     
  146. the world's dimensions, not area.  They correspond to areas that are all 
  147. of, 1/4, or 1/16th of the total area, respectively.
  148.  
  149. - WORLD MUTATION RATE
  150.     The Game of Life is a completely deterministic game.  Once the initial 
  151. conditions have been chosen, the game will proceed in a way that is 
  152. entirely predictable.  Typically, the game will eventually reach a steady 
  153. state at which time the world is occupied entirely by either static 
  154. objects, or objects with some sort of repetitive behaviour.  This 
  155. repetitive behaviour usually has a period of two, that is, the object 
  156. alternates between two difference states.  For a screen saver, this 
  157. steady state situation can be very boring and also defeats the purpose of 
  158. a screen saver (to prevent phosphor burn).  To circumvent this 
  159. difficulty, the concept of world mutations was implemented.  A world 
  160. mutation occurs when a single pixel in the world is chosen at random, and 
  161. then toggled (if it is on, it is turned off, or vice verse).  A variety 
  162. of rates of world mutations can be chosen.
  163.  
  164. - ONLY AT STEADY STATE
  165.     As mentioned above, a steady state situation occurs when the world 
  166. settles down into some periodic behaviour.  This screen saver defines 
  167. steady state as being a state of periodic behaviour with period two.  
  168. When this Only at Steady State flag is checked, world mutations will only 
  169. occur when the world reaches a steady state with period two.  As long as 
  170. the world is not in a period state, or if the period state has period 
  171. greater than two, world mutations will not occur.  If this flag is 
  172. unchecked, world mutations occur continuously at the interval specified 
  173. by the World Mutation Rate settings above.  
  174.  
  175. - SHOW MUTATIONS
  176.     If this option is checked, world mutations can be seen as the pixels are 
  177. toggled.  The world mutations are most noticeable in the empty (black) 
  178. space, where the toggled pixels appear, then immediately disappear. 
  179.  
  180. - PIXEL COLOR
  181.     This button opens a dialog box that allows you to choose the color of     
  182. the pixels on the world.  
  183.  
  184.  
  185. UNDOCUMENTED FEATURES
  186. ---------------------
  187. What a silly section heading.  If I discuss any features here, they will cease 
  188. to be undocumented features.  The most obscure feature of this screen saver is 
  189. a world dump feature.  If you cancel the screen saver by pressing the 's' key 
  190. on the keyboard, a file named LifeDump.bmp will be created in your Windows 
  191. directory.  This bitmap file will contain a monochrome image of the state of 
  192. the screen saver immediately before you canceled the screen saver.  If you 
  193. find that your screen saver is doing something really neat when you go to 
  194. cancel it, hitting the 's' key will save a static image of what was happening.  
  195. This can be really useful when you find periodic behaviour with period greater 
  196. than two and want to study it further.  
  197.  
  198.  
  199. REGISTRY
  200. --------
  201. All of the persistent settings used by this screen saver are stored in the 
  202. registry under the path
  203.  
  204.   HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
  205.     Screen Savers\Game of Life
  206.  
  207. There is no need to manually edit any of these settings as all of them are 
  208. available through the settings dialog box.  
  209.  
  210.  
  211. KNOWN BUGS
  212. ----------
  213. There is one known bug in this version of the Game of Life screen saver.  When 
  214. run under Windows 95 or Windows NT v4.0, a mini-version of the screen saver 
  215. does not appear in the display properties dialog box.  This is not actually a 
  216. bug, but is instead a result of the fact that I have not yet put forth the 
  217. effort to learn how to do this.  Maybe this will be fixed in the next version.  
  218.  
  219.  
  220. LEGAL STUFF
  221. -----------
  222. I hate legal stuff.  This program is freeware.  You may distribute this screen 
  223. saver to anyone you like as long as you don't:
  224.  
  225.   - change either file (LIFE.SCR or README.TXT) in any way, or
  226.   - separate these files.
  227.  
  228. If you wish to contact me, you may try sending email to 
  229.  
  230.   studholme@v-wave.com
  231.  
  232. or, if that doesn't work, just search for Chris Studholme on the Internet.  
  233. There aren't that many of me (as far as I know, two) so you should have no 
  234. trouble finding me (or the other Chris Studholme out there).  
  235.  
  236.