///////////////////////////////////////////////////////////////////////////// // Name: samples.inc // Purpose: Sample configurations for Life! // Author: Guillermo Rodriguez Garcia, <guille@iies.es> // Modified by: // Created: Jan/2000 // RCS-ID: $Id$ // Copyright: (c) 2000, Guillermo Rodriguez Garcia // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // -------------------------------------------------------------------------- // sample configurations // -------------------------------------------------------------------------- /* Format: * * Name, * Description, * Width, * Height, * Data ('*' = alive, '.' = dead) * */ const LifePattern g_patterns[] = { 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."), 3, 3, ".*." "..*" "***"), 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 " "destroying itself. Larger ones can only travel safely " "if they are supported by smaller spaceships."), 7, 4, ".....*." "......*" "*.....*" ".******"), 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 " "that they approach in a certain angle."), 10, 10, ".*........" "..*......." "***......." ".........." ".........." ".........." "......**.." "......*.*." "........*." "........**" ), 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."), 7, 6, ".**.**." ".**.**." "..*.*.." "*.*.*.*" "*.*.*.*" "**...**" ), 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 " "particular, this one has a period of eight."), 14, 11, ".....**......." ".....**......." ".............." "**...****...**" "*.*.*....*.*.*" "..*.**...*.*.." "*.*.*....*.*.*" "**...****...**" ".............." ".......**....." ".......**....." ), 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."), 8, 8, "....*..." "..*.*..." "......*." "**......" "......**" ".*......" "...*.*.." "...*...." ), 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 " "than one thousand tics to reach a stable (periodic) " "state."), 3, 3, ".**" "**." ".*." ), 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 " "respect to the vertical axis, all generations must be " "symmetrical as well."), 3, 5, "***" "..." ".*." ".*." ".*." ), LifePattern( _("Accorn"), _("Probably the most popular methuselah, the accorn lives " "for 5206 (!) generations."), 7, 3, ".*....." "...*..." "**..***" ), 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."), 13, 13, "...***......." "......*......" "......*......" "......*.....*" ".....***....*" "....*...*...*" ".****...****." "*...*...*...." "*....***....." "*.....*......" "......*......" "......*......" ".......***..." ), 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, ".....*.*....................." "....*..*....................." "...**........................" "..*.........................." ".****........................" "*....*......................." "*..*........................." "*..*........................." ".*.........***...***........." "..****.*..*..*...*..*........" "...*...*.....*...*..........." "....*........*...*..........." "....*.*......*...*..........." "............................." "...***.....***...***........." "...**.......*.....*.........." "...***......*******.........." "...........*.......*........." "....*.*...***********........" "...*..*..*............**....." "...*.....************...*...." "...*...*.............*...*..." "....*...************.....*..." ".....**............*..*..*..." "........***********...*.*...." ".........*.......*..........." "..........*******......***..." "..........*.....*.......**..." ".........***...***.....***..." "............................." "...........*...*......*.*...." "...........*...*........*...." "...........*...*.....*...*..." "........*..*...*..*..*.****.." ".........***...***.........*." ".........................*..*" ".........................*..*" ".......................*....*" "........................****." "..........................*.." "........................**..." ".....................*..*...." ".....................*.*....." ) };