wxWidgets/demos/life/samples.inc

257 lines
10 KiB
PHP
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////
// 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 LifeShape g_shapes[] =
{
LifeShape( _("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,
".*."
"..*"
"***"),
LifeShape( _("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,
".....*."
"......*"
"*.....*"
".******"),
LifeShape( _("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,
".*........"
"..*......."
"***......."
".........."
".........."
".........."
"......**.."
"......*.*."
"........*."
"........**" ),
LifeShape( _("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,
".**.**."
".**.**."
"..*.*.."
"*.*.*.*"
"*.*.*.*"
"**...**" ),
LifeShape( _("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,
".....**......."
".....**......."
".............."
"**...****...**"
"*.*.*....*.*.*"
"..*.**...*.*.."
"*.*.*....*.*.*"
"**...****...**"
".............."
".......**....."
".......**....." ),
LifeShape( _("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,
"....*..."
"..*.*..."
"......*."
"**......"
"......**"
".*......"
"...*.*.."
"...*...." ),
LifeShape( _("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,
".**"
"**."
".*." ),
LifeShape( _("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,
"***"
"..."
".*."
".*."
".*." ),
LifeShape( _("Accorn"),
_("Probably the most popular methuselah, the accorn lives "
"for 5206 (!) generations."),
7, 3,
".*....."
"...*..."
"**..***" ),
LifeShape( _("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,
"...***......."
"......*......"
"......*......"
"......*.....*"
".....***....*"
"....*...*...*"
".****...****."
"*...*...*...."
"*....***....."
"*.....*......"
"......*......"
"......*......"
".......***..." ),
LifeShape( _("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,
".........................*.........."
"......................****.........."
".............*.......****..........."
"............*.*......*..*.........**"
"...........*...**....****.........**"
"**.........*...**.....****.........."
"**.........*...**........*.........."
"............*.*....................."
".............*......................" ),
LifeShape( _("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,
"...*."
"....*"
"*...*"
".****"
"....."
"....."
"....."
"*...."
".**.."
"..*.."
"..*.."
".*..."
"....."
"....."
"...*."
"....*"
"*...*"
".****" ),
LifeShape( _("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,
".....*.*....................."
"....*..*....................."
"...**........................"
"..*.........................."
".****........................"
"*....*......................."
"*..*........................."
"*..*........................."
".*.........***...***........."
"..****.*..*..*...*..*........"
"...*...*.....*...*..........."
"....*........*...*..........."
"....*.*......*...*..........."
"............................."
"...***.....***...***........."
"...**.......*.....*.........."
"...***......*******.........."
"...........*.......*........."
"....*.*...***********........"
"...*..*..*............**....."
"...*.....************...*...."
"...*...*.............*...*..."
"....*...************.....*..."
".....**............*..*..*..."
"........***********...*.*...."
".........*.......*..........."
"..........*******......***..."
"..........*.....*.......**..."
".........***...***.....***..."
"............................."
"...........*...*......*.*...."
"...........*...*........*...."
"...........*...*.....*...*..."
"........*..*...*..*..*.****.."
".........***...***.........*."
".........................*..*"
".........................*..*"
".......................*....*"
"........................****."
"..........................*.."
"........................**..."
".....................*..*...."
".....................*.*....." )
};