]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/life/samples.inc
added missing refresh when changing focus in wxListCtrl, added test for it in the...
[wxWidgets.git] / demos / life / samples.inc
index d218418705ac0512dfb888f77bb342006886713a..63b6d820c2d6f38b7da708c4eeda19e186980874 100644 (file)
  *
  * Name,
  * Description,
  *
  * 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."),
                _("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."),
@@ -34,7 +34,8 @@ LifeShape g_shapes[] =
                ".*."
                "..*"
                "***"),
                ".*."
                "..*"
                "***"),
-    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 "
                _("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 "
@@ -45,7 +46,8 @@ LifeShape g_shapes[] =
                "......*"
                "*.....*"
                ".******"),
                "......*"
                "*.....*"
                ".******"),
-    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 "
                _("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 "
@@ -61,7 +63,8 @@ LifeShape g_shapes[] =
                "......*.*."
                "........*."
                "........**" ),
                "......*.*."
                "........*."
                "........**" ),
-    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."),
                _("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."),
@@ -72,7 +75,8 @@ LifeShape g_shapes[] =
                "*.*.*.*"
                "*.*.*.*"
                "**...**" ),
                "*.*.*.*"
                "*.*.*.*"
                "**...**" ),
-    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 "
                _("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 "
@@ -89,7 +93,8 @@ LifeShape g_shapes[] =
                ".............."
                ".......**....."
                ".......**....." ),
                ".............."
                ".......**....."
                ".......**....." ),
-    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."),
                _("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."),
@@ -102,7 +107,8 @@ LifeShape g_shapes[] =
                ".*......"
                "...*.*.."
                "...*...." ),
                ".*......"
                "...*.*.."
                "...*...." ),
-    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 "
                _("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 "
@@ -111,9 +117,9 @@ LifeShape g_shapes[] =
                3, 3,
                ".**"
                "**."
                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 "
                _("The thunderbird is another popular methuselah, which "
                  "doesn't stabilize until the 243th generation. Note that "
                  "because the initial configuration is symmetrical with "
@@ -124,18 +130,17 @@ LifeShape g_shapes[] =
                "..."
                ".*."
                ".*."
                "..."
                ".*."
                ".*."
-               ".*.",
-               60, 60, FALSE ),
-    LifeShape( _("Accorn"),
+               ".*." ),
+    LifePattern(
+               _("Accorn"),
                _("Probably the most popular methuselah, the accorn lives "
                _("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,
                ".*....."
                "...*..."
                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."),
                _("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."),
@@ -145,13 +150,120 @@ LifeShape g_shapes[] =
                "......*......"
                "......*.....*"
                ".....***....*"
                "......*......"
                "......*.....*"
                ".....***....*"
-               "....*   *...*"
-               ".****   ****."
-               "*...*   *...."
+               "....*...*...*"
+               ".****...****."
+               "*...*...*...."
                "*....***....."
                "*.....*......"
                "......*......"
                "......*......"
                "*....***....."
                "*.....*......"
                "......*......"
                "......*......"
-               ".......***...",
-               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,
+               ".....*.*....................."
+               "....*..*....................."
+               "...**........................"
+               "..*.........................."
+               ".****........................"
+               "*....*......................."
+               "*..*........................."
+               "*..*........................."
+               ".*.........***...***........."
+               "..****.*..*..*...*..*........"
+               "...*...*.....*...*..........."
+               "....*........*...*..........."
+               "....*.*......*...*..........."
+               "............................."
+               "...***.....***...***........."
+               "...**.......*.....*.........."
+               "...***......*******.........."
+               "...........*.......*........."
+               "....*.*...***********........"
+               "...*..*..*............**....."
+               "...*.....************...*...."
+               "...*...*.............*...*..."
+               "....*...************.....*..."
+               ".....**............*..*..*..."
+               "........***********...*.*...."
+               ".........*.......*..........."
+               "..........*******......***..."
+               "..........*.....*.......**..."
+               ".........***...***.....***..."
+               "............................."
+               "...........*...*......*.*...."
+               "...........*...*........*...."
+               "...........*...*.....*...*..."
+               "........*..*...*..*..*.****.."
+               ".........***...***.........*."
+               ".........................*..*"
+               ".........................*..*"
+               ".......................*....*"
+               "........................****."
+               "..........................*.."
+               "........................**..."
+               ".....................*..*...."
+               ".....................*.*....." )
 };
 };