Split the sample in three source files + three header files, for improved
[wxWidgets.git] / demos / life / samples.inc
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        samples.inc
3 // Purpose:     Sample configurations for Life!
4 // Author:      Guillermo Rodriguez Garcia, <guille@iies.es>
5 // Modified by:
6 // Created:     Jan/2000
7 // RCS-ID:      $Id$
8 // Copyright:   (c) 2000, Guillermo Rodriguez Garcia
9 // Licence:     wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // --------------------------------------------------------------------------
13 // sample configurations
14 // --------------------------------------------------------------------------
15
16 /* Format:
17  *
18  * Name,
19  * Description,
20  * Width, Height,
21  * Data,                        ('*' = alive, '.' = dead)
22  * Field width, Field height,   (optional, defaults to 20 x 20)
23  * Wraparound                   (optional, defaults to TRUE)
24  * 
25  */
26
27 LifeShape g_shapes[] =
28 {
29     LifeShape( _("Glider"),
30                _("The glider is the first of a series of life forms, known "
31                  "as spaceships or fishes, which can travel along the game "
32                  "field retaining their original shape."),
33                3, 3,
34                ".*."
35                "..*"
36                "***"),
37     LifeShape( _("Heavyweight spaceship"),
38                _("The glider is just the smaller of the spaceships; this "
39                  "one, known as the heavyweight spaceship or 'big fish', "
40                  "is the largest spaceship which can travel alone without "
41                  "destroying itself. Larger ones can only travel safely "
42                  "if they are supported by smaller spaceships."),
43                7, 4,
44                ".....*."
45                "......*"
46                "*.....*"
47                ".******"),
48     LifeShape( _("Eater"),
49                _("An eater is any still life that can repair itself from "
50                  "some attacks. This one (bottom right), also known as "
51                  "'fishhook', eats gliders and fishes (spaceships) provided "
52                  "that they approach in a certain angle."),
53                10, 10,
54                ".*........"
55                "..*......."
56                "***......."
57                ".........."
58                ".........."
59                ".........."
60                "......**.."
61                "......*.*."
62                "........*."
63                "........**" ),
64     LifeShape( _("Dice shaker"),
65                _("Oscillators have been extensively explored in Life!. "
66                  "The dice shaker turns around each seven tics; thus, it "
67                  "is an oscillator with a period of fourteen."),
68                7, 6,
69                ".**.**."
70                ".**.**."
71                "..*.*.."
72                "*.*.*.*"
73                "*.*.*.*"
74                "**...**" ),
75     LifeShape( _("Hertz oscillator"),
76                _("The Hertz oscillator is a good example of a set of life "
77                  "patterns known as 'billiard tables'. A billiard table is "
78                  "an oscillator which is built inside a stable border. In "
79                  "particular, this one has a period of eight."),
80                14, 11,
81                ".....**......."
82                ".....**......."
83                ".............."
84                "**...****...**"
85                "*.*.*....*.*.*"
86                "..*.**...*.*.."
87                "*.*.*....*.*.*"
88                "**...****...**"
89                ".............."
90                ".......**....."
91                ".......**....." ),
92     LifeShape( _("Phoenix"),
93                _("A phoenix is a pattern whose cells all die in every "
94                  "generation, and yet lives forever. For example, this is "
95                  "a phoenix with period two."),
96                8, 8,
97                "....*..."
98                "..*.*..."
99                "......*."
100                "**......"
101                "......**"
102                ".*......"
103                "...*.*.."
104                "...*...." ),
105     LifeShape( _("R-pentomino"),
106                _("The R-pentomino is a methuselah - a life form which "
107                  "lives for hundreds of generations without stabilizing "
108                  "or dying. In particular, the R-Pentomino requires more "
109                  "than one thousand tics to reach a stable (periodic) "
110                  "state."),
111                3, 3,
112                ".**"
113                "**."
114                ".*.",
115                80, 80, FALSE ),
116     LifeShape( _("Thunderbird"),
117                _("The thunderbird is another popular methuselah, which "
118                  "doesn't stabilize until the 243th generation. Note that "
119                  "because the initial configuration is symmetrical with "
120                  "respect to the vertical axis, all generations must be "
121                  "symmetrical as well."),
122                3, 5,
123                "***"
124                "..."
125                ".*."
126                ".*."
127                ".*.",
128                60, 60, FALSE ),
129     LifeShape( _("Accorn"),
130                _("Probably the most popular methuselah, the accorn lives "
131                  "for 5206 (!) generations. To see it in action, a very "
132                  "large game field is needed."),
133                7, 3,
134                ".*....."
135                "...*..."
136                "**..***",
137                150, 150, FALSE ),
138     LifeShape( _("Galaxy"),
139                _("One from my personal collection. It is really beautiful "
140                  "to see this configuration expand and shrink periodically "
141                  "for hundreds of tics before reaching a stable state."),
142                13, 13,
143                "...***......."
144                "......*......"
145                "......*......"
146                "......*.....*"
147                ".....***....*"
148                "....*...*...*"
149                ".****...****."
150                "*...*...*...."
151                "*....***....."
152                "*.....*......"
153                "......*......"
154                "......*......"
155                ".......***...",
156                80, 80, FALSE )
157 };