*
* Name,
* Description,
- * Width, Height,
- * Data, ('*' = alive, '.' = dead)
- * Field width, Field height, (optional, defaults to 20 x 20)
- * Wraparound (optional, defaults to TRUE)
+ * Width,
+ * Height,
+ * Data ('*' = alive, '.' = dead)
*
*/
-LifeShape g_shapes[] =
+const LifePattern g_patterns[] =
{
- LifeShape( _("Glider"),
+ LifePattern(
+ _("Glider"),
_("The glider is the first of a series of life forms, known "
"as spaceships or fishes, which can travel along the game "
"field retaining their original shape."),
".*."
"..*"
"***"),
- LifeShape( _("Heavyweight spaceship"),
+ LifePattern(
+ _("Heavyweight spaceship"),
_("The glider is just the smaller of the spaceships; this "
"one, known as the heavyweight spaceship or 'big fish', "
"is the largest spaceship which can travel alone without "
"......*"
"*.....*"
".******"),
- LifeShape( _("Eater"),
+ LifePattern(
+ _("Eater"),
_("An eater is any still life that can repair itself from "
"some attacks. This one (bottom right), also known as "
"'fishhook', eats gliders and fishes (spaceships) provided "
"......*.*."
"........*."
"........**" ),
- LifeShape( _("Dice shaker"),
+ LifePattern(
+ _("Dice shaker"),
_("Oscillators have been extensively explored in Life!. "
"The dice shaker turns around each seven tics; thus, it "
"is an oscillator with a period of fourteen."),
"*.*.*.*"
"*.*.*.*"
"**...**" ),
- LifeShape( _("Hertz oscillator"),
+ LifePattern(
+ _("Hertz oscillator"),
_("The Hertz oscillator is a good example of a set of life "
"patterns known as 'billiard tables'. A billiard table is "
"an oscillator which is built inside a stable border. In "
".............."
".......**....."
".......**....." ),
- LifeShape( _("Phoenix"),
+ LifePattern(
+ _("Phoenix"),
_("A phoenix is a pattern whose cells all die in every "
"generation, and yet lives forever. For example, this is "
"a phoenix with period two."),
".*......"
"...*.*.."
"...*...." ),
- LifeShape( _("R-pentomino"),
+ LifePattern(
+ _("R-pentomino"),
_("The R-pentomino is a methuselah - a life form which "
"lives for hundreds of generations without stabilizing "
"or dying. In particular, the R-Pentomino requires more "
3, 3,
".**"
"**."
- ".*.",
- 80, 80, FALSE ),
- LifeShape( _("Thunderbird"),
+ ".*." ),
+ LifePattern(
+ _("Thunderbird"),
_("The thunderbird is another popular methuselah, which "
"doesn't stabilize until the 243th generation. Note that "
"because the initial configuration is symmetrical with "
"..."
".*."
".*."
- ".*.",
- 60, 60, FALSE ),
- LifeShape( _("Accorn"),
+ ".*." ),
+ LifePattern(
+ _("Accorn"),
_("Probably the most popular methuselah, the accorn lives "
- "for 5206 (!) generations. To see it in action, a very "
- "large game field is needed."),
+ "for 5206 (!) generations."),
7, 3,
".*....."
"...*..."
- "**..***",
- 150, 150, FALSE ),
- LifeShape( _("Galaxy"),
+ "**..***" ),
+ LifePattern(
+ _("Galaxy"),
_("One from my personal collection. It is really beautiful "
"to see this configuration expand and shrink periodically "
"for hundreds of tics before reaching a stable state."),
"*.....*......"
"......*......"
"......*......"
- ".......***...",
- 80, 80, FALSE )
+ ".......***..." ),
+ LifePattern(
+ _("Glider gun"),
+ _("A gun is a stationary pattern that emits spaceships "
+ "forever. The glider gun shown here was the first known "
+ "gun, and indeed the first known finite pattern with "
+ "unbounded growth. It was found by Bill Gosper in "
+ "November 1970. Many new guns have since been found."),
+ 36, 9,
+ ".........................*.........."
+ "......................****.........."
+ ".............*.......****..........."
+ "............*.*......*..*.........**"
+ "...........*...**....****.........**"
+ "**.........*...**.....****.........."
+ "**.........*...**........*.........."
+ "............*.*....................."
+ ".............*......................" ),
+ LifePattern(
+ _("Puffer train"),
+ _("A puffer is an object that moves like a spaceship, except "
+ "that it leaves a trail of debris behind. The puffer train "
+ "is one of the best-known puffers. Originally found by "
+ "Bill Gosper, this is a very dirty puffer; the tail does "
+ "not stabilize until generation 5533. It consists of a "
+ "B-heptomino (the middle pattern) escorted by two light "
+ "weight space ships."),
+ 5, 18,
+ "...*."
+ "....*"
+ "*...*"
+ ".****"
+ "....."
+ "....."
+ "....."
+ "*...."
+ ".**.."
+ "..*.."
+ "..*.."
+ ".*..."
+ "....."
+ "....."
+ "...*."
+ "....*"
+ "*...*"
+ ".****" ),
+ LifePattern(
+ _("Max"),
+ _("Max is the fastest-growing known pattern in Conway's Game "
+ "of Life (possibly the fastest possible). It fills space to "
+ "a density of 1/2, conjectured to be the maximum density, "
+ "and does it at a speed of c/2 in each of the 4 directions, "
+ "which has been proven to be the maximum possible speed.\n"
+ "\n"
+ "Population growth is:\n"
+ "[(t+19)^2+463]/4 for t divisible by 4;\n"
+ "[(t+19)^2+487]/4 for t even, not div. by 4;\n"
+ "[(t+18)^2+639]/4 for t odd.\n"
+ "\n"
+ "Original construction, top/bottom stretchers by Hartmut "
+ "Holzwart; Size optimization, left/right stretchers by David "
+ "Bell; Original idea, middle part, left/right stretcher "
+ "connection by Al Hensel.\n"
+ "\n"
+ "This spacefiller by David Bell, September 1993."),
+ 29, 43,
+ ".....*.*....................."
+ "....*..*....................."
+ "...**........................"
+ "..*.........................."
+ ".****........................"
+ "*....*......................."
+ "*..*........................."
+ "*..*........................."
+ ".*.........***...***........."
+ "..****.*..*..*...*..*........"
+ "...*...*.....*...*..........."
+ "....*........*...*..........."
+ "....*.*......*...*..........."
+ "............................."
+ "...***.....***...***........."
+ "...**.......*.....*.........."
+ "...***......*******.........."
+ "...........*.......*........."
+ "....*.*...***********........"
+ "...*..*..*............**....."
+ "...*.....************...*...."
+ "...*...*.............*...*..."
+ "....*...************.....*..."
+ ".....**............*..*..*..."
+ "........***********...*.*...."
+ ".........*.......*..........."
+ "..........*******......***..."
+ "..........*.....*.......**..."
+ ".........***...***.....***..."
+ "............................."
+ "...........*...*......*.*...."
+ "...........*...*........*...."
+ "...........*...*.....*...*..."
+ "........*..*...*..*..*.****.."
+ ".........***...***.........*."
+ ".........................*..*"
+ ".........................*..*"
+ ".......................*....*"
+ "........................****."
+ "..........................*.."
+ "........................**..."
+ ".....................*..*...."
+ ".....................*.*....." )
};