1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
|
/////////////////////////////////////////////////////////////////////////////
// Name: samples.inc
// Purpose: Sample configurations for Life!
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// 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).")
+ wxString(_(" It fills space to a density of 1/2, conjectured to be the maximum density, and does it at a speed"))
+ wxString(_(" of c/2 in each of the 4 directions, which has been proven to be the maximum possible speed.\n\nPopulation"))
+ wxString(_(" 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"))
+ wxString(_("[(t+18)^2+639]/4 for t odd.\n\nOriginal construction, top/bottom stretchers by Hartmut Holzwart;"))
+ wxString(_(" Size optimization, left/right stretchers by David Bell; Original idea, middle part, left/right stretcher"))
+ wxString(_(" connection by Al Hensel.\n\nThis spacefiller by David Bell, September 1993.")),
29, 43,
".....*.*....................."
"....*..*....................."
"...**........................"
"..*.........................."
".****........................"
"*....*......................."
"*..*........................."
"*..*........................."
".*.........***...***........."
"..****.*..*..*...*..*........"
"...*...*.....*...*..........."
"....*........*...*..........."
"....*.*......*...*..........."
"............................."
"...***.....***...***........."
"...**.......*.....*.........."
"...***......*******.........."
"...........*.......*........."
"....*.*...***********........"
"...*..*..*............**....."
"...*.....************...*...."
"...*...*.............*...*..."
"....*...************.....*..."
".....**............*..*..*..."
"........***********...*.*...."
".........*.......*..........."
"..........*******......***..."
"..........*.....*.......**..."
".........***...***.....***..."
"............................."
"...........*...*......*.*...."
"...........*...*........*...."
"...........*...*.....*...*..."
"........*..*...*..*..*.****.."
".........***...***.........*."
".........................*..*"
".........................*..*"
".......................*....*"
"........................****."
"..........................*.."
"........................**..."
".....................*..*...."
".....................*.*....." )
};
|