These programs simulate the 'Game of Life'. This is played on a grid of pixels, which may be on or off. If a pixel is OFF and has exactly 3 neighbors (adjacent and diagonal), it turns ON; otherwise it stays OFF. If a pixel is ON and has exactly 2 or 3 neighbors, it stays ON; otherwise it turns OFF. All changes happen simultaneously. --------------------------------------------------------------------- There have been a lot of contests for the fastest/smallest Life program. Here is a description of these Life programs: ---------- LIFE Simple approach using the boundary count method, quite fast. ---------- LIFE2 This came very close on the smallest contest. 76 bytes. Color coded, with current cells in bright orange and last generation's cells in blue. ---------- LIFE3 This won the smallest-program contest. 72 bytes. Uses a weird trick with a RCL instruction to calculate the next cell value. ---------- LIFEHI Bitwise algorithm with a 64K lookup table generated at runtime. This one is in high-resolution mode, 640x480. Tied for fastest real mode version at 6.0 clocks/pixel on a Pentium. ---------- LIFEK Same algorithm as LIFEHI, but in 320x200 mode. Tied for fastest real mode version. ---------- LIFEX Same algorithm as LIFE, but colorized and with an edit feature: While running: E = switch to edit mode Q, Escape = quit While editing: Enter = restart Arrows = move cursor Space = flip pixel C = clear field ---------- LIFE4ax 32-bit, calculates 4 pixels at once with simplistic algorithm, same speed as LIFE and LIFEX overall. ---------- LIFE32, LIFE32H Bitwise algorithm with a 256K lookup table generated at runtime, calculates in vertical strips for extra speed (the inner loop is only 25 lines long!). LIFE32 is 320x200, and LIFE32H is 640x480. These are the fastest overall, at 4.5 clocks/pixel on a Pentium. (This means 700 generations per second on a Pentium-200!!) ---------- QLIFE Uses souped-up boundary count algorithm calculating 3 pixels at once. Tied for fastest real-mode version. Fastest of all for sparse fields but slower on average than LIFE32. Also, it's huge (77K compressed).