1 /*- 2 * Copyright (c) 1991 by Patrick J. Naughton. 3 * Copyright (c) 1997 by David Bagley. 4 * 5 * Permission to use, copy, modify, and distribute this software and its 6 * documentation for any purpose and without fee is hereby granted, 7 * provided that the above copyright notice appear in all copies and that 8 * both that copyright notice and this permission notice appear in 9 * supporting documentation. 10 * 11 * This file is provided AS IS with no warranties of any kind. The author 12 * shall have no liability with respect to the infringement of copyrights, 13 * trade secrets or any patents by this file or any part thereof. In no 14 * event will the author be liable for any lost revenue or profits or 15 * other special, indirect and consequential damages. 16 * 17 * Revision History: 18 * 28-Jun-2004: LIFE_NAMES compile-time option. 19 * 14-Feb-2003: Added many more lifeforms from Stephen Silver's Life Lexicon 20 * http://www.argentum.freeserve.co.uk/lex_home.htm 21 * 25-Jan-2003: File spawned from life.c 22 * 23 */ 24 25 /*- 26 * neighbors of 0 does not randomize. All inappropriate 27 * modes will be set at 8. 3, 5, 6, 7, 9, & 12 also available. 28 */ 29 #define MAXNEIGHBORS 12 30 #define MAXGROUPS 7 /* Eventually this may be MAXNEIGHBORS - 3 */ 31 #define FIRSTGROUP 1 32 #define MAXCOUNTNEIGHBORS 9 /* This restriction is because of base 10 */ 33 #define NEIGHBORKINDS 8 34 #define NUMPTS 64 35 36 typedef struct { 37 int birth, survival; 38 int birthGroup[MAXGROUPS]; 39 int survivalGroup[MAXGROUPS]; 40 } paramstruct; 41 42 static char plots[NEIGHBORKINDS] = 43 { 44 3, 4, 5, 6, 7, 8, 9, 12 /* Neighborhoods */ 45 }; 46 47 static char maxgroups[NEIGHBORKINDS] = 48 {0, 1, 0, 4, 0, 7, 0, 0}; 49 static char groupnumber[NEIGHBORKINDS][MAXGROUPS] = 50 { 51 {0, 0, 0, 0, 0, 0, 0}, /* Triangular, would not make sense to use */ 52 {0, 0, 0, 0, 0, 0, 0}, /* MAXGROUP 2 */ 53 {0, 0, 0, 0, 0, 0, 0}, 54 {0, 3, 3, 3, 0, 0, 0}, /* Hexagonal */ 55 {0, 0, 0, 0, 0, 0, 0}, 56 {2, 6, 10, 14, 10, 6, 2}, /* MAXGROUP may have to expand... */ 57 {0, 0, 0, 0, 0, 0, 0}, /* Future improvement */ 58 {3, 0, 0, 0, 0, 0, 0} /* Future improvement */ 59 }; 60 61 /* high numbers are dummys and are not used */ 62 static char nontotalistic6[64] = 63 {'x', 'x', 'x', 'o', 'x', 'm', 'o', 'o', 64 'x', 'p', 'm', 'm', 'o', 'm', 'o', 'o', 65 'x', 'm', 'p', 'm', 'm', 'p', 'm', 'm', 66 'o', 'm', 'm', 'p', 'o', 'm', 'o', 'x', 67 'x', 'o', 'm', 'o', 'p', 'm', 'm', 'o', 68 'm', 'm', 'p', 'm', 'm', 'p', 'm', 'x', 69 'o', 'o', 'm', 'o', 'm', 'm', 'p', 'x', 70 'o', 'o', 'm', 'x', 'o', 'x', 'x', 'x'}; 71 static char nontotalistic8[256] = 72 {'x', 'c', 'e', 'a', 'c', 'c', 'a', 'i', 'e', 'k', 'e', 'k', 'a', 'n', 'a', 'a', 73 'c', 'n', 'k', 'q', 'c', 'c', 'n', 'n', 'a', 'q', 'k', 'w', 'i', 'n', 'a', 'a', 74 'e', 'k', 'i', 'r', 'k', 'y', 'r', 't', 'e', 'k', 'e', 'j', 'k', 'f', 'r', 'n', 75 'a', 'q', 'r', 'z', 'n', 'y', 'i', 'r', 'a', 'q', 'r', 'q', 'a', 'j', 'i', 'a', 76 'c', 'c', 'k', 'n', 'n', 'c', 'q', 'n', 'k', 'y', 'k', 'f', 'q', 'y', 'q', 'j', 77 'c', 'c', 'y', 'y', 'c', 'c', 'y', 'e', 'n', 'y', 'f', 'k', 'n', 'e', 'j', 'e', 78 'a', 'n', 'r', 'i', 'q', 'y', 'z', 'r', 'k', 'f', 'j', 'y', 'w', 'k', 'q', 'k', 79 'i', 'n', 't', 'r', 'n', 'e', 'r', 'i', 'a', 'j', 'n', 'k', 'a', 'e', 'a', 'e', 80 'e', 'a', 'e', 'a', 'k', 'n', 'k', 'a', 'i', 'r', 'e', 'r', 'r', 'i', 'r', 'i', 81 'k', 'q', 'k', 'q', 'y', 'y', 'f', 'j', 'r', 'z', 'j', 'q', 't', 'r', 'n', 'a', 82 'e', 'k', 'e', 'r', 'k', 'f', 'j', 'n', 'e', 'j', 'e', 'c', 'j', 'y', 'c', 'c', 83 'k', 'w', 'j', 'q', 'f', 'k', 'y', 'k', 'r', 'q', 'c', 'n', 'n', 'k', 'c', 'c', 84 'a', 'i', 'k', 'a', 'q', 'n', 'w', 'a', 'r', 't', 'j', 'n', 'z', 'r', 'q', 'a', 85 'n', 'n', 'f', 'j', 'y', 'e', 'k', 'e', 'i', 'r', 'y', 'k', 'r', 'i', 'k', 'e', 86 'a', 'a', 'r', 'i', 'q', 'j', 'q', 'a', 'r', 'n', 'c', 'c', 'q', 'k', 'n', 'c', 87 'a', 'a', 'n', 'a', 'j', 'e', 'k', 'e', 'i', 'a', 'c', 'c', 'a', 'e', 'c', 'x'}; 88 89 /*- 90 * Patterns have < NUMPTS pts (and should have a size of <= 32x32, 91 * the Glider Gun is an exception) 92 */ 93 94 /* https://www.sillycycle.com/life.html */ 95 /* Below generated from java Life2DForms | dos2unix */ 96 static char patterns_5B2S24[][2 * NUMPTS + 1] = 97 { 98 #ifdef LIFE_NAMES 99 {"ripple (p4)"}, 100 #endif 101 { 102 2, -2, 3, -2, 103 2, -1, 104 -1, 0, 0, 0, 1, 0, 4, 0, 5, 0, 6, 0, 105 3, 1, 106 2, 2, 3, 2, 107 127 108 }, 109 #ifdef LIFE_NAMES 110 {"bird (p4)"}, 111 #endif 112 { 113 -4, -1, 5, -1, 114 -6, 0, -1, 0, 2, 0, 7, 0, 115 -7, 1, -4, 1, -3, 1, 4, 1, 5, 1, 8, 1, 116 127 117 }, 118 #ifdef LIFE_NAMES 119 {"owl (p4)"}, 120 #endif 121 { 122 -5, -1, 11, -1, 123 -5, 0, -4, 0, -1, 0, 2, 0, 3, 0, 6, 0, 8, 0, 10, 0, 124 1, 1, 4, 1, 125 127 126 }, 127 #ifdef LIFE_NAMES 128 {"heart (p6)"}, 129 #endif 130 { 131 -3, -2, -2, -2, 1, -2, 3, -2, 5, -2, 132 -3, -1, -2, -1, 2, -1, 4, -1, 133 -2, 1, 2, 1, 134 0, 2, 135 127 136 }, 137 #ifdef LIFE_NAMES 138 {"splitter (p6)"}, 139 #endif 140 { 141 -5, -2, 6, -2, 142 -7, -1, -3, -1, 4, -1, 8, -1, 143 -5, 0, 0, 0, 6, 0, 144 -2, 1, 2, 1, 145 0, 2, 146 127 147 }, 148 #ifdef LIFE_NAMES 149 {"2 snakes (p8)"}, 150 #endif 151 { 152 -3, -2, 1, -2, 153 -2, -1, 2, -1, 154 -1, 1, 3, 1, 155 -4, 2, 0, 2, 156 127 157 }, 158 #ifdef LIFE_NAMES 159 {"cyclone (p8)"}, 160 #endif 161 { 162 2, -3, 3, -3, 163 2, -2, 3, -2, 164 -4, -1, -3, -1, -2, -1, -1, -1, 165 4, 0, 5, 0, 6, 0, 7, 0, 166 0, 1, 1, 1, 167 0, 2, 1, 2, 168 127 169 }, 170 #ifdef LIFE_NAMES 171 {"spiral (p10)"}, 172 #endif 173 { 174 -1, -1, 0, -1, 175 -1, 0, 0, 0, 176 127 177 }, 178 #ifdef LIFE_NAMES 179 {"star (p26)"}, 180 #endif 181 { 182 -2, -6, -1, -6, 183 -2, -3, 184 -7, -1, -4, -1, 1, -1, 4, -1, 185 -12, 0, -11, 0, -4, 0, -3, 0, 0, 0, 1, 0, 8, 0, 9, 0, 186 -7, 1, -4, 1, 1, 1, 4, 1, 187 -1, 3, 188 -2, 6, -1, 6, 189 127 190 }, 191 #ifdef LIFE_NAMES 192 {"clock (p36)"}, 193 #endif 194 { 195 1, -2, 196 2, -1, 3, -1, 4, -1, 197 0, 0, 5, 0, 198 -2, 1, 1, 1, 2, 1, 199 127 200 }, 201 }; 202 203 static char patterns_5B24S2[][2 * NUMPTS + 1] = 204 { 205 #ifdef LIFE_NAMES 206 {"snake checker (p4)"}, 207 #endif 208 { 209 2, -2, 3, -2, 210 1, -1, 4, -1, 211 2, 0, 3, 0, 212 1, 1, 4, 1, 213 127 214 }, 215 #ifdef LIFE_NAMES 216 {"small checker (p6)"}, 217 #endif 218 { 219 -2, 0, -1, 0, 2, 0, 3, 0, 220 127 221 }, 222 #ifdef LIFE_NAMES 223 {"restricted checker (p6)"}, 224 #endif 225 { 226 1, -5, 4, -5, 227 2, -3, 3, -3, 228 -5, -1, -1, -1, 2, -1, 3, -1, 7, -1, 11, -1, 229 -6, 1, -2, 1, 2, 1, 3, 1, 6, 1, 10, 1, 230 2, 3, 3, 3, 231 1, 5, 4, 5, 232 127 233 }, 234 #ifdef LIFE_NAMES 235 {"bug (p8)"}, 236 #endif 237 { 238 2, -3, 3, -3, 239 2, -1, 3, -1, 240 3, 1, 241 -1, 2, 0, 2, 1, 2, 4, 2, 5, 2, 6, 2, 242 1, 3, 4, 3, 243 127 244 }, 245 #ifdef LIFE_NAMES 246 {"trampoline (p8)"}, 247 #endif 248 { 249 2, -2, 3, -2, 250 0, -1, 5, -1, 251 -2, 0, -1, 0, 6, 0, 7, 0, 252 -3, 1, 0, 1, 5, 1, 8, 1, 253 -1, 2, 2, 2, 3, 2, 6, 2, 254 127 255 }, 256 #ifdef LIFE_NAMES 257 {"checker (p14)"}, 258 #endif 259 { 260 -2, -2, 3, -2, 261 -6, 0, -5, 0, -2, 0, -1, 0, 2, 0, 3, 0, 6, 0, 7, 0, 262 -2, 2, 3, 2, 263 127 264 }, 265 }; 266 267 static char patterns_6B2S34[][2 * NUMPTS + 1] = 268 { 269 #ifdef LIFE_NAMES 270 {"12"}, 271 #endif 272 { 273 -1, -1, 274 -1, 1, 1, 1, 275 127 276 }, 277 #ifdef LIFE_NAMES 278 {"spinning triangle"}, 279 #endif 280 { 281 0, -1, 282 -1, 0, 283 1, 1, 284 127 285 }, 286 #ifdef LIFE_NAMES 287 {"hexagon (p3)"}, 288 #endif 289 { 290 -1, -1, 0, -1, 291 -1, 0, 1, 0, 292 0, 1, 1, 1, 293 127 294 }, 295 #ifdef LIFE_NAMES 296 {"c (p4)"}, 297 #endif 298 { 299 -1, -1, 300 -1, 0, 301 0, 1, 1, 1, 302 127 303 }, 304 #ifdef LIFE_NAMES 305 {"sad (p4)"}, 306 #endif 307 { 308 -2, -2, -1, -2, 309 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 310 -3, 1, 3, 1, 311 127 312 }, 313 #ifdef LIFE_NAMES 314 {"clock (p4)"}, 315 #endif 316 { 317 -2, -2, 318 0, -1, 319 -1, 0, 0, 0, 320 -1, 1, 321 1, 2, 322 127 323 }, 324 #ifdef LIFE_NAMES 325 {"111 (p4)"}, 326 #endif 327 { 328 -1, -2, 329 0, 0, 330 1, 2, 331 127 332 }, 333 #ifdef LIFE_NAMES 334 {"1121 (p4)"}, 335 #endif 336 { 337 -2, -3, 338 -1, -1, 339 -1, 1, 1, 1, 340 1, 3, 341 127 342 }, 343 #ifdef LIFE_NAMES 344 {"11211 (p4)"}, 345 #endif 346 { 347 -2, -4, 348 -1, -2, 349 -1, 0, 1, 0, 350 1, 2, 351 2, 4, 352 127 353 }, 354 #ifdef LIFE_NAMES 355 {"tree (p5)"}, 356 #endif 357 { 358 -2, -6, 359 -1, -4, 360 -1, -3, 0, -3, 361 0, -2, 362 0, -1, 1, -1, 363 1, 0, 364 1, 1, 2, 1, 365 2, 2, 366 3, 4, 367 127 368 }, 369 #ifdef LIFE_NAMES 370 {"hex (p5)"}, 371 #endif 372 { 373 -1, -5, 374 -1, -4, 375 -3, -3, -1, -3, 0, -3, 1, -3, 2, -3, 3, -3, 376 -2, -2, -1, -2, 2, -2, 377 -1, -1, 3, -1, 378 0, 0, 3, 0, 4, 0, 379 -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 5, 1, 380 3, 2, 381 3, 3, 382 127 383 }, 384 #ifdef LIFE_NAMES 385 {"121121 (p8)"}, 386 #endif 387 { 388 -3, -5, 389 -3, -3, -1, -3, 390 -1, -1, 391 0, 1, 392 0, 3, 2, 3, 393 2, 5, 394 127 395 }, 396 #ifdef LIFE_NAMES 397 {"1121121 (p8)"}, 398 #endif 399 { 400 -3, -6, 401 -2, -4, 402 -2, -2, 0, -2, 403 0, 0, 404 1, 2, 405 1, 4, 3, 4, 406 3, 6, 407 127 408 }, 409 #ifdef LIFE_NAMES 410 {"11211211 (p8)"}, 411 #endif 412 { 413 -4, -7, 414 -3, -5, 415 -3, -3, -1, -3, 416 -1, -1, 417 0, 1, 418 0, 3, 2, 3, 419 2, 5, 420 3, 7, 421 127 422 }, 423 #ifdef LIFE_NAMES 424 {"hexagon (p9)"}, 425 #endif 426 { 427 -5, -9, -4, -9, 428 -3, -6, 429 -9, -5, -3, -5, -2, -5, 4, -5, 430 -9, -4, -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 5, -4, 431 -6, -3, -5, -3, -4, -3, -3, -3, 0, -3, 1, -3, 2, -3, 3, -3, 432 -5, -2, -4, -2, 2, -2, 3, -2, 433 -4, -1, 3, -1, 434 -4, 0, -3, 0, 3, 0, 4, 0, 435 -3, 1, 4, 1, 436 -3, 2, -2, 2, 4, 2, 5, 2, 437 -3, 3, -2, 3, -1, 3, 0, 3, 3, 3, 4, 3, 5, 3, 6, 3, 438 -5, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 9, 4, 439 -4, 5, 2, 5, 3, 5, 9, 5, 440 3, 6, 441 4, 9, 5, 9, 442 127 443 }, 444 #ifdef LIFE_NAMES 445 {"triangle (p12)"}, 446 #endif 447 { 448 -3, -2, 2, -2, 449 -1, -1, 1, -1, 450 1, 1, 451 2, 3, 452 127 453 }, 454 #ifdef LIFE_NAMES 455 {"spinner (p12)"}, 456 #endif 457 { 458 -1, -2, 459 -2, -1, 460 -1, 1, 461 1, 2, 2, 2, 462 127 463 }, 464 #ifdef LIFE_NAMES 465 {"chakar2 (p14)"}, 466 #endif 467 { 468 -6, -6, -3, -6, 0, -6, 469 -4, -5, -3, -5, -2, -5, -1, -5, 470 -5, -4, -4, -4, -3, -4, -1, -4, 0, -4, 1, -4, 471 -6, -3, -5, -3, -4, -3, 1, -3, 2, -3, 3, -3, 472 -5, -2, -2, -2, 3, -2, 473 -5, -1, -4, -1, 3, -1, 4, -1, 474 -6, 0, -4, 0, 4, 0, 6, 0, 475 -4, 1, -3, 1, 4, 1, 5, 1, 476 -3, 2, 0, 2, 5, 2, 477 -3, 3, -2, 3, -1, 3, 4, 3, 5, 3, 6, 3, 478 -1, 4, 0, 4, 1, 4, 3, 4, 4, 4, 5, 4, 479 1, 5, 2, 5, 3, 5, 4, 5, 480 0, 6, 3, 6, 6, 6, 481 127 482 }, 483 #ifdef LIFE_NAMES 484 {"chakar (p18)"}, 485 #endif 486 { 487 -6, -6, -3, -6, 0, -6, 488 -4, -5, -3, -5, -2, -5, -1, -5, 489 -5, -4, -4, -4, -3, -4, -1, -4, 0, -4, 1, -4, 490 -6, -3, -5, -3, -4, -3, 1, -3, 2, -3, 3, -3, 491 -5, -2, 3, -2, 492 -5, -1, -4, -1, -2, -1, 1, -1, 3, -1, 4, -1, 493 -6, 0, -4, 0, 0, 0, 4, 0, 6, 0, 494 -4, 1, -3, 1, -1, 1, 2, 1, 4, 1, 5, 1, 495 -3, 2, 5, 2, 496 -3, 3, -2, 3, -1, 3, 4, 3, 5, 3, 6, 3, 497 -1, 4, 0, 4, 1, 4, 3, 4, 4, 4, 5, 4, 498 1, 5, 2, 5, 3, 5, 4, 5, 499 0, 6, 3, 6, 6, 6, 500 127 501 }, 502 #ifdef LIFE_NAMES 503 {"ornament (p36)"}, 504 #endif 505 { 506 -5, -7, -4, -7, 507 -3, -4, 508 -3, -3, -2, -3, 509 -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 510 -5, -1, -4, -1, -3, -1, 0, -1, 1, -1, 2, -1, 511 -5, 0, -4, 0, 2, 0, 3, 0, 512 -4, 1, -1, 1, 0, 1, 3, 1, 513 -4, 2, -3, 2, -1, 2, 1, 2, 3, 2, 4, 2, 514 -3, 3, 0, 3, 1, 3, 4, 3, 515 -3, 4, -2, 4, 4, 4, 5, 4, 516 -2, 5, -1, 5, 0, 5, 3, 5, 4, 5, 5, 5, 517 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 518 2, 7, 3, 7, 519 127 520 }, 521 #ifdef LIFE_NAMES 522 {"oscillator (p48)"}, 523 #endif 524 { 525 -2, -2, -1, -2, 0, -2, 526 -1, -1, 0, -1, 527 0, 0, 528 0, 1, 1, 1, 529 127 530 }, 531 #ifdef LIFE_NAMES 532 {"triangle growth (remnant p10)"}, 533 #endif 534 { 535 -2, -1, -1, -1, 0, -1, 1, -1, 536 -1, 0, 0, 0, 1, 0, 537 0, 1, 1, 1, 538 1, 2, 539 127 540 }, 541 }; 542 543 static char patterns_6B2S35[][2 * NUMPTS + 1] = 544 { 545 #ifdef LIFE_NAMES 546 {"neutron star (p3)"}, 547 #endif 548 { 549 -1, -1, 0, -1, 550 -1, 0, 1, 0, 551 0, 1, 1, 1, 552 127 553 }, 554 #ifdef LIFE_NAMES 555 {"binary star (p3)"}, 556 #endif 557 { 558 -2, -3, -1, -3, 559 -2, -2, 0, -2, 560 -1, -1, 0, -1, 561 0, 1, 1, 1, 562 0, 2, 2, 2, 563 1, 3, 2, 3, 564 127 565 }, 566 #ifdef LIFE_NAMES 567 {"c (p4)"}, 568 #endif 569 { 570 -1, -1, 0, -1, 571 -1, 0, 1, 0, 572 127 573 }, 574 #ifdef LIFE_NAMES 575 {"s (p4)"}, 576 #endif 577 { 578 -1, -2, 579 -1, -1, 580 0, 0, 581 1, 1, 582 1, 2, 583 127 584 }, 585 #ifdef LIFE_NAMES 586 {"v dot (p4)"}, 587 #endif 588 { 589 0, -2, 590 -1, -1, 591 -2, 0, 2, 0, 592 0, 1, 593 2, 2, 594 127 595 }, 596 #ifdef LIFE_NAMES 597 {"drum (p4)"}, 598 #endif 599 { 600 -3, -3, -2, -3, 601 -2, -1, 0, -1, 602 -1, 1, 1, 1, 603 0, 3, 1, 3, 604 127 605 }, 606 #ifdef LIFE_NAMES 607 {"broken umbrella (p4)"}, 608 #endif 609 { 610 -1, -1, 0, -1, 611 -3, 0, 3, 0, 612 -1, 1, 2, 1, 613 127 614 }, 615 #ifdef LIFE_NAMES 616 {"siamese (p7)"}, 617 #endif 618 { 619 -4, -6, -3, -6, 620 -3, -3, -2, -3, -1, -3, 621 -1, 0, 0, 0, 622 0, 3, 1, 3, 2, 3, 623 2, 6, 3, 6, 624 127 625 }, 626 #ifdef LIFE_NAMES 627 {"tie (p7)"}, 628 #endif 629 { 630 -7, -6, 5, -6, 631 -7, -5, -4, -5, 3, -5, 6, -5, 632 -4, -4, 4, -4, 633 -4, -3, -1, -3, 2, -3, 5, -3, 634 -1, -2, 1, -2, 3, -2, 635 1, -1, 2, -1, 636 2, 1, 3, 1, 637 3, 4, 4, 4, 5, 4, 638 5, 7, 6, 7, 639 127 640 }, 641 #ifdef LIFE_NAMES 642 {"vortex (p8)"}, 643 #endif 644 { 645 -5, -5, 646 -4, -4, 647 -1, -1, 0, -1, 648 -3, 0, 649 -2, 1, 650 1, 2, 4, 2, 5, 2, 651 1, 3, 652 -2, 4, 653 -2, 5, 654 127 655 }, 656 #ifdef LIFE_NAMES 657 {"snake hive (p8)"}, 658 #endif 659 { 660 -6, -9, 661 -7, -7, -5, -7, 0, -7, 662 -1, -6, 3, -6, 663 -6, -5, 2, -5, 664 -2, -4, 665 -9, -3, 666 -7, -2, -4, -2, -1, -2, 2, -2, 667 -2, -1, 1, -1, 5, -1, 668 -7, 0, 7, 0, 669 -5, 1, -1, 1, 2, 1, 670 -2, 2, 1, 2, 4, 2, 7, 2, 671 9, 3, 672 2, 4, 673 -2, 5, 6, 5, 674 -3, 6, 1, 6, 675 0, 7, 5, 7, 7, 7, 676 6, 9, 677 127 678 }, 679 #ifdef LIFE_NAMES 680 {"snow flake (p8)"}, 681 #endif 682 { 683 -5, -9, -4, -9, 684 -6, -8, -2, -8, 685 -8, -6, 2, -6, 686 -9, -5, 4, -5, 687 -9, -4, -3, -4, -1, -4, 5, -4, 688 -4, -3, -3, -3, 0, -3, 1, -3, 689 -8, -2, 6, -2, 690 -4, -1, 3, -1, 691 -3, 0, 3, 0, 692 -3, 1, 4, 1, 693 -6, 2, 8, 2, 694 -1, 3, 0, 3, 3, 3, 4, 3, 695 -5, 4, 1, 4, 3, 4, 9, 4, 696 -4, 5, 9, 5, 697 -2, 6, 8, 6, 698 2, 8, 6, 8, 699 4, 9, 5, 9, 700 127 701 }, 702 #ifdef LIFE_NAMES 703 {"spinner (p12)"}, 704 #endif 705 { 706 -1, -2, 707 -2, -1, 1, -1, 708 -2, 0, 709 2, 1, 710 127 711 }, 712 #ifdef LIFE_NAMES 713 {"smiley (p12)"}, 714 #endif 715 { 716 0, -2, 717 -2, -1, 1, -1, 718 2, 0, 719 -1, 1, 2, 1, 720 2, 2, 721 127 722 }, 723 #ifdef LIFE_NAMES 724 {"arrow (p12)"}, 725 #endif 726 { 727 -3, -4, 728 -1, -3, 729 0, -2, 730 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 731 2, 2, 732 2, 3, 733 1, 4, 734 127 735 }, 736 #ifdef LIFE_NAMES 737 {"cephid (p15)"}, 738 #endif 739 { 740 -2, -3, -1, -3, 741 -3, -2, 1, -2, 742 -3, -1, 2, -1, 743 -2, 1, 3, 1, 744 -1, 2, 3, 2, 745 1, 3, 2, 3, 746 127 747 }, 748 #ifdef LIFE_NAMES 749 {"flipping triangle (p16)"}, 750 #endif 751 { 752 -5, -5, 753 -5, -3, -3, -3, 754 -3, 0, -2, 0, 755 -3, 1, -1, 1, 756 -5, 2, -2, 2, -1, 2, 2, 2, 757 -5, 4, -3, 4, 2, 4, 4, 4, 758 127 759 }, 760 #ifdef LIFE_NAMES 761 {"hungry (p16)"}, 762 #endif 763 { 764 -8, -5, -7, -5, 1, -5, 2, -5, 765 -4, -2, 1, -2, 766 -2, -1, -1, -1, 0, -1, 767 -3, 0, -2, 0, 1, 0, 2, 0, 768 -1, 1, 0, 1, 1, 1, 769 -2, 2, 3, 2, 770 -3, 5, -2, 5, 6, 5, 7, 5, 771 127 772 }, 773 #ifdef LIFE_NAMES 774 {"kaleidoscope (p16)"}, 775 #endif 776 { 777 -6, -8, 778 -6, -7, -5, -7, 779 -8, -6, -7, -6, -4, -6, 780 -7, -5, -3, -5, 781 -6, -4, -1, -4, 782 -5, -3, 1, -3, 783 -2, -2, 0, -2, 3, -2, 4, -2, 5, -2, 6, -2, 784 -4, -1, 6, -1, 785 -2, 0, 2, 0, 786 -3, 1, 7, 1, 787 0, 2, 2, 2, 5, 2, 6, 2, 7, 2, 8, 2, 788 -2, 3, 4, 3, 789 -2, 4, 3, 4, 790 -2, 5, 2, 5, 791 -2, 6, -1, 6, 2, 6, 792 1, 7, 2, 7, 793 2, 8, 794 127 795 }, 796 #ifdef LIFE_NAMES 797 {"triangle with stabilizers (p18)"}, 798 #endif 799 { 800 0, -8, 801 0, -7, 802 -4, -5, 803 -5, -4, 804 -1, -3, 805 -2, -2, 1, -2, 806 -3, -1, -1, -1, 4, -1, 807 -8, 0, -7, 0, 1, 0, 2, 0, 808 -2, 1, 0, 1, 5, 1, 809 0, 2, 3, 2, 810 2, 3, 811 -1, 4, 812 1, 5, 813 7, 7, 814 8, 8, 815 127 816 }, 817 #ifdef LIFE_NAMES 818 {"buckyball (p19)"}, 819 #endif 820 { 821 -3, -7, -1, -7, 822 -7, -6, -5, -6, 823 -2, -5, 1, -5, 824 -7, -4, -4, -4, 0, -4, 825 -5, -3, 4, -3, 826 -1, -2, 3, -2, 827 -6, -1, -2, -1, 1, -1, 6, -1, 828 -4, 0, 4, 0, 829 -6, 1, -1, 1, 2, 1, 6, 1, 830 -3, 2, 1, 2, 831 -4, 3, 5, 3, 832 0, 4, 4, 4, 7, 4, 833 -1, 5, 2, 5, 834 5, 6, 7, 6, 835 1, 7, 3, 7, 836 127 837 }, 838 #ifdef LIFE_NAMES 839 {"supernova (remnant p3)"}, 840 #endif 841 { 842 -3, -3, -2, -3, -1, -3, 0, -3, 843 -3, -2, 1, -2, 844 -3, -1, -1, -1, 0, -1, 2, -1, 845 -3, 0, -1, 0, 1, 0, 3, 0, 846 -2, 1, 0, 1, 1, 1, 3, 1, 847 -1, 2, 3, 2, 848 0, 3, 1, 3, 2, 3, 3, 3, 849 127 850 }, 851 }; 852 853 static char patterns_6B2oS2m34[][2 * NUMPTS + 1] = 854 { 855 #ifdef LIFE_NAMES 856 {"ship (p15)"}, 857 #endif 858 { 859 -3, -5, -1, -5, 860 -2, -4, -1, -4, 0, -4, 861 -4, -3, -3, -3, -2, -3, 0, -3, 862 -2, -2, 0, -2, 863 -1, -1, 0, -1, 864 0, 1, 1, 1, 865 0, 2, 2, 2, 866 -1, 3, 0, 3, 1, 3, 3, 3, 867 2, 4, 3, 4, 4, 4, 868 2, 5, 4, 5, 869 127 870 }, 871 #ifdef LIFE_NAMES 872 {"ship (p48)"}, 873 #endif 874 { 875 -3, -2, -2, -2, -1, -2, 0, -2, 876 -2, -1, 1, -1, 877 -1, 0, 0, 0, 1, 0, 878 1, 1, 2, 1, 879 127 880 }, 881 #ifdef LIFE_NAMES 882 {"oscillator (p3)"}, 883 #endif 884 { 885 -1, -2, 0, -2, 886 -2, -1, -1, -1, 1, -1, 887 -2, 0, 1, 0, 888 -1, 1, 0, 1, 2, 1, 889 1, 2, 2, 2, 890 127 891 }, 892 #ifdef LIFE_NAMES 893 {"greater than (p4)"}, 894 #endif 895 { 896 -1, -2, 897 0, -1, 898 1, 0, 899 1, 1, 900 1, 2, 901 127 902 }, 903 #ifdef LIFE_NAMES 904 {"smashed scissor (p4)"}, 905 #endif 906 { 907 -3, -2, 908 -2, -1, -1, -1, 0, -1, 1, -1, 909 -1, 0, 910 -1, 1, 0, 1, 911 -1, 2, 912 127 913 }, 914 #ifdef LIFE_NAMES 915 {"broken scissor (p4)"}, 916 #endif 917 { 918 -3, -2, 919 -2, -1, -1, -1, 0, -1, 1, -1, 920 -1, 0, 921 -1, 1, 0, 1, 1, 1, 922 -1, 2, 923 127 924 }, 925 #ifdef LIFE_NAMES 926 {"scissor (p4)"}, 927 #endif 928 { 929 -3, -2, 930 -2, -1, -1, -1, 0, -1, 1, -1, 931 -1, 0, 932 -1, 1, 0, 1, 1, 1, 2, 1, 933 -1, 2, 934 127 935 }, 936 #ifdef LIFE_NAMES 937 {"H (p5)"}, 938 #endif 939 { 940 -2, -1, -1, -1, 0, -1, 1, -1, 941 0, 0, 942 -1, 1, 0, 1, 1, 1, 2, 1, 943 127 944 }, 945 #ifdef LIFE_NAMES 946 {"saint (p5)"}, 947 #endif 948 { 949 -2, -3, 950 -1, -1, 951 -1, 0, 0, 0, 952 0, 1, 953 0, 2, 1, 2, 954 0, 3, 2, 3, 955 127 956 }, 957 #ifdef LIFE_NAMES 958 {"glasses (p5)"}, 959 #endif 960 { 961 -1, -2, 0, -2, 1, -2, 962 -2, -1, -1, -1, 1, -1, 963 -2, 0, 0, 0, 1, 0, 964 -2, 1, -1, 1, 0, 1, 965 127 966 }, 967 #ifdef LIFE_NAMES 968 {"tree (p5)"}, 969 #endif 970 { 971 -2, -2, 0, -2, 1, -2, 2, -2, 972 -1, -1, 0, -1, 2, -1, 973 -1, 0, 1, 0, 2, 0, 974 0, 1, 1, 1, 975 2, 2, 976 127 977 }, 978 #ifdef LIFE_NAMES 979 {"whirlygig (p5)"}, 980 #endif 981 { 982 -1, -3, 983 0, -2, 984 -2, -1, -1, -1, 0, -1, 1, -1, 985 -2, 0, 0, 0, 2, 0, 986 -1, 1, 0, 1, 987 0, 2, 988 -1, 3, 0, 3, 1, 3, 2, 3, 989 127 990 }, 991 #ifdef LIFE_NAMES 992 {"hex (p5)"}, 993 #endif 994 { 995 -3, -3, -1, -3, 0, -3, 996 -3, -2, -2, -2, -1, -2, 0, -2, 997 -2, -1, 1, -1, 2, -1, 998 -3, 0, -2, 0, 2, 0, 3, 0, 999 -2, 1, -1, 1, 2, 1, 1000 0, 2, 1, 2, 2, 2, 3, 2, 1001 0, 3, 1, 3, 3, 3, 1002 127 1003 }, 1004 #ifdef LIFE_NAMES 1005 {"hump (p6)"}, 1006 #endif 1007 { 1008 -2, -3, 1009 -1, -2, 1010 -2, -1, -1, -1, 1011 -2, 0, 1012 -1, 1, 0, 1, 1013 1, 2, 1014 1, 3, 1015 127 1016 }, 1017 #ifdef LIFE_NAMES 1018 {"flask (p6)"}, 1019 #endif 1020 { 1021 -3, -3, -1, -3, 0, -3, 1022 -2, -2, -1, -2, 1, -2, 1023 1, -1, 1024 2, 0, 1025 2, 1, 1026 0, 2, 1, 2, 3, 2, 1027 0, 3, 2, 3, 3, 3, 1028 127 1029 }, 1030 #ifdef LIFE_NAMES 1031 {"oscillator (p7)"}, 1032 #endif 1033 { 1034 -6, -7, 1035 -6, -6, 1036 -5, -5, -4, -5, 1037 -4, -4, -3, -4, -2, -4, 1038 -5, -3, -4, -3, -1, -3, 0, -3, 2, -3, 1039 -5, -2, 0, -2, 1, -2, 2, -2, 1040 -4, -1, 2, -1, 1041 3, 0, 1042 2, 1, 3, 1, 1043 2, 2, 1044 3, 3, 5, 3, 1045 2, 4, 3, 4, 4, 4, 5, 4, 1046 5, 5, 1047 6, 6, 1048 127 1049 }, 1050 #ifdef LIFE_NAMES 1051 {"3 bulbs (p7)"}, 1052 #endif 1053 { 1054 -5, -5, -4, -5, -3, -5, 1055 -5, -4, -2, -4, 1056 -5, -3, -2, -3, 1057 -4, -2, -3, -2, -1, -2, 2, -2, 3, -2, 1058 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 4, -1, 1059 -1, 0, 1, 0, 5, 0, 1060 -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 5, 1, 1061 -2, 2, -1, 2, 1, 2, 4, 2, 5, 2, 1062 -2, 3, 1, 3, 1063 -1, 4, 2, 4, 1064 0, 5, 1, 5, 2, 5, 1065 127 1066 }, 1067 #ifdef LIFE_NAMES 1068 {"3 bulbs2 (p7)"}, 1069 #endif 1070 { 1071 -6, -8, 1072 -6, -7, 1073 -8, -6, -7, -6, -6, -6, 1074 -3, -5, 1075 -2, -4, 1076 -5, -3, -2, -3, 1077 -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 2, -2, 3, -2, 6, -2, 1078 -2, -1, 1, -1, 2, -1, 6, -1, 1079 -2, 0, 2, 0, 6, 0, 1080 -1, 1, 2, 1, 3, 1, 7, 1, 1081 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 4, 2, 5, 2, 8, 2, 1082 -2, 3, 1, 3, 1083 2, 4, 1084 2, 5, 1085 -2, 6, -1, 6, 0, 6, 1086 1, 7, 1087 2, 8, 1088 127 1089 }, 1090 #ifdef LIFE_NAMES 1091 {"internal oscillator (p7)"}, 1092 #endif 1093 { 1094 -3, -6, 1095 -4, -5, -3, -5, 1096 -5, -4, -4, -4, -2, -4, -1, -4, 1, -4, 1097 -3, -3, -1, -3, 0, -3, 1, -3, 1098 -6, -2, -4, -2, -3, -2, -1, -2, 2, -2, 3, -2, 1099 -5, -1, -4, -1, -2, -1, 2, -1, 1100 -6, 0, -5, 0, -3, 0, -2, 0, -1, 0, 0, 0, 3, 0, 1101 -4, 1, -3, 1, 1, 1, 3, 1, 1102 -4, 2, -2, 2, 0, 2, 1, 2, 4, 2, 1103 -4, 3, -3, 3, -2, 3, 0, 3, 1, 3, 3, 3, 4, 3, 5, 3, 1104 -1, 4, 0, 4, 2, 4, 3, 4, 1105 1, 5, 2, 5, 1106 127 1107 }, 1108 #ifdef LIFE_NAMES 1109 {"person (p8)"}, 1110 #endif 1111 { 1112 -1, -2, 1113 -1, -1, 0, -1, 1114 0, 0, 1115 0, 1, 1, 1, 1116 127 1117 }, 1118 #ifdef LIFE_NAMES 1119 {"snowflake (p8)"}, 1120 #endif 1121 { 1122 -3, -4, -2, -4, -1, -4, 1123 -4, -3, -3, -3, 0, -3, 1, -3, 1124 -4, -2, -1, -2, 2, -2, 1125 -4, -1, -2, -1, -1, -1, 0, -1, 1, -1, 3, -1, 1126 -3, 0, -1, 0, 1, 0, 3, 0, 1127 -3, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4, 1, 1128 -2, 2, 1, 2, 4, 2, 1129 -1, 3, 0, 3, 3, 3, 4, 3, 1130 1, 4, 2, 4, 3, 4, 1131 127 1132 }, 1133 #ifdef LIFE_NAMES 1134 {"oscillator (p9)"}, 1135 #endif 1136 { 1137 -2, -6, -1, -6, 1138 -4, -5, -3, -5, -2, -5, 0, -5, 1139 -3, -4, -1, -4, 0, -4, 1140 -3, -3, -2, -3, -1, -3, 1, -3, 1141 0, -2, 1, -2, 1142 0, -1, 1143 -1, 0, 0, 0, 1, 0, 1144 -1, 1, 2, 1, 1145 -2, 2, -1, 2, 0, 2, 2, 2, 1146 -2, 3, 0, 3, 3, 3, 1147 -1, 4, 0, 4, 2, 4, 3, 4, 1148 1, 5, 2, 5, 1149 2, 6, 1150 127 1151 }, 1152 #ifdef LIFE_NAMES 1153 {"Russian saint (p10)"}, 1154 #endif 1155 { 1156 -2, -2, -1, -2, 0, -2, 1, -2, 1157 0, -1, 1158 0, 0, 1, 0, 2, 0, 1159 0, 1, 1160 127 1161 }, 1162 #ifdef LIFE_NAMES 1163 {"flower (p10)"}, 1164 #endif 1165 { 1166 -2, -2, -1, -2, 1167 -2, -1, 0, -1, 1168 -1, 0, 0, 0, 1169 0, 1, 1170 -1, 2, 0, 2, 1, 2, 2, 2, 1171 127 1172 }, 1173 #ifdef LIFE_NAMES 1174 {"oscillator1 (p11)"}, 1175 #endif 1176 { 1177 -4, -5, 1178 -5, -4, -4, -4, 1179 -4, -3, -3, -3, -1, -3, 1180 -6, -2, -5, -2, -4, -2, -2, -2, 0, -2, 1181 -4, -1, -2, -1, 1, -1, 2, -1, 1182 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 3, 0, 4, 0, 5, 0, 1183 -4, 1, 0, 1, 1, 1, 4, 1, 1184 2, 2, 3, 2, 4, 2, 1185 4, 3, 1186 5, 4, 1187 127 1188 }, 1189 #ifdef LIFE_NAMES 1190 {"oscillator2 (p11)"}, 1191 #endif 1192 { 1193 -3, -3, -2, -3, 0, -3, 1194 -3, -2, 0, -2, 1, -2, 1195 -1, -1, 0, -1, 2, -1, 1196 -3, 0, -2, 0, -1, 0, 1, 0, 2, 0, 1197 -2, 1, 0, 1, 1, 1, 3, 1, 1198 -1, 2, 0, 2, 2, 2, 3, 2, 1199 1, 3, 2, 3, 1200 127 1201 }, 1202 #ifdef LIFE_NAMES 1203 {"eat (p11)"}, 1204 #endif 1205 { 1206 -3, -4, -2, -4, -1, -4, 1207 -4, -3, 0, -3, 1, -3, 1208 -3, -2, -2, -2, 0, -2, 2, -2, 1209 -3, -1, -1, -1, 1, -1, 2, -1, 1210 -2, 0, -1, 0, 1, 0, 3, 0, 1211 -2, 1, 2, 1, 3, 1, 1212 0, 2, 1, 2, 2, 2, 1213 127 1214 }, 1215 #ifdef LIFE_NAMES 1216 {"6 A's (p11)"}, 1217 #endif 1218 { 1219 -7, -10, -3, -10, 1220 -6, -9, -5, -9, -4, -9, -3, -9, 1221 -5, -8, -3, -8, 1222 -10, -7, -4, -7, -3, -7, 3, -7, 1223 -9, -6, 3, -6, 1224 -9, -5, -8, -5, 3, -5, 4, -5, 1225 -9, -4, -7, -4, 3, -4, 5, -4, 1226 -10, -3, -9, -3, -8, -3, -7, -3, 4, -3, 5, -3, 6, -3, 7, -3, 1227 -7, 3, -6, 3, -5, 3, -4, 3, 7, 3, 8, 3, 9, 3, 10, 3, 1228 -5, 4, -3, 4, 7, 4, 9, 4, 1229 -4, 5, -3, 5, 8, 5, 9, 5, 1230 -3, 6, 9, 6, 1231 -3, 7, 3, 7, 4, 7, 10, 7, 1232 3, 8, 5, 8, 1233 3, 9, 4, 9, 5, 9, 6, 9, 1234 3, 10, 7, 10, 1235 127 1236 }, 1237 #ifdef LIFE_NAMES 1238 {"vanish (p12)"}, 1239 #endif 1240 { 1241 -3, -5, 1242 -3, -4, -2, -4, 1243 -3, -3, -1, -3, 1244 -2, -2, -1, -2, 1245 0, 2, 1, 2, 1246 0, 3, 2, 3, 1247 1, 4, 2, 4, 1248 2, 5, 1249 127 1250 }, 1251 #ifdef LIFE_NAMES 1252 {"TIE fighter (p13)"}, 1253 #endif 1254 { 1255 -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 1256 -1, -2, 1257 -1, -1, 0, -1, 1258 -1, 0, 1, 0, 1259 0, 1, 1, 1, 1260 1, 2, 1261 -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 1262 127 1263 }, 1264 #ifdef LIFE_NAMES 1265 {"oscillator (p14)"}, 1266 #endif 1267 { 1268 -3, -3, 1269 -4, -2, 1, -2, 1270 -3, -1, -2, -1, 1, -1, 1271 -3, 0, -1, 0, 1, 0, 1272 -2, 1, -1, 1, 2, 1, 1273 -2, 2, 3, 2, 1274 0, 3, 1275 127 1276 }, 1277 #ifdef LIFE_NAMES 1278 {"bulbs (p14)"}, 1279 #endif 1280 { 1281 -4, -2, -3, -2, 0, -2, 1, -2, 1282 -4, -1, -2, -1, -1, -1, 0, -1, 2, -1, 1283 -3, 0, -1, 0, 3, 0, 1284 -3, 1, -1, 1, 0, 1, 1, 1, 3, 1, 1285 -2, 2, -1, 2, 2, 2, 3, 2, 1286 127 1287 }, 1288 #ifdef LIFE_NAMES 1289 {"chain (p14)"}, 1290 #endif 1291 { 1292 -6, -1, -5, -1, -2, -1, -1, -1, 2, -1, 3, -1, 1293 -6, 0, -4, 0, -3, 0, -2, 0, 0, 0, 1, 0, 2, 0, 4, 0, 1294 -6, 1, -2, 1, 1, 1, 5, 1, 1295 -5, 2, -3, 2, -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 5, 2, 1296 -4, 3, -3, 3, 0, 3, 1, 3, 4, 3, 5, 3, 1297 127 1298 }, 1299 #ifdef LIFE_NAMES 1300 {"6 flies (p14)"}, 1301 #endif 1302 { 1303 -6, -7, -1, -7, 1304 -7, -6, -6, -6, 0, -6, 1, -6, 1305 -3, -3, -2, -3, -1, -3, 0, -3, 1306 -3, -2, -1, -2, 1, -2, 1307 -7, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 6, -1, 1308 -6, 0, -3, 0, -1, 0, 1, 0, 3, 0, 6, 0, 1309 -6, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 7, 1, 1310 -1, 2, 1, 2, 3, 2, 1311 0, 3, 1, 3, 2, 3, 3, 3, 1312 -1, 6, 0, 6, 6, 6, 7, 6, 1313 1, 7, 6, 7, 1314 127 1315 }, 1316 #ifdef LIFE_NAMES 1317 {"greater than c (p16)"}, 1318 #endif 1319 { 1320 -3, -5, 1321 -2, -4, 1322 -3, -3, -2, -3, -1, -3, 1323 2, -1, 1324 3, 0, 1325 3, 1, 1326 0, 3, 1, 3, 2, 3, 1327 2, 4, 1328 2, 5, 1329 127 1330 }, 1331 #ifdef LIFE_NAMES 1332 {"flag waver (p16)"}, 1333 #endif 1334 { 1335 -5, -2, -1, -2, 1336 -4, -1, -3, -1, -2, -1, -1, -1, 3, -1, 4, -1, 1337 -3, 0, -1, 0, 4, 0, 1338 -3, 1, -2, 1, -1, 1, 0, 1, 3, 1, 4, 1, 1339 -3, 2, 1, 2, 4, 2, 1340 127 1341 }, 1342 #ifdef LIFE_NAMES 1343 {"3v (p16)"}, 1344 #endif 1345 { 1346 -6, -6, 1347 -5, -5, 1348 -6, -4, -5, -4, -4, -4, 1349 4, -3, 1350 -1, -2, 4, -2, 1351 0, -1, 4, -1, 5, -1, 6, -1, 1352 0, 0, 1, 0, 2, 0, 1353 0, 1, 1354 1, 4, 1355 1, 5, 2, 5, 1356 1, 6, 3, 6, 1357 127 1358 }, 1359 #ifdef LIFE_NAMES 1360 {"3 things (p16)"}, 1361 #endif 1362 { 1363 -8, -11, 1364 -8, -10, -7, -10, -6, -10, 1365 -10, -9, -9, -9, -8, -9, -6, -9, 1366 -9, -8, -6, -8, 1367 -9, -7, -8, -7, -7, -7, -5, -7, 1368 -6, -6, -5, -6, -4, -6, 1369 -5, -5, -3, -5, 1370 -4, -4, -3, -4, 6, -4, 1371 6, -3, 7, -3, 8, -3, 1372 3, -2, 4, -2, 5, -2, 6, -2, 8, -2, 1373 3, -1, 5, -1, 8, -1, 1374 4, 0, 5, 0, 6, 0, 7, 0, 9, 0, 1375 8, 1, 9, 1, 10, 1, 1376 -1, 2, 0, 2, 9, 2, 1377 -1, 3, 1, 3, 1378 -1, 4, 0, 4, 1, 4, 1379 -3, 5, -2, 5, -1, 5, 1, 5, 1380 -2, 6, 1, 6, 1381 -2, 7, -1, 7, 0, 7, 2, 7, 1382 1, 8, 2, 8, 3, 8, 1383 2, 9, 1384 127 1385 }, 1386 #ifdef LIFE_NAMES 1387 {"oscillator (p17)"}, 1388 #endif 1389 { 1390 -3, -6, 1391 -3, -5, 1392 -5, -4, -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1393 -3, -3, -1, -3, 0, -3, 1394 -2, -2, -1, -2, 1395 -2, 0, -1, 0, 2, 0, 1396 -3, 1, -2, 1, 0, 1, 1, 1, 1397 -3, 2, 0, 2, 2, 2, 1398 -2, 3, -1, 3, 1, 3, 2, 3, 1399 0, 4, 1, 4, 3, 4, 4, 4, 1400 2, 5, 3, 5, 1401 2, 6, 1402 127 1403 }, 1404 #ifdef LIFE_NAMES 1405 {"2 portals (p18)"}, 1406 #endif 1407 { 1408 -7, -3, -4, -3, -3, -3, -1, -3, 0, -3, 3, -3, 1409 -8, -2, -7, -2, -3, -2, -2, -2, -1, -2, 0, -2, 4, -2, 5, -2, 1410 -6, 2, -5, 2, -1, 2, 0, 2, 1, 2, 2, 2, 6, 2, 7, 2, 1411 -4, 3, -1, 3, 0, 3, 2, 3, 3, 3, 6, 3, 1412 127 1413 }, 1414 #ifdef LIFE_NAMES 1415 {"oscillator (p18)"}, 1416 #endif 1417 { 1418 -5, -4, -3, -4, 1419 -4, -3, -3, -3, -2, -3, 1420 -5, -2, -4, -2, -2, -2, 1421 -6, -1, -5, -1, -3, -1, -2, -1, 0, -1, 1, -1, 2, -1, 4, -1, 1422 -6, 0, -4, 0, -3, 0, -1, 0, 1, 0, 3, 0, 4, 0, 5, 0, 6, 0, 1423 -5, 1, -4, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4, 1, 5, 1, 1424 -3, 2, -2, 2, 0, 2, 2, 2, 3, 2, 4, 2, 6, 2, 1425 -3, 3, -1, 3, 4, 3, 1426 127 1427 }, 1428 #ifdef LIFE_NAMES 1429 {"oscillator (p19)"}, 1430 #endif 1431 { 1432 -6, -4, -2, -4, 1433 -7, -3, -6, -3, -3, -3, -2, -3, -1, -3, 1, -3, 1434 -7, -2, -5, -2, -4, -2, -2, -2, 0, -2, 1, -2, 2, -2, 1435 -6, -1, -5, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 3, -1, 1436 -6, 0, -4, 0, -3, 0, 0, 0, 2, 0, 3, 0, 1437 -4, 1, -2, 1, 0, 1, 1, 1, 2, 1, 4, 1, 5, 1, 1438 0, 2, 1, 2, 3, 2, 4, 2, 5, 2, 1439 1, 3, 2, 3, 3, 3, 6, 3, 1440 3, 4, 1441 127 1442 }, 1443 #ifdef LIFE_NAMES 1444 {"6 crowns (p19)"}, 1445 #endif 1446 { 1447 -5, -10, 1448 -6, -9, -5, -9, -4, -9, -3, -9, 1449 -5, -8, -3, -8, 1450 -4, -7, -3, -7, 1451 -9, -6, 3, -6, 1452 -10, -5, -9, -5, -8, -5, 3, -5, 4, -5, 5, -5, 1453 -9, -4, -7, -4, 3, -4, 5, -4, 1454 -9, -3, -8, -3, -7, -3, 4, -3, 5, -3, 6, -3, 1455 -6, 3, -5, 3, -4, 3, 7, 3, 8, 3, 9, 3, 1456 -5, 4, -3, 4, 7, 4, 9, 4, 1457 -5, 5, -4, 5, -3, 5, 8, 5, 9, 5, 10, 5, 1458 -3, 6, 9, 6, 1459 3, 7, 4, 7, 1460 3, 8, 5, 8, 1461 3, 9, 4, 9, 5, 9, 6, 9, 1462 5, 10, 1463 127 1464 }, 1465 #ifdef LIFE_NAMES 1466 {"sparky (p21)"}, 1467 #endif 1468 { 1469 -2, -3, 1470 -3, -2, -2, -2, -1, -2, 0, -2, 1471 -4, -1, -3, -1, -2, -1, 0, -1, 1, -1, 2, -1, 1472 -4, 0, -1, 0, 0, 0, 3, 0, 1473 -3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, 1474 -1, 2, 0, 2, 1, 2, 2, 2, 1475 1, 3, 1476 127 1477 }, 1478 #ifdef LIFE_NAMES 1479 {"vase (p22)"}, 1480 #endif 1481 { 1482 -4, -4, -2, -4, -1, -4, 1483 -3, -3, -2, -3, 0, -3, 1484 0, -2, 3, -2, 1485 1, -1, 3, -1, 1486 1, 0, 4, 0, 1487 -1, 1, 0, 1, 2, 1, 1488 -1, 2, 1, 2, 2, 2, 1489 127 1490 }, 1491 #ifdef LIFE_NAMES 1492 {"oscillator (p22)"}, 1493 #endif 1494 { 1495 -5, -5, 1496 -4, -4, 1497 -6, -3, -5, -3, -4, -3, -3, -3, -2, -3, 1498 -4, -2, -2, -2, 1499 -4, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1500 -3, 0, -1, 0, 1, 0, 2, 0, 1501 0, 1, 1, 1, 2, 1, 3, 1, 1502 0, 2, 1, 2, 1503 4, 4, 1504 5, 5, 6, 5, 1505 127 1506 }, 1507 #ifdef LIFE_NAMES 1508 {"broken glasses (p22)"}, 1509 #endif 1510 { 1511 -1, -6, 1512 -3, -5, -2, -5, -1, -5, 1513 -1, -4, 1514 -1, -3, 0, -3, 2, -3, 1515 -1, -2, 1, -2, 2, -2, 3, -2, 4, -2, 1516 0, -1, 1, -1, 2, -1, 1517 -3, 2, -2, 2, -1, 2, 1518 -5, 3, -4, 3, -3, 3, -2, 3, 0, 3, 1519 -3, 4, -1, 4, 0, 4, 1520 0, 5, 1521 0, 6, 1, 6, 2, 6, 1522 0, 7, 1523 127 1524 }, 1525 #ifdef LIFE_NAMES 1526 {"2 glasses (p22)"}, 1527 #endif 1528 { 1529 -5, -6, -2, -6, 1530 -6, -5, -5, -5, -3, -5, -1, -5, 0, -5, 1531 -6, -4, -4, -4, -3, -4, -2, -4, -1, -4, 1, -4, 1532 -5, -3, -4, -3, 0, -3, 1, -3, 1533 -7, -2, -5, -2, -4, -2, 1, -2, 2, -2, 4, -2, 1534 -5, 2, -3, 2, -2, 2, 3, 2, 4, 2, 6, 2, 1535 -2, 3, -1, 3, 3, 3, 4, 3, 1536 -2, 4, 0, 4, 1, 4, 2, 4, 3, 4, 5, 4, 1537 -1, 5, 0, 5, 2, 5, 4, 5, 5, 5, 1538 1, 6, 4, 6, 1539 127 1540 }, 1541 #ifdef LIFE_NAMES 1542 {"3 glasses (p22)"}, 1543 #endif 1544 { 1545 -6, -8, -3, -8, 1546 -8, -7, -7, -7, -6, -7, -2, -7, -1, -7, 0, -7, 1547 -8, -6, -6, -6, -1, -6, 1, -6, 1548 -7, -5, -6, -5, 0, -5, 1, -5, 1549 -7, -4, -5, -4, 0, -4, 2, -4, 1550 -7, -3, -6, -3, 2, -3, 3, -3, 1551 -8, -2, -7, -2, 4, -2, 5, -2, 1552 -8, -1, -6, -1, -5, -1, 3, -1, 4, -1, 6, -1, 1553 -7, 0, -6, 0, 5, 0, 6, 0, 1554 -6, 1, 6, 1, 1555 -6, 2, 7, 2, 1556 0, 4, 3, 4, 1557 -3, 5, -2, 5, -1, 5, 0, 5, 2, 5, 4, 5, 5, 5, 6, 5, 7, 5, 1558 -1, 6, 1, 6, 2, 6, 3, 6, 4, 6, 6, 6, 1559 0, 7, 1, 7, 5, 7, 6, 7, 1560 127 1561 }, 1562 #ifdef LIFE_NAMES 1563 {"oscillator (p26)"}, 1564 #endif 1565 { 1566 -5, -7, 1567 -5, -6, -3, -6, 1568 -6, -5, -5, -5, -4, -5, -3, -5, -2, -5, 1569 -5, -4, -3, -4, -1, -4, 0, -4, 1570 -5, -3, -2, -3, -1, -3, 1, -3, 1571 -3, -2, -2, -2, 1, -2, 1572 -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 1573 1, 0, 3, 0, 1574 -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 1575 -4, 2, -3, 2, -1, 2, 1, 2, 3, 2, 5, 2, 1576 -2, 3, 0, 3, 1, 3, 3, 3, 1577 2, 4, 3, 4, 4, 4, 1578 2, 5, 5, 5, 1579 5, 6, 1580 127 1581 }, 1582 #ifdef LIFE_NAMES 1583 {"3 erasers (p26)"}, 1584 #endif 1585 { 1586 -6, -6, -5, -6, -4, -6, -3, -6, -2, -6, -1, -6, 1587 -6, -5, -5, -5, -1, -5, 0, -5, 1588 -4, -4, -1, -4, 1589 -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1590 -6, -1, -4, -1, 2, -1, 4, -1, 1591 -6, 0, -5, 0, -4, 0, -3, 0, 2, 0, 3, 0, 4, 0, 5, 0, 1592 -5, 1, -2, 1, 2, 1, 5, 1, 1593 -4, 2, -1, 2, 2, 2, 5, 2, 1594 -3, 3, -1, 3, 0, 3, 2, 3, 3, 3, 5, 3, 1595 -2, 4, -1, 4, 4, 4, 5, 4, 1596 -1, 5, 0, 5, 4, 5, 5, 5, 1597 127 1598 }, 1599 #ifdef LIFE_NAMES 1600 {"A template (p28)"}, 1601 #endif 1602 { 1603 -2, -2, -1, -2, 1604 -8, -1, -2, -1, 0, -1, 6, -1, 1605 -8, 0, -2, 0, -1, 0, 0, 0, 1, 0, 7, 0, 1606 -7, 1, -2, 1, 2, 1, 7, 1, 1607 127 1608 }, 1609 #ifdef LIFE_NAMES 1610 {"oscillator (p29)"}, 1611 #endif 1612 { 1613 -2, -6, 1614 -2, -5, -1, -5, 1615 -3, -4, -2, -4, 0, -4, 1, -4, 1616 -5, -3, -4, -3, -3, -3, 2, -3, 3, -3, 4, -3, 1617 -4, -2, -2, -2, 2, -2, 4, -2, 1618 -3, -1, -2, -1, -1, -1, 0, -1, 3, -1, 4, -1, 5, -1, 1619 -5, 0, -4, 0, -3, 0, -2, 0, 1, 0, 2, 0, 3, 0, 1620 -5, 1, -4, 1, -1, 1, 0, 1, 1, 1, 2, 1, 1621 -4, 2, -3, 2, -2, 2, 0, 2, 2, 2, 1622 -3, 3, 0, 3, 1623 1, 5, 1624 127 1625 }, 1626 #ifdef LIFE_NAMES 1627 {"double A template (p39)"}, 1628 #endif 1629 { 1630 -3, -4, -2, -4, 1631 -3, -3, -1, -3, 1632 -7, -2, -3, -2, -2, -2, -1, -2, 0, -2, 4, -2, 1633 -7, -1, -3, -1, 1, -1, 5, -1, 1634 -7, 0, 6, 0, 1635 -6, 1, -2, 1, 2, 1, 6, 1, 1636 -5, 2, -1, 2, 0, 2, 1, 2, 2, 2, 6, 2, 1637 0, 3, 2, 3, 1638 1, 4, 2, 4, 1639 127 1640 }, 1641 #ifdef LIFE_NAMES 1642 {"rotating oscillator (p42)"}, 1643 #endif 1644 { 1645 0, -2, 1, -2, 1646 -1, -1, 0, -1, 1, -1, 1647 1, 0, 1648 -2, 1, -1, 1, 0, 1, 1, 1, 1649 -2, 2, -1, 2, 1650 127 1651 }, 1652 #ifdef LIFE_NAMES 1653 {"oscillator (p42)"}, 1654 #endif 1655 { 1656 -2, -3, -1, -3, 1657 -2, -2, 0, -2, 1658 -3, -1, -2, -1, -1, -1, 0, -1, 1659 -3, 0, 1, 0, 1660 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 1661 0, 2, 1662 0, 3, 1663 127 1664 }, 1665 #ifdef LIFE_NAMES 1666 {"69 (p42)"}, 1667 #endif 1668 { 1669 -3, -8, 1670 -2, -7, 1671 -3, -6, -2, -6, 1672 -3, -5, 1673 -2, -4, -1, -4, 0, -4, 1674 -2, -3, 0, -3, 1675 -1, -2, 0, -2, 1, -2, 1676 -2, 1, -1, 1, 0, 1, 1677 -1, 2, 1, 2, 1678 -1, 3, 0, 3, 1, 3, 1679 2, 4, 1680 1, 5, 2, 5, 1681 1, 6, 1682 2, 7, 1683 127 1684 }, 1685 #ifdef LIFE_NAMES 1686 {"6 A's (p44)"}, 1687 #endif 1688 { 1689 -8, -12, -4, -12, 1690 -7, -11, -6, -11, -5, -11, -4, -11, 1691 -6, -10, -4, -10, 1692 -5, -9, -4, -9, 1693 -12, -8, 4, -8, 1694 -11, -7, 4, -7, 1695 -11, -6, -10, -6, 4, -6, 5, -6, 1696 -11, -5, -9, -5, 4, -5, 6, -5, 1697 -12, -4, -11, -4, -10, -4, -9, -4, 5, -4, 6, -4, 7, -4, 8, -4, 1698 -8, 4, -7, 4, -6, 4, -5, 4, 9, 4, 10, 4, 11, 4, 12, 4, 1699 -6, 5, -4, 5, 9, 5, 11, 5, 1700 -5, 6, -4, 6, 10, 6, 11, 6, 1701 -4, 7, 11, 7, 1702 -4, 8, 12, 8, 1703 4, 9, 5, 9, 1704 4, 10, 6, 10, 1705 4, 11, 5, 11, 6, 11, 7, 11, 1706 4, 12, 8, 12, 1707 127 1708 }, 1709 #ifdef LIFE_NAMES 1710 {"2 snowflakes (p44)"}, 1711 #endif 1712 { 1713 -6, -4, 1, -4, 1714 -6, -3, -5, -3, 1, -3, 2, -3, 1715 -7, -2, -6, -2, -4, -2, -3, -2, 0, -2, 1, -2, 3, -2, 4, -2, 1716 -7, -1, -2, -1, 0, -1, 5, -1, 1717 -6, 0, -2, 0, 1, 0, 5, 0, 1718 -6, 1, -1, 1, 1, 1, 6, 1, 1719 -5, 2, -4, 2, -2, 2, -1, 2, 2, 2, 3, 2, 5, 2, 6, 2, 1720 -3, 3, -2, 3, 4, 3, 5, 3, 1721 -2, 4, 5, 4, 1722 127 1723 }, 1724 #ifdef LIFE_NAMES 1725 {"lightning (p45)"}, 1726 #endif 1727 { 1728 -5, -9, 1729 -5, -8, -4, -8, 1730 -5, -7, -3, -7, 1731 -4, -6, -3, -6, 1732 -4, -5, -2, -5, 1733 -3, -4, -2, -4, -1, -4, 1734 0, 1, 1, 1, 2, 1, 1735 1, 2, 3, 2, 1736 2, 3, 3, 3, 1737 2, 4, 4, 4, 1738 3, 5, 4, 5, 1739 4, 6, 1740 127 1741 }, 1742 #ifdef LIFE_NAMES 1743 {"oscillator (p46)"}, 1744 #endif 1745 { 1746 -2, -4, 1747 -2, -3, -1, -3, 0, -3, 1748 -4, -2, -3, -2, -2, -2, 0, -2, 1749 -5, -1, -3, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 1750 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 3, 0, 1751 -3, 1, -1, 1, 1, 1, 4, 1, 1752 -4, 2, -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 1753 -1, 3, 1754 -1, 4, 1755 127 1756 }, 1757 #ifdef LIFE_NAMES 1758 {"tentacle (p66)"}, 1759 #endif 1760 { 1761 -3, -3, -2, -3, 1762 -5, -2, -4, -2, -3, -2, -1, -2, 1763 -5, -1, -3, -1, -1, -1, 1764 -4, 0, -3, 0, -1, 0, 0, 0, 1765 -4, 1, -2, 1, -1, 1, 1, 1, 3, 1, 1766 0, 2, 1, 2, 3, 2, 4, 2, 5, 2, 1767 2, 3, 3, 3, 1768 127 1769 }, 1770 #ifdef LIFE_NAMES 1771 {"crinkle (p90)"}, 1772 #endif 1773 { 1774 -8, -3, -6, -3, -5, -3, -4, -3, 0, -3, 4, -3, 5, -3, 6, -3, 8, -3, 1775 -7, -2, -6, -2, -4, -2, 0, -2, 1, -2, 5, -2, 7, -2, 8, -2, 1776 -4, -1, -2, -1, -1, -1, 0, -1, 2, -1, 3, -1, 4, -1, 6, -1, 1777 -3, 0, -2, 0, 0, 0, 1, 0, 2, 0, 3, 0, 5, 0, 6, 0, 1778 2, 1, 1779 127 1780 }, 1781 #ifdef LIFE_NAMES 1782 {"stalk (p8)"}, 1783 #endif 1784 { 1785 -2, -4, 1786 -3, -3, -2, -3, 1787 -3, -2, -1, -2, 0, -2, 1788 -3, -1, -2, -1, -1, -1, 1, -1, 1789 0, 0, 1, 0, 1790 0, 1, 2, 1, 1791 0, 2, 1, 2, 2, 2, 1792 2, 3, 3, 3, 4, 3, 1793 127 1794 }, 1795 #ifdef LIFE_NAMES 1796 {"ship by a collision of 3 gliders (p15)"}, 1797 #endif 1798 { 1799 7, -4, 1800 8, -3, 1801 8, -2, 10, -2, 1802 -11, -1, -10, -1, 1, -1, 2, -1, 3, -1, 4, -1, 9, -1, 11, -1, 1803 -9, 0, 1, 0, 10, 0, 1804 -8, 1, 1805 -7, 2, 5, 2, 1806 -9, 3, 1807 127 1808 }, 1809 #ifdef LIFE_NAMES 1810 {"stalk by a collision of 3 gliders"}, 1811 #endif 1812 { 1813 -8, -9, 1814 -5, -8, 1815 -5, -7, 1816 -5, -6, 1817 -6, -5, -5, -5, 1818 -3, 1, 1819 -4, 2, -2, 2, 1820 -3, 3, -1, 3, 1821 -1, 4, 1822 0, 5, 5, 5, 1823 5, 6, 1824 5, 7, 8, 7, 1825 5, 8, 1826 6, 9, 1827 127 1828 }, 1829 #ifdef LIFE_NAMES 1830 {"stalk by a collision of 2 gilders and eater"}, 1831 #endif 1832 { 1833 3, -6, 1834 3, -5, 1835 -5, -4, 4, -4, 7, -4, 1836 -4, -3, -3, -3, 5, -3, 1837 6, -2, 1838 -7, 1, -6, 1, 1839 -5, 2, 1840 -4, 3, 1841 -3, 4, 1842 -5, 5, 1843 127 1844 }, 1845 #ifdef LIFE_NAMES 1846 {"3 oscillator glider gun (p42)"}, 1847 #endif 1848 { 1849 5, -6, 6, -6, 1850 6, -5, 7, -5, 9, -5, 1851 6, -4, 8, -4, 9, -4, 1852 7, -3, 8, -3, 10, -3, 11, -3, 1853 8, -2, 10, -2, 1854 8, -1, 10, -1, 11, -1, 1855 8, 0, 9, 0, 10, 0, 12, 0, 1856 10, 1, 1857 1858 -10, -5, 1859 -11, -4, -10, -4, -8, -4, 1860 -12, -3, -11, -3, -9, -3, -8, -3, -7, -3, 1861 -10, -2, -8, -2, -6, -2, 1862 -10, -1, -9, -1, -7, -1, -6, -1, -5, -1, -4, -1, 1863 -10, 0, -8, 0, -7, 0, -5, 0, 1864 1865 0, -1, 1, -1, 1866 1, 0, 2, 0, 3, 0, 1867 1, 1, 3, 1, 1868 0, 2, 1, 2, 2, 2, 3, 2, 1869 0, 3, 4, 3, 1870 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 1871 3, 5, 1872 3, 6, 1873 127 1874 }, 1875 #ifdef LIFE_NAMES 1876 {"another gun (p20)"}, 1877 #endif 1878 { 1879 -2, -7, -1, -7, 1880 -2, -6, 1881 1882 -8, -2, 1883 -9, -1, -8, -1, -7, -1, -6, -1, -5, -1, 1884 -8, 0, -6, 0, -5, 0, 1885 -7, 1, -6, 1, 1886 -8, 2, -7, 2, 1887 -10, 3, -9, 3, -8, 3, 1888 -8, 4, 1889 -9, 5, -8, 5, -7, 5, 1890 -6, 6, 1891 1892 4, 0, 1893 3, 1, 4, 1, 5, 1, 10, 1, 1894 3, 2, 4, 2, 6, 2, 7, 2, 10, 2, 1895 5, 3, 6, 3, 8, 3, 9, 3, 10, 3, 11, 3, 1896 7, 4, 10, 4, 12, 4, 1897 11, 5, 1898 127 1899 }, 1900 }; 1901 1902 static char patterns_6B2o3o4mS2om4o[][2 * NUMPTS + 1] = 1903 { 1904 #ifdef LIFE_NAMES 1905 {"sym ship (p9)"}, 1906 #endif 1907 { 1908 -3, -3, -2, -3, 1909 -1, -2, 1910 -2, -1, -1, -1, 2, -1, 1911 -1, 1, 0, 1, 3, 1, 1912 1, 2, 1913 0, 3, 1, 3, 1914 127 1915 }, 1916 #ifdef LIFE_NAMES 1917 {"diagonal puffer (p18)"}, 1918 #endif 1919 { 1920 -2, -4, 1921 -3, -3, -2, -3, -1, -3, 0, -3, 1922 -2, -2, 0, -2, 1923 -2, -1, 1, -1, 1924 -2, 0, 2, 0, 1925 -2, 2, 4, 2, 1926 -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 1927 0, 4, 1, 4, 3, 4, 4, 4, 1928 1, 5, 4, 5, 1929 127 1930 }, 1931 #ifdef LIFE_NAMES 1932 {"half c (p4)"}, 1933 #endif 1934 { 1935 -2, -1, -1, -1, 1, -1, 1936 -1, 0, 1, 0, 1937 2, 1, 1938 127 1939 }, 1940 #ifdef LIFE_NAMES 1941 {"2 halves (p4)"}, 1942 #endif 1943 { 1944 -2, -2, -1, -2, 0, -2, 1945 -1, -1, 0, -1, 1946 0, 1, 1, 1, 1947 0, 2, 1, 2, 2, 2, 1948 127 1949 }, 1950 #ifdef LIFE_NAMES 1951 {"shard (p6)"}, 1952 #endif 1953 { 1954 -2, -3, 1955 -3, -2, -2, -2, 1956 -1, 0, 0, 0, 1957 -1, 1, 2, 1, 1958 -1, 2, 2, 2, 1959 3, 3, 1960 127 1961 }, 1962 #ifdef LIFE_NAMES 1963 {"mirror image (p6)"}, 1964 #endif 1965 { 1966 -1, -4, 1967 -4, -3, -3, -3, 1968 -3, -2, -2, -2, 1969 -2, -1, 1970 -1, 1, 1971 -1, 2, 0, 2, 1972 -1, 3, 0, 3, 1973 3, 4, 1974 127 1975 }, 1976 #ifdef LIFE_NAMES 1977 {"antisym image (p6)"}, 1978 #endif 1979 { 1980 -3, -3, 1981 -3, -2, -2, -2, 1982 -2, -1, -1, -1, 4, -1, 1983 -4, 0, 1, 0, 2, 0, 1984 2, 1, 3, 1, 1985 3, 2, 1986 127 1987 }, 1988 #ifdef LIFE_NAMES 1989 {"broken kaleidoscope (p6)"}, 1990 #endif 1991 { 1992 -3, -4, 1993 -4, -3, -3, -3, 1994 -1, -2, 0, -2, 1, -2, 1995 -1, -1, 1996 0, 1, 1997 1, 2, 2, 2, 3, 2, 1998 -1, 3, 0, 3, 1999 1, 4, 2000 127 2001 }, 2002 #ifdef LIFE_NAMES 2003 {"broken kaleidoscope2 (p6)"}, 2004 #endif 2005 { 2006 0, -3, 2007 -4, -2, 0, -2, 2008 -5, -1, -4, -1, -2, -1, 0, -1, 2009 -1, 0, 1, 0, 3, 0, 4, 0, 2010 -1, 1, 3, 1, 2011 -1, 2, 2012 127 2013 }, 2014 #ifdef LIFE_NAMES 2015 {"asym spiral (p6)"}, 2016 #endif 2017 { 2018 -4, -4, -3, -4, 0, -4, 1, -4, 2019 1, -3, 3, -3, 2020 -3, -2, -2, -2, 3, -2, 2021 -2, -1, 2022 2, 1, 3, 1, 2023 1, 2, 3, 2, 2024 2, 3, 2025 127 2026 }, 2027 #ifdef LIFE_NAMES 2028 {"mirror mirror (p6)"}, 2029 #endif 2030 { 2031 -3, -4, -2, -4, 2032 -4, -3, 0, -3, 2033 -4, -2, -3, -2, 0, -2, 1, -2, 2034 -2, 2, -1, 2, 2, 2, 3, 2, 2035 -1, 3, 3, 3, 2036 1, 4, 2, 4, 2037 127 2038 }, 2039 #ifdef LIFE_NAMES 2040 {"almost kaleidoscope (p6)"}, 2041 #endif 2042 { 2043 -4, -5, 2044 -3, -4, 2045 -2, -3, 2046 -5, -2, -4, -2, -2, -2, 0, -2, 1, -2, 2, -2, 2047 -3, -1, 0, -1, 2048 -2, 1, 1, 1, 2049 -3, 2, -2, 2, 0, 2, 2, 2, 3, 2, 4, 2, 2050 1, 3, 2051 1, 4, 2052 1, 5, 2053 127 2054 }, 2055 #ifdef LIFE_NAMES 2056 {"kaleidoscope (p6)"}, 2057 #endif 2058 { 2059 -3, -5, 2060 -2, -4, 2061 -5, -3, -1, -3, 2062 -4, -2, -1, -2, 1, -2, 2, -2, 3, -2, 2063 -3, -1, -2, -1, 1, -1, 2064 -2, 1, -1, 1, 2, 1, 2065 -2, 2, 1, 2, 3, 2, 4, 2, 5, 2, 2066 -2, 3, 2, 3, 2067 2, 4, 2068 2, 5, 2069 127 2070 }, 2071 #ifdef LIFE_NAMES 2072 {"squashed kaleidoscope (p6)"}, 2073 #endif 2074 { 2075 -1, -5, 2076 -1, -4, 2077 -5, -3, -4, -3, -3, -3, -1, -3, 3, -3, 2078 -2, -2, 0, -2, 3, -2, 2079 2, -1, 3, -1, 2080 -1, 0, 2081 -3, 1, -2, 1, -1, 1, 2, 1, 3, 1, 2082 1, 2, 4, 2, 2083 1, 3, 5, 3, 2084 2, 4, 2085 3, 5, 2086 127 2087 }, 2088 #ifdef LIFE_NAMES 2089 {"squashed kaleidoscope2 (p6)"}, 2090 #endif 2091 { 2092 -1, -4, 2093 -1, -3, 2094 -5, -2, -4, -2, -3, -2, -1, -2, 2095 -2, -1, 0, -1, 3, -1, 2096 3, 0, 2097 -2, 1, 2, 1, 3, 1, 2098 -4, 2, -3, 2, -2, 2, 2099 0, 3, 2, 3, 3, 3, 2100 0, 4, 4, 4, 2101 1, 5, 5, 5, 2102 2, 6, 2103 127 2104 }, 2105 #ifdef LIFE_NAMES 2106 {"mirror image (p9)"}, 2107 #endif 2108 { 2109 -3, -3, -2, -3, 2110 -1, -2, 2111 -2, -1, -1, -1, 2, -1, 2112 -1, 1, 0, 1, 3, 1, 2113 1, 2, 2114 0, 3, 1, 3, 2115 127 2116 }, 2117 #ifdef LIFE_NAMES 2118 {"quasar (p10)"}, 2119 #endif 2120 { 2121 -2, -1, -1, -1, 0, -1, 2122 -1, 0, 0, 0, 2123 0, 1, 2124 127 2125 }, 2126 #ifdef LIFE_NAMES 2127 {"lily (p12)"}, 2128 #endif 2129 { 2130 -4, -7, -3, -7, -2, -7, 2131 -3, -6, -2, -6, 2132 -8, -5, 2133 -8, -4, -7, -4, -3, -4, -2, -4, 2134 -8, -3, -7, -3, -2, -3, 4, -3, 2135 -5, -2, 2, -2, 4, -2, 5, -2, 2136 -5, -1, -4, -1, -1, -1, 2, -1, 3, -1, 5, -1, 6, -1, 2137 -2, 0, 1, 0, 2138 -1, 2, 2, 2, 2139 -6, 3, -5, 3, -3, 3, -2, 3, 1, 3, 4, 3, 5, 3, 2140 -5, 4, -4, 4, -2, 4, 5, 4, 2141 -4, 5, 2, 5, 7, 5, 8, 5, 2142 2, 6, 3, 6, 7, 6, 8, 6, 2143 8, 7, 2144 2, 8, 3, 8, 2145 2, 9, 3, 9, 4, 9, 2146 127 2147 }, 2148 #ifdef LIFE_NAMES 2149 {"lily2 (p12)"}, 2150 #endif 2151 { 2152 -7, -8, -6, -8, -5, -8, 2153 -6, -7, -5, -7, 1, -7, 2154 1, -6, 2, -6, 2155 -4, -5, -3, -5, 2, -5, 3, -5, 2156 -3, -4, 1, -4, 2157 -8, -3, 1, -3, 2, -3, 2158 -8, -2, -7, -2, -5, -2, -2, -2, 0, -2, 2159 -8, -1, -7, -1, -5, -1, -4, -1, 2160 -2, 0, 2, 0, 2161 4, 1, 5, 1, 7, 1, 8, 1, 2162 0, 2, 2, 2, 5, 2, 7, 2, 8, 2, 2163 -2, 3, -1, 3, 8, 3, 2164 -1, 4, 3, 4, 2165 -3, 5, -2, 5, 3, 5, 4, 5, 2166 -2, 6, -1, 6, 2167 -1, 7, 5, 7, 6, 7, 2168 5, 8, 6, 8, 7, 8, 2169 127 2170 }, 2171 #ifdef LIFE_NAMES 2172 {"lily3 (p12)"}, 2173 #endif 2174 { 2175 -8, -9, -7, -9, -6, -9, 2176 -7, -8, -6, -8, 1, -8, 2177 1, -7, 2, -7, 2178 -5, -6, -4, -6, 2, -6, 3, -6, 2179 -5, -5, -4, -5, -3, -5, 0, -5, 1, -5, 2180 1, -4, 2, -4, 2181 -9, -3, 2, -3, 2182 -9, -2, -8, -2, -6, -2, -5, -2, 2183 -9, -1, -8, -1, -6, -1, -5, -1, 2184 -5, 0, 5, 0, 2185 5, 1, 6, 1, 8, 1, 9, 1, 2186 5, 2, 6, 2, 8, 2, 9, 2, 2187 -2, 3, 9, 3, 2188 -2, 4, -1, 4, 2189 -1, 5, 0, 5, 3, 5, 4, 5, 5, 5, 2190 -3, 6, -2, 6, 4, 6, 5, 6, 2191 -2, 7, -1, 7, 2192 -1, 8, 6, 8, 7, 8, 2193 6, 9, 7, 9, 8, 9, 2194 127 2195 }, 2196 #ifdef LIFE_NAMES 2197 {"shuttle (p16)"}, 2198 #endif 2199 { 2200 -3, -4, -2, -4, 2201 -2, -1, -1, -1, 0, -1, 2202 -2, 0, 1, 0, 2203 -1, 2, 2, 2, 2204 0, 3, 1, 3, 2, 3, 2205 127 2206 }, 2207 #ifdef LIFE_NAMES 2208 {"double shuttle (p16)"}, 2209 #endif 2210 { 2211 -5, -10, -4, -10, 2212 -6, -9, -5, -9, -3, -9, -2, -9, 2213 -4, -8, -3, -8, 2214 -3, -7, 2215 3, 5, 2216 3, 6, 4, 6, 2217 2, 7, 3, 7, 5, 7, 6, 7, 2218 4, 8, 5, 8, 2219 127 2220 }, 2221 #ifdef LIFE_NAMES 2222 {"4 glider gunship (p28)"}, 2223 #endif 2224 { 2225 -2, -3, -1, -3, 0, -3, 2226 -3, -2, -2, -2, 3, -2, 2227 -2, -1, 0, -1, 1, -1, 2228 -2, 0, 0, 0, 2, 0, 3, 0, 2229 -1, 1, 2230 -1, 2, 2231 127 2232 }, 2233 #ifdef LIFE_NAMES 2234 {"reflector"}, 2235 #endif 2236 { 2237 -8, -11, 2238 -8, -10, -7, -10, 2239 -8, -9, -7, -9, -6, -9, 2240 -2, 2, -1, 2, 2241 -3, 3, -2, 3, 0, 3, 1, 3, 2242 -3, 4, -1, 4, 0, 4, 2, 4, 2243 -3, 5, 0, 5, 3, 5, 2244 0, 6, 1, 6, 2245 0, 9, 4, 9, 2246 -1, 11, 2, 11, 4, 11, 7, 11, 2247 0, 12, 2, 12, 5, 12, 7, 12, 2248 2, 13, 3, 13, 4, 13, 5, 13, 6, 13, 2249 127 2250 }, 2251 }; 2252 2253 static char patterns_6B245S3[][2 * NUMPTS + 1] = 2254 { 2255 #ifdef LIFE_NAMES 2256 {"medium triangle"}, 2257 #endif 2258 { 2259 -1, -2, 2260 -1, 0, 1, 0, 2261 -1, 2, 1, 2, 3, 2, 2262 127 2263 }, 2264 #ifdef LIFE_NAMES 2265 {"static triangle"}, 2266 #endif 2267 { 2268 -1, -2, 2269 -1, -1, 0, -1, 2270 0, 0, 2271 -1, 1, 0, 1, 1, 1, 2, 1, 2272 -1, 2, 0, 2, 2, 2, 3, 2, 2273 127 2274 }, 2275 #ifdef LIFE_NAMES 2276 {"half divvy (p4)"}, 2277 #endif 2278 { 2279 -2, -2, -1, -2, 0, -2, 1, -2, 2280 -1, 0, 2, 0, 2281 1, 1, 2282 127 2283 }, 2284 #ifdef LIFE_NAMES 2285 {"big divvy (p4)"}, 2286 #endif 2287 { 2288 -2, -1, -1, -1, 0, -1, 1, -1, 2289 -1, 1, 0, 1, 1, 1, 2, 1, 2290 127 2291 }, 2292 #ifdef LIFE_NAMES 2293 {"small triangle (p4)"}, 2294 #endif 2295 { 2296 -2, -1, -1, -1, 0, -1, 1, -1, 2297 -1, 0, 1, 0, 2298 0, 1, 1, 1, 2299 1, 2, 2300 127 2301 }, 2302 #ifdef LIFE_NAMES 2303 {"snake (p4)"}, 2304 #endif 2305 { 2306 -2, -2, 2307 -2, -1, 2308 -1, 0, 0, 0, 2309 1, 1, 2310 1, 2, 2311 127 2312 }, 2313 #ifdef LIFE_NAMES 2314 {"divvy (p6)"}, 2315 #endif 2316 { 2317 -2, 0, -1, 0, 0, 0, 1, 0, 2318 127 2319 }, 2320 #ifdef LIFE_NAMES 2321 {"daisy (p8)"}, 2322 #endif 2323 { 2324 -2, -2, 2325 -3, -1, -2, -1, 2326 0, -1, 1, -1, 2327 0, 0, 2328 3, 1, 2, 1, 0, 1, -1, 1, 2329 2, 2, 2330 127 2331 }, 2332 #ifdef LIFE_NAMES 2333 {"s (p13)"}, 2334 #endif 2335 { 2336 -2, -3, 0, -3, 2337 -3, -2, 2338 -3, -1, 0, -1, 1, -1, 2339 0, 0, 1, 0, 4, 0, 2340 4, 1, 2341 1, 2, 3, 2, 2342 127 2343 }, 2344 #ifdef LIFE_NAMES 2345 {"blossom (p57)"}, 2346 #endif 2347 { 2348 -1, -3, 2349 -2, -2, 1, -2, 2350 -2, -1, 2, -1, 2351 -1, 1, 3, 1, 2352 1, 2, 2, 2, 2353 127 2354 }, 2355 }; 2356 2357 static char patterns_7B346S23[][2 * NUMPTS + 1] = 2358 { 2359 #ifdef LIFE_NAMES 2360 {"clap hands"}, 2361 #endif 2362 { 2363 -1, -2, 2, -2, 2364 -2, -1, -1, -1, 2, -1, 3, -1, 2365 -1, 0, 1, 0, 2, 0, 2366 127 2367 }, 2368 #ifdef LIFE_NAMES 2369 {"dragonfly"}, 2370 #endif 2371 { 2372 0, -1, 1, -1, 2373 -1, 0, 0, 0, 1, 0, 2, 0, 2374 0, 1, 1, 1, 2375 127 2376 }, 2377 #ifdef LIFE_NAMES 2378 {"blink"}, 2379 #endif 2380 { 2381 -1, -1, 0, -1, 1, -1, 3, -1, 2382 -2, 0, 0, 0, 1, 0, 3, 0, 2383 -2, 1, 0, 1, 1, 1, 2, 1, 2384 127 2385 }, 2386 #ifdef LIFE_NAMES 2387 {"antisym blink"}, 2388 #endif 2389 { 2390 -1, -1, 2391 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 2392 2, 1, 2393 127 2394 }, 2395 #ifdef LIFE_NAMES 2396 {"spiral (p3)"}, 2397 #endif 2398 { 2399 -2, -2, -1, -2, 1, -2, 2400 -3, -1, 2, -1, 3, -1, 2401 -4, 0, -3, 0, 2, 0, 2402 -2, 1, 0, 1, 1, 1, 2403 127 2404 }, 2405 #ifdef LIFE_NAMES 2406 {"hummingbird (p4)"}, 2407 #endif 2408 { 2409 1, -1, 2410 -1, 0, 0, 0, 2, 0, 2411 -2, 1, 0, 1, 1, 1, 2, 1, 2412 127 2413 }, 2414 #ifdef LIFE_NAMES 2415 {"bird catch (p4)"}, 2416 #endif 2417 { 2418 -2, -1, 0, -1, 1, -1, 2419 -1, 0, 0, 0, 1, 0, 2, 0, 2420 0, 1, 1, 1, 2421 127 2422 }, 2423 #ifdef LIFE_NAMES 2424 {"rotor (p4)"}, 2425 #endif 2426 { 2427 -1, -1, 2428 -2, 0, 0, 0, 1, 0, 2, 0, 3, 0, 2429 -2, 1, 2, 1, 2430 127 2431 }, 2432 #ifdef LIFE_NAMES 2433 {"generator (p4)"}, 2434 #endif 2435 { 2436 -2, -2, -1, -2, 2437 -3, -1, -2, -1, 0, -1, 2438 -3, 1, -1, 1, 0, 1, 2439 -2, 2, -1, 2, 2440 127 2441 }, 2442 #ifdef LIFE_NAMES 2443 {"bowl (p4)"}, 2444 #endif 2445 { 2446 -3, -1, 0, -1, 1, -1, 4, -1, 2447 -4, 0, -3, 0, 4, 0, 5, 0, 2448 -3, 1, -1, 1, 3, 1, 4, 1, 2449 0, 2, 2450 127 2451 }, 2452 #ifdef LIFE_NAMES 2453 {"rose (p4)"}, 2454 #endif 2455 { 2456 -2, 0, -1, 0, 0, 0, 2457 -1, 1, 0, 1, 1, 1, 2458 127 2459 }, 2460 #ifdef LIFE_NAMES 2461 {"exercise (p6)"}, 2462 #endif 2463 { 2464 -3, -1, -2, -1, 0, -1, 2465 -2, 0, -1, 0, 2466 -2, 1, -1, 1, 2467 127 2468 }, 2469 #ifdef LIFE_NAMES 2470 {"galaxy (p8)"}, 2471 #endif 2472 { 2473 0, -3, 1, -3, 3, -3, 2474 3, -2, 2475 -3, -1, 2, -1, 4, -1, 2476 -3, 0, 4, 0, 2477 -3, 1, -1, 1, 4, 1, 2478 -2, 2, 2479 -2, 3, 0, 3, 1, 3, 2480 127 2481 }, 2482 #ifdef LIFE_NAMES 2483 {"bears (p9)"}, 2484 #endif 2485 { 2486 1, -4, 2487 0, -3, 1, -3, 2488 -4, -1, -3, -1, -1, -1, 3, -1, 4, -1, 5, -1, 2489 -5, 0, -4, 0, 0, 0, 4, 0, 6, 0, 2490 -6, 1, -5, 1, 6, 1, 7, 1, 2491 -5, 2, -3, 2, 1, 2, 5, 2, 6, 2, 2492 -4, 3, -3, 3, -2, 3, 2, 3, 4, 3, 5, 3, 2493 0, 5, 1, 5, 2494 0, 6, 2495 127 2496 }, 2497 #ifdef LIFE_NAMES 2498 {"clock (p40)"}, 2499 #endif 2500 { 2501 -3, -1, 0, -1, 2502 -4, 0, -2, 0, 0, 0, 1, 0, 3, 0, 4, 0, 5, 0, 2503 -2, 1, 1, 1, 2504 127 2505 }, 2506 }; 2507 2508 static char patterns_8B3S2ckan3[][2 * NUMPTS + 1] = 2509 { 2510 #ifdef LIFE_NAMES 2511 {"relate (p3)"}, 2512 #endif 2513 { 2514 0, -2, 2515 0, -1, 1, -1, 2516 -2, 0, -1, 0, 2517 -1, 1, 2518 127 2519 }, 2520 #ifdef LIFE_NAMES 2521 {"pregunta (p4)"}, 2522 #endif 2523 { 2524 1, -3, 2, -3, 2525 3, -2, 2526 -1, -1, 2, -1, 2527 -1, 0, 1, 0, 2528 -2, 1, 1, 1, 2529 -3, 2, 2530 -2, 3, -1, 3, 2531 127 2532 }, 2533 #ifdef LIFE_NAMES 2534 {"exchanger (p4)"}, 2535 #endif 2536 { 2537 -2, -3, -1, -3, 0, -3, 1, -3, 2538 -4, -2, -2, -2, 1, -2, 3, -2, 2539 -4, -1, -1, -1, 0, -1, 3, -1, 2540 -4, 0, -1, 0, 0, 0, 3, 0, 2541 -4, 1, -2, 1, 1, 1, 3, 1, 2542 -2, 2, -1, 2, 0, 2, 1, 2, 2543 127 2544 }, 2545 #ifdef LIFE_NAMES 2546 {"frame (p4)"}, 2547 #endif 2548 { 2549 -5, -6, -2, -6, -1, -6, 0, -6, 1, -6, 4, -6, 2550 -6, -5, -4, -5, -3, -5, -2, -5, -1, -5, 0, -5, 1, -5, 2, -5, 3, -5, 5, -5, 2551 -5, -4, 4, -4, 2552 -5, -3, 4, -3, 2553 -6, -2, -5, -2, 4, -2, 5, -2, 2554 -6, -1, -5, -1, 4, -1, 5, -1, 2555 -6, 0, -5, 0, 4, 0, 5, 0, 2556 -6, 1, -5, 1, 4, 1, 5, 1, 2557 -5, 2, 4, 2, 2558 -5, 3, 4, 3, 2559 -6, 4, -4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 5, 4, 2560 -5, 5, -2, 5, -1, 5, 0, 5, 1, 5, 4, 5, 2561 127 2562 }, 2563 #ifdef LIFE_NAMES 2564 {"pound (p5)"}, 2565 #endif 2566 { 2567 -2, -3, 1, -3, 2568 -3, -2, -1, -2, 0, -2, 2, -2, 2569 -2, -1, 1, -1, 2570 -2, 0, 1, 0, 2571 -3, 1, -1, 1, 0, 1, 2, 1, 2572 -2, 2, 1, 2, 2573 127 2574 }, 2575 #ifdef LIFE_NAMES 2576 {"fence (p8)"}, 2577 #endif 2578 { 2579 -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 2580 -3, -2, 3, -2, 2581 -4, -1, 4, -1, 2582 -3, 0, 3, 0, 2583 -4, 1, 4, 1, 2584 -3, 2, 3, 2, 2585 -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 2586 127 2587 }, 2588 #ifdef LIFE_NAMES 2589 {"4M (p9)"}, 2590 #endif 2591 { 2592 -3, -6, 3, -6, 2593 -2, -5, 2, -5, 2594 -2, -4, 0, -4, 2, -4, 2595 -6, -3, -1, -3, 1, -3, 6, -3, 2596 -5, -2, -4, -2, 4, -2, 5, -2, 2597 -3, -1, 0, -1, 3, -1, 2598 -4, 0, -1, 0, 1, 0, 4, 0, 2599 -3, 1, 0, 1, 3, 1, 2600 -5, 2, -4, 2, 4, 2, 5, 2, 2601 -6, 3, -1, 3, 1, 3, 6, 3, 2602 -2, 4, 0, 4, 2, 4, 2603 -2, 5, 2, 5, 2604 -3, 6, 3, 6, 2605 127 2606 }, 2607 #ifdef LIFE_NAMES 2608 {"field (p11)"}, 2609 #endif 2610 { 2611 -2, -5, 1, -5, 2612 -1, -4, 0, -4, 2613 -4, -3, 3, -3, 2614 -5, -2, -2, -2, -1, -2, 0, -2, 1, -2, 4, -2, 2615 -2, -1, 1, -1, 2616 -2, 0, 1, 0, 2617 -2, 1, 1, 1, 2618 -2, 2, 1, 2, 2619 -5, 3, -2, 3, -1, 3, 0, 3, 1, 3, 4, 3, 2620 -4, 4, 3, 4, 2621 -1, 5, 0, 5, 2622 -2, 6, 1, 6, 2623 127 2624 }, 2625 #ifdef LIFE_NAMES 2626 {"2 spinning pi (p28)"}, 2627 #endif 2628 { 2629 -3, -2, -1, -2, 2630 -4, -1, 2, -1, 2631 -3, 0, -1, 0, 1, 0, 3, 0, 2632 -2, 1, 4, 1, 2633 1, 2, 3, 2, 2634 127 2635 }, 2636 #ifdef LIFE_NAMES 2637 {"4T (p38)"}, 2638 #endif 2639 { 2640 -2, -5, 2641 -2, -4, -1, -4, 2642 -2, -3, 2643 2, -2, 3, -2, 4, -2, 2644 3, -1, 2645 -4, 0, 2646 -5, 1, -4, 1, -3, 1, 2647 1, 2, 2648 0, 3, 1, 3, 2649 1, 4, 2650 127 2651 }, 2652 #ifdef LIFE_NAMES 2653 {"collision"}, 2654 #endif 2655 { 2656 -4, -1, 1, -1, 2, -1, 2657 -4, 0, -3, 0, 0, 0, 3, 0, 2658 -4, 1, 1, 1, 2, 1, 2659 127 2660 }, 2661 }; 2662 2663 /* This group is for the overlap of both 8S23B3 and 8S23B36 */ 2664 2665 static char patterns_8B3_6S23[][2 * NUMPTS + 1] = 2666 { 2667 #ifdef LIFE_NAMES 2668 {"almosymmetric, clock (flywheel), blinker"}, /* 0 */ 2669 #endif 2670 { 2671 -1, -4, 2672 -1, -3, 1, -3, 2673 -3, -2, 2674 2, -1, 3, -1, 2675 -4, 0, -3, 0, 2676 2, 1, 2677 -2, 2, 0, 2, 2678 0, 3, 2679 2680 5, 3, 2681 3, 4, 4, 4, 2682 5, 5, 6, 5, 2683 4, 6, 2684 2685 8, 0, 2686 8, 1, 2687 8, 2, 2688 127 2689 }, 2690 #ifdef LIFE_NAMES 2691 {"baker (c p4 fuse)"}, /* 126 */ 2692 #endif 2693 { 2694 6, -7, 7, -7, 2695 5, -6, 7, -6, 2696 4, -5, 2697 3, -4, 2698 2, -3, 2699 1, -2, 2700 0, -1, 2701 -1, 0, 2702 -2, 1, 2703 -3, 2, 2704 -4, 3, 2705 -5, 4, 2706 -8, 5, -7, 5, -6, 5, 2707 -7, 6, 2708 127 2709 }, 2710 #ifdef LIFE_NAMES 2711 {"barber's pole"}, /* 2 */ 2712 #endif 2713 { 2714 -6, -6, -5, -6, 2715 -6, -5, -4, -5, 2716 -4, -3, -2, -3, 2717 -2, -1, 0, -1, 2718 0, 1, 2, 1, 2719 2, 3, 4, 3, 2720 5, 4, 2721 4, 5, 5, 5, 2722 127 2723 }, 2724 #ifdef LIFE_NAMES 2725 {"bent keys (p3)"}, /* 3 */ 2726 #endif 2727 { 2728 -5, -2, 4, -2, 2729 -6, -1, -4, -1, 3, -1, 5, -1, 2730 -5, 0, -3, 0, -2, 0, 1, 0, 2, 0, 4, 0, 2731 -2, 1, 1, 1, 2732 -2, 2, 1, 2, 2733 127 2734 }, 2735 #ifdef LIFE_NAMES 2736 {"blinkers bit pole"}, /* 4 */ 2737 #endif 2738 { 2739 2, -3, 3, -3, 2740 -3, -2, -2, -2, -1, -2, 1, -2, 3, -2, 2741 -2, 0, 0, 0, 3, 0, 2742 -3, 1, 2, 1, 2743 -3, 2, -2, 2, 2, 2, 2744 127 2745 }, 2746 #ifdef LIFE_NAMES 2747 {"boat maker (c p4 fuse)"}, /* 5 */ 2748 #endif 2749 { 2750 7, -8, 8, -8, 2751 6, -7, 8, -7, 2752 5, -6, 2753 4, -5, 2754 3, -4, 2755 2, -3, 2756 1, -2, 2757 0, -1, 2758 -1, 0, 2759 -2, 1, 2760 -3, 2, 2761 -4, 3, 2762 -9, 4, -8, 4, -7, 4, -6, 4, -5, 4, 2763 -5, 5, 2764 -5, 6, 2765 -5, 7, 2766 -5, 8, 2767 127 2768 }, 2769 #ifdef LIFE_NAMES 2770 {"by flops"}, /* 6 */ 2771 #endif 2772 { 2773 0, -3, 2774 -2, -2, 0, -2, 2775 2, -1, 2776 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2777 2, 1, 2778 -2, 2, 0, 2, 2779 0, 3, 2780 127 2781 }, 2782 #ifdef LIFE_NAMES 2783 {"candlefrobra (p3)"}, /* 7 */ 2784 #endif 2785 { 2786 0, -2, 2787 -4, -1, -2, -1, -1, -1, 1, -1, 3, -1, 4, -1, 2788 -5, 0, -3, 0, 1, 0, 3, 0, 4, 0, 2789 -4, 1, 1, 1, 2790 0, 2, 1, 2, 2791 127 2792 }, 2793 #ifdef LIFE_NAMES 2794 {"clock II (p4)"}, /* 8 */ 2795 #endif 2796 { 2797 -2, -6, -1, -6, 2798 -2, -5, -1, -5, 2799 -2, -3, -1, -3, 0, -3, 1, -3, 2800 -6, -2, -5, -2, -3, -2, 0, -2, 2, -2, 2801 -6, -1, -5, -1, -3, -1, -1, -1, 2, -1, 2802 -3, 0, -1, 0, 2, 0, 4, 0, 5, 0, 2803 -3, 1, 2, 1, 4, 1, 5, 1, 2804 -2, 2, -1, 2, 0, 2, 1, 2, 2805 0, 4, 1, 4, 2806 0, 5, 1, 5, 2807 127 2808 }, 2809 #ifdef LIFE_NAMES 2810 {"Coe's p8"}, /* 9 */ 2811 #endif 2812 { 2813 -6, -3, -5, -3, 2814 -6, -2, -5, -2, -2, -2, -1, -2, 2815 -1, -1, 0, -1, 2816 -2, 0, 1, 0, 2817 1, 1, 4, 1, 5, 1, 2818 -1, 2, 1, 2, 4, 2, 5, 2, 2819 127 2820 }, 2821 #ifdef LIFE_NAMES 2822 {"confused eaters (p4)"}, /* 10 */ 2823 #endif 2824 { 2825 -5, -5, 2826 -5, -4, -4, -4, -3, -4, 2827 -2, -3, 2828 -3, -2, 2829 -3, -1, 0, -1, 2830 0, 0, 2831 -2, 1, 0, 1, 2832 -2, 2, -1, 2, 2, 2, 3, 2, 2833 2, 3, 4, 3, 2834 4, 4, 2835 4, 5, 5, 5, 2836 127 2837 }, 2838 #ifdef LIFE_NAMES 2839 {"cross (p3)"}, /* 11 */ 2840 #endif 2841 { 2842 -2, -4, -1, -4, 0, -4, 1, -4, 2843 -2, -3, 1, -3, 2844 -4, -2, -3, -2, -2, -2, 1, -2, 2, -2, 3, -2, 2845 -4, -1, 3, -1, 2846 -4, 0, 3, 0, 2847 -4, 1, -3, 1, -2, 1, 1, 1, 2, 1, 3, 1, 2848 -2, 2, 1, 2, 2849 -2, 3, -1, 3, 0, 3, 1, 3, 2850 127 2851 }, 2852 #ifdef LIFE_NAMES 2853 {"cuphook (p3) (in compact form)"}, /* 12 */ 2854 #endif 2855 { 2856 1, -4, 2, -4, 2857 0, -3, 2, -3, 2858 0, -2, 2859 -3, -1, -2, -1, 0, -1, 2860 -3, 0, -2, 0, 0, 0, 3, 0, 2861 0, 1, 2, 1, 3, 1, 2862 0, 2, 2863 -1, 3, 0, 3, 2864 127 2865 }, 2866 #ifdef LIFE_NAMES 2867 {"diehard (vanishes at 130, longest 7 cells)"}, /* 13 */ 2868 #endif 2869 { 2870 2, -1, 2871 -4, 0, -3, 0, 2872 -3, 1, 1, 1, 2, 1, 3, 1, 2873 127 2874 }, 2875 #ifdef LIFE_NAMES 2876 {"eater/bound frob (p4)"}, /* 14 */ 2877 #endif 2878 { 2879 -4, -5, -3, -5, 2880 -3, -4, 2881 -3, -3, -1, -3, 2882 -2, -2, 0, -2, 2883 0, -1, 1, -1, 3, -1, 4, -1, 2884 3, 0, 4, 0, 2885 -3, 1, -2, 1, 2886 -2, 2, 2887 -5, 3, -4, 3, -3, 3, 2888 -5, 4, 2889 127 2890 }, 2891 #ifdef LIFE_NAMES 2892 {"flotilla (school of fish, escort)"}, /* 15 */ 2893 #endif 2894 { 2895 -3, -8, -2, -8, -1, -8, 0, -8, 2896 -4, -7, -3, -7, -2, -7, -1, -7, 0, -7, 1, -7, 2897 -5, -6, -4, -6, -2, -6, -1, -6, 0, -6, 1, -6, 2898 -4, -5, -3, -5, 2899 4, -3, 5, -3, 2900 -6, -2, 7, -2, 2901 -7, -1, 2902 -7, 0, 7, 0, 2903 -7, 1, -6, 1, -5, 1, -4, 1, -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2904 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 2905 -3, 4, -2, 4, -1, 4, 0, 4, 2906 -4, 5, -3, 5, -2, 5, -1, 5, 0, 5, 1, 5, 2907 -5, 6, -4, 6, -2, 6, -1, 6, 0, 6, 1, 6, 2908 -4, 7, -3, 7, 2909 127 2910 }, 2911 #ifdef LIFE_NAMES 2912 {"fore and back"}, /* 16 */ 2913 #endif 2914 { 2915 -3, -3, -2, -3, 0, -3, 1, -3, 2916 -3, -2, -2, -2, 0, -2, 2, -2, 2917 3, -1, 2918 -3, 0, -2, 0, -1, 0, 1, 0, 2, 0, 3, 0, 2919 -3, 1, 2920 -2, 2, 0, 2, 2, 2, 3, 2, 2921 -1, 3, 0, 3, 2, 3, 3, 3, 2922 127 2923 }, 2924 #ifdef LIFE_NAMES 2925 {"fox"}, /* 17 */ 2926 #endif 2927 { 2928 1, -3, 2929 1, -2, 2930 -1, -1, 2, -1, 2931 -3, 0, -2, 0, 2932 1, 1, 3, 1, 2933 -1, 2, 1, 2, 3, 2, 2934 3, 3, 2935 127 2936 }, 2937 #ifdef LIFE_NAMES 2938 {"French kiss (p3)"}, /* 18 */ 2939 #endif 2940 { 2941 -5, -4, 2942 -5, -3, -4, -3, -3, -3, 2943 -2, -2, 2944 -3, -1, 0, -1, 1, -1, 2945 -3, 0, 2, 0, 2946 -2, 1, -1, 1, 2, 1, 2947 1, 2, 2948 2, 3, 3, 3, 4, 3, 2949 4, 4, 2950 127 2951 }, 2952 #ifdef LIFE_NAMES 2953 {"fumarole (p5)"}, /* 19 */ 2954 #endif 2955 { 2956 -1, -3, 0, -3, 2957 -3, -2, 2, -2, 2958 -3, -1, 2, -1, 2959 -3, 0, 2, 0, 2960 -2, 1, 1, 1, 2961 -4, 2, -2, 2, 1, 2, 3, 2, 2962 -4, 3, -3, 3, 2, 3, 3, 3, 2963 127 2964 }, 2965 #ifdef LIFE_NAMES 2966 {"hammer (3 LWSS to 1 MWSS)"}, /* 20 */ 2967 #endif 2968 { 2969 -10, -3, -7, -3, 2970 -6, -2, -2, -2, -1, -2, 2971 -10, -1, -6, -1, -3, -1, -2, -1, -1, -1, 5, -1, 6, -1, 7, -1, 2972 8, -1, 2973 -9, 0, -8, 0, -7, 0, -6, 0, -3, 0, -2, 0, 0, 0, 5, 0, 9, 0, 2974 -2, 1, -1, 1, 0, 1, 5, 1, 2975 -1, 2, 6, 2, 9, 2, 2976 127 2977 }, 2978 #ifdef LIFE_NAMES 2979 {"harvester (c p4 fuse)"}, /* 21 */ 2980 #endif 2981 { 2982 7, -7, 8, -7, 2983 6, -6, 8, -6, 2984 5, -5, 2985 4, -4, 2986 3, -3, 2987 2, -2, 2988 1, -1, 2989 0, 0, 2990 -1, 1, 2991 -2, 2, 2992 -3, 3, 2993 -4, 4, 2994 -9, 5, -8, 5, -7, 5, -6, 5, -5, 5, 2995 -9, 6, -8, 6, -7, 6, -6, 6, 2996 -9, 7, -7, 7, -6, 7, 2997 127 2998 }, 2999 #ifdef LIFE_NAMES 3000 {"hivenudger (c/2, p4)"}, /* 22 */ 3001 #endif 3002 { 3003 -6, -6, -5, -6, -4, -6, -3, -6, 3, -6, 6, -6, 3004 -6, -5, -2, -5, 2, -5, 3005 -6, -4, 2, -4, 6, -4, 3006 -5, -3, -2, -3, 2, -3, 3, -3, 4, -3, 5, -3, 3007 -1, -1, 0, -1, 3008 -1, 0, 0, 0, 3009 -1, 1, 0, 1, 3010 -5, 3, -2, 3, 2, 3, 3, 3, 4, 3, 5, 3, 3011 -6, 4, 2, 4, 6, 4, 3012 -6, 5, -2, 5, 2, 5, 3013 -6, 6, -5, 6, -4, 6, -3, 6, 3, 6, 6, 6, 3014 127 3015 }, 3016 #ifdef LIFE_NAMES 3017 {"mazing (p4) (pulse1)"}, /* 23 */ 3018 #endif 3019 { 3020 0, -3, 1, -3, 3021 -2, -2, 0, -2, 3022 -3, -1, 3, -1, 3023 -2, 0, 2, 0, 3, 0, 3024 0, 2, 2, 2, 3025 1, 3, 3026 127 3027 }, 3028 #ifdef LIFE_NAMES 3029 {"muttering moat (example)"}, /* 24 */ 3030 #endif 3031 { 3032 -3, -3, -2, -3, 3033 -3, -2, -1, -2, 1, -2, 2, -2, 3034 2, -1, 3035 -2, 0, 1, 0, 3036 -1, 1, 3037 -1, 2, 1, 2, 3, 2, 3038 2, 3, 3, 3, 3039 127 3040 }, 3041 #ifdef LIFE_NAMES 3042 {"oscillator0 (p3), from HighLife"}, /* 25 */ 3043 #endif 3044 { 3045 0, -2, 3046 -4, -1, -2, -1, -1, -1, 1, -1, 3, -1, 4, -1, 3047 -5, 0, -3, 0, 1, 0, 3, 0, 4, 0, 3048 -4, 1, 1, 1, 3049 0, 2, 1, 2, 3050 127 3051 }, 3052 #ifdef LIFE_NAMES 3053 {"oscillator1 (p3), from HighLife"}, /* 26 */ 3054 #endif 3055 { 3056 -3, -2, 3057 -3, -1, -2, -1, -1, -1, 3, -1, 5, -1, 6, -1, 7, -1, 3058 -4, 0, -2, 0, 2, 0, 4, 0, 3059 -7, 1, -6, 1, -5, 1, -3, 1, 1, 1, 2, 1, 3, 1, 3060 3, 2, 3061 127 3062 }, 3063 #ifdef LIFE_NAMES 3064 {"oscillator4 (p4) (~HW emulator), from HighLife"}, /* 27 */ 3065 #endif 3066 { 3067 -9, -3, -8, -3, -6, -3, -5, -3, -2, -3, -1, -3, 0, -3, 1, -3, 3068 4, -3, 5, -3, 7, -3, 8, -3, 3069 -11, -2, -8, -2, -6, -2, -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 3070 2, -2, 5, -2, 7, -2, 10, -2, 3071 -11, -1, -10, -1, -5, -1, -4, -1, -3, -1, -2, -1, -1, -1, 3072 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 9, -1, 10, -1, 3073 -7, 0, -6, 0, 5, 0, 6, 0, 3074 -8, 1, -5, 1, 4, 1, 7, 1, 3075 -7, 2, -6, 2, 5, 2, 6, 2, 3076 127 3077 }, 3078 #ifdef LIFE_NAMES 3079 {"oscillator0 (p6), from HighLife"}, /* 28 */ 3080 #endif 3081 { 3082 -3, -8, 3, -8, 3083 -3, -7, -2, -7, 2, -7, 3, -7, 3084 -3, -6, -2, -6, 2, -6, 3, -6, 3085 -2, -5, 2, -5, 3086 -1, -3, 0, -3, 1, -3, 3087 -2, -2, 2, -2, 3088 -2, 1, 2, 1, 3089 -1, 2, 0, 2, 1, 2, 3090 -2, 4, 2, 4, 3091 -3, 5, -2, 5, 2, 5, 3, 5, 3092 -3, 6, -2, 6, 2, 6, 3, 6, 3093 -3, 7, 3, 7, 3094 127 3095 }, 3096 #ifdef LIFE_NAMES 3097 {"phoenix (example)"}, /* 29 */ 3098 #endif 3099 { 3100 0, -4, 3101 -2, -3, 0, -3, 3102 2, -2, 3103 -4, -1, -3, -1, 3104 2, 0, 3, 0, 3105 -3, 1, 3106 -1, 2, 1, 2, 3107 -1, 3, 3108 127 3109 }, 3110 #ifdef LIFE_NAMES 3111 {"pinwheel (p4)"}, /* 30 */ 3112 #endif 3113 { 3114 -2, -6, -1, -6, 3115 -2, -5, -1, -5, 3116 -2, -3, -1, -3, 0, -3, 1, -3, 3117 -3, -2, -1, -2, 2, -2, 4, -2, 5, -2, 3118 -3, -1, 1, -1, 2, -1, 4, -1, 5, -1, 3119 -6, 0, -5, 0, -3, 0, 0, 0, 2, 0, 3120 -6, 1, -5, 1, -3, 1, 2, 1, 3121 -2, 2, -1, 2, 0, 2, 1, 2, 3122 0, 4, 1, 4, 3123 0, 5, 1, 5, 3124 127 3125 }, 3126 #ifdef LIFE_NAMES 3127 {"pulsar quadrant (p3)"}, /* 31 */ 3128 #endif 3129 { 3130 1, -4, 3131 -1, -3, 0, -3, 1, -3, 3132 -2, -2, 2, -2, 3, -2, 3133 -4, -1, -1, -1, 2, -1, 3134 -4, 0, 0, 0, 2, 0, 3135 -4, 1, 1, 1, 3136 -2, 3, -1, 3, 0, 3, 3137 127 3138 }, 3139 #ifdef LIFE_NAMES 3140 {"quad"}, /* 32 */ 3141 #endif 3142 { 3143 -3, -3, -2, -3, 1, -3, 2, -3, 3144 -3, -2, 0, -2, 2, -2, 3145 -2, -1, 3146 1, 0, 3147 -3, 1, -1, 1, 2, 1, 3148 -3, 2, -2, 2, 1, 2, 2, 2, 3149 127 3150 }, 3151 #ifdef LIFE_NAMES 3152 {"reverse fuse"}, /* 33 */ 3153 #endif 3154 { 3155 6, -6, 7, -6, 3156 5, -5, 7, -5, 3157 4, -4, 3158 3, -3, 3159 2, -2, 3160 1, -1, 3161 0, 0, 3162 -1, 1, 3163 -2, 2, 3164 -3, 3, 3165 -4, 4, 3166 -5, 5, 3167 -7, 6, -6, 6, 3168 127 3169 }, 3170 #ifdef LIFE_NAMES 3171 {"revolver"}, /* 34 */ 3172 #endif 3173 { 3174 -7, -4, 6, -4, 3175 -7, -3, -6, -3, -5, -3, 0, -3, 4, -3, 5, -3, 6, -3, 3176 -4, -2, -2, -2, 0, -2, 3, -2, 3177 -5, -1, 2, -1, 4, -1, 3178 -5, 0, -3, 0, 4, 0, 3179 -4, 1, -1, 1, 1, 1, 3, 1, 3180 -7, 2, -6, 2, -5, 2, -1, 2, 4, 2, 5, 2, 6, 2, 3181 -7, 3, 6, 3, 3182 127 3183 }, 3184 #ifdef LIFE_NAMES 3185 {"rotator (p8)"}, /* 35 */ 3186 #endif 3187 { 3188 -6, -7, 3189 -6, -6, -5, -6, -4, -6, 5, -6, 6, -6, 3190 -3, -5, 5, -5, 3191 -4, -4, -3, -4, 3, -4, 5, -4, 3192 3, -3, 4, -3, 3193 -2, -1, -1, -1, 0, -1, 3194 -2, 0, 1, 0, 3195 -2, 1, 3196 -5, 2, -4, 2, -1, 2, 3, 2, 3197 -6, 3, -4, 3, 3, 3, 3198 -6, 4, 2, 4, 3199 -7, 5, -6, 5, 3, 5, 4, 5, 5, 5, 3200 5, 6, 3201 127 3202 }, 3203 #ifdef LIFE_NAMES 3204 {"second smallest diagonal ship (c/4, p4) (25-cell)"}, /* 36 */ 3205 #endif 3206 { 3207 2, -6, 3, -6, 3208 1, -5, 2, -5, 3209 3, -4, 3210 5, -3, 6, -3, 3211 4, -2, 3212 3, 0, 6, 0, 3213 -5, 1, -4, 1, 2, 1, 3, 1, 3214 -6, 2, -5, 2, 1, 2, 3215 -4, 3, 1, 3, 3, 3, 3216 -2, 4, -1, 4, 2, 4, 3217 -2, 5, -1, 5, 3218 127 3219 }, 3220 #ifdef LIFE_NAMES 3221 {"sidecar"}, /* 37 */ 3222 #endif 3223 { 3224 -3, -5, 3225 -4, -4, 2, -4, 3226 -4, -3, 2, -3, 3227 -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 2, -2, 3228 0, 0, 1, 0, 3229 -2, 1, 3, 1, 3230 -3, 2, 3231 -3, 3, 3, 3, 3232 -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3233 127 3234 }, 3235 #ifdef LIFE_NAMES 3236 {"singular flip flop"}, /* 38 */ 3237 #endif 3238 { 3239 -1, -3, 3240 -1, -2, 1, -2, 3241 -3, -1, 2, -1, 3242 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3243 -1, 2, 0, 2, 3244 -1, 3, 0, 3, 3245 127 3246 }, 3247 #ifdef LIFE_NAMES 3248 {"skewed quad"}, /* 39 */ 3249 #endif 3250 { 3251 -2, -3, -1, -3, 3252 -2, -2, 2, -2, 3, -2, 3253 -1, -1, 1, -1, 3, -1, 3254 -3, 1, -1, 1, 1, 1, 3255 -3, 2, -2, 2, 2, 2, 3256 1, 3, 2, 3, 3257 127 3258 }, 3259 #ifdef LIFE_NAMES 3260 {"snake pit II (p3)"}, /* 40 */ 3261 #endif 3262 { 3263 0, -5, 1, -5, 3264 -1, -4, 2, -4, 3265 -1, -3, 1, -3, 2, -3, 3266 -4, -2, -3, -2, -1, -2, 3267 -5, -1, -3, -1, -1, -1, 1, -1, 2, -1, 3, -1, 4, -1, 3268 -5, 0, 5, 0, 3269 -4, 1, -3, 1, -2, 1, -1, 1, 1, 1, 3, 1, 5, 1, 3270 1, 2, 3, 2, 4, 2, 3271 -2, 3, -1, 3, 1, 3, 3272 -2, 4, 1, 4, 3273 -1, 5, 0, 5, 3274 127 3275 }, 3276 #if 0 3277 #ifdef LIFE_NAMES 3278 {"spark coil"}, /* -- */ 3279 #endif 3280 { 3281 -4, -2, -3, -2, 2, -2, 3, -2, 3282 -4, -1, -2, -1, 1, -1, 3, -1, 3283 -2, 0, 1, 0, 3284 -4, 1, -2, 1, 1, 1, 3, 1, 3285 -4, 2, -3, 2, 2, 2, 3, 2, 3286 127 3287 }, 3288 #endif 3289 #ifdef LIFE_NAMES 3290 {"star (p3) (big cross)"}, /* 41 */ 3291 #endif 3292 { 3293 0, -5, 3294 -1, -4, 0, -4, 1, -4, 3295 -3, -3, -2, -3, -1, -3, 1, -3, 2, -3, 3, -3, 3296 -3, -2, 3, -2, 3297 -4, -1, -3, -1, 3, -1, 4, -1, 3298 -5, 0, -4, 0, 4, 0, 5, 0, 3299 -4, 1, -3, 1, 3, 1, 4, 1, 3300 -3, 2, 3, 2, 3301 -3, 3, -2, 3, -1, 3, 1, 3, 2, 3, 3, 3, 3302 -1, 4, 0, 4, 1, 4, 3303 0, 5, 3304 127 3305 }, 3306 #ifdef LIFE_NAMES 3307 {"sym (p4)"}, /* 42 */ 3308 #endif 3309 { 3310 -6, -2, -5, -2, 4, -2, 5, -2, 3311 -6, -1, -5, -1, -3, -1, -2, -1, 1, -1, 2, -1, 4, -1, 5, -1, 3312 -5, 0, -2, 0, 1, 0, 4, 0, 3313 -5, 1, -4, 1, -2, 1, -1, 1, 0, 1, 1, 1, 3, 1, 4, 1, 3314 127 3315 }, 3316 #ifdef LIFE_NAMES 3317 {"turtle (c/3, p3)"}, /* 43 */ 3318 #endif 3319 { 3320 -4, -5, -3, -5, -2, -5, 6, -5, 3321 -4, -4, -3, -4, 0, -4, 2, -4, 3, -4, 5, -4, 6, -4, 3322 -2, -3, -1, -3, 0, -3, 5, -3, 3323 -4, -2, -1, -2, 1, -2, 5, -2, 3324 -5, -1, 0, -1, 5, -1, 3325 -5, 0, 0, 0, 5, 0, 3326 -4, 1, -1, 1, 1, 1, 5, 1, 3327 -2, 2, -1, 2, 0, 2, 5, 2, 3328 -4, 3, -3, 3, 0, 3, 2, 3, 3, 3, 5, 3, 6, 3, 3329 -4, 4, -3, 4, -2, 4, 6, 4, 3330 127 3331 }, 3332 #ifdef LIFE_NAMES 3333 {"two eaters (p3)"}, /* 44 */ 3334 #endif 3335 { 3336 -4, -4, -3, -4, 3337 -3, -3, 3338 -3, -2, -1, -2, 3339 -2, -1, -1, -1, 3340 1, 0, 2, 0, 3341 1, 1, 3, 1, 3342 3, 2, 3343 3, 3, 4, 3, 3344 127 3345 }, 3346 #ifdef LIFE_NAMES 3347 {"two pulsar quadrants (p3) (pulsar 18-22-20)"}, /* 45 */ 3348 #endif 3349 { 3350 0, -4, 1, -4, 2, -4, 3351 -1, -2, 4, -2, 3352 -2, -1, 0, -1, 4, -1, 3353 -4, 0, -3, 0, -2, 0, 1, 0, 4, 0, 3354 2, 1, 3355 0, 2, 1, 2, 3356 0, 3, 3357 0, 4, 3358 127 3359 }, 3360 #ifdef LIFE_NAMES 3361 {"why not"}, /* 46 */ 3362 #endif 3363 { 3364 0, -3, 3365 0, -2, 2, -2, 3366 -2, -1, 3367 -3, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 3368 -2, 1, 3369 0, 2, 2, 2, 3370 0, 3, 3371 127 3372 }, 3373 #ifdef LIFE_NAMES 3374 {"windmill (p4)"}, /* 47 */ 3375 #endif 3376 { 3377 2, -9, 3378 0, -8, 1, -8, 3, -8, 3379 -2, -7, -1, -7, 3380 1, -6, 2, -6, 3381 -2, -5, -1, -5, 0, -5, 3382 -9, -3, -8, -3, -7, -3, 3383 -6, -2, -5, -2, -2, -2, -1, -2, 0, -2, 2, -2, 3, -2, 3384 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 6, -1, 7, -1, 3385 -8, 0, -7, 0, -6, 0, -5, 0, -4, 0, -3, 0, -2, 0, 3386 -4, 1, -3, 1, -1, 1, 0, 1, 1, 1, 4, 1, 5, 1, 3387 6, 2, 7, 2, 8, 2, 3388 -1, 4, 0, 4, 1, 4, 3389 -3, 5, -2, 5, 3390 0, 6, 1, 6, 3391 -4, 7, -2, 7, -1, 7, 3392 -3, 8, 3393 127 3394 }, 3395 #ifdef LIFE_NAMES 3396 {"worker bee (p9)"}, /* 48 */ 3397 #endif 3398 { 3399 -8, -5, -7, -5, 6, -5, 7, -5, 3400 -7, -4, 6, -4, 3401 -7, -3, -5, -3, 4, -3, 6, -3, 3402 -6, -2, -5, -2, 4, -2, 5, -2, 3403 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3404 -6, 2, -5, 2, 4, 2, 5, 2, 3405 -7, 3, -5, 3, 4, 3, 6, 3, 3406 -7, 4, 6, 4, 3407 -8, 5, -7, 5, 6, 5, 7, 5, 3408 127 3409 }, 3410 #ifdef LIFE_NAMES 3411 {"25P3H1V0.2 (c/3, p3) (25 cell)"}, 3412 #endif 3413 { 3414 0, -8, 3415 -1, -7, 1, -7, 3416 -1, -6, 1, -6, 3417 -1, -5, 3418 -2, -3, -1, -3, 3419 -1, -2, 1, -2, 3420 -2, -1, 0, -1, 3421 -2, 0, -1, 0, 0, 0, 3422 -1, 2, 1, 2, 3423 -1, 3, 0, 3, 3424 0, 4, 3425 0, 5, 2, 5, 3426 0, 6, 2, 6, 3427 1, 7, 3428 127 3429 }, 3430 #ifdef LIFE_NAMES 3431 {"30P5H2V0 (2c/5, p5) (30 cell)"}, 3432 #endif 3433 { 3434 -2, -5, 3435 -3, -4, -2, -4, -1, -4, 3436 -4, -3, -3, -3, -1, -3, 0, -3, 3437 -5, -1, -3, -1, -1, -1, 1, -1, 4, -1, 3438 -6, 0, -5, 0, -1, 0, 3, 0, 4, 0, 5, 0, 3439 -6, 1, -5, 1, -1, 1, 6, 1, 3440 4, 2, 6, 2, 3441 2, 3, 4, 3, 3442 3, 4, 6, 4, 3443 6, 5, 3444 127 3445 }, 3446 #ifdef LIFE_NAMES 3447 {"37P4H1V0 (c/4, p4) (37 cell)"}, 3448 #endif 3449 { 3450 -8, -6, 3451 -8, -5, 1, -5, 3452 -9, -4, -7, -4, -1, -4, 3, -4, 3453 -1, -3, 3, -3, 4, -3, 3454 -4, -2, -2, -2, -1, -2, 5, -2, 6, -2, 3455 -8, -1, -7, -1, -6, -1, -5, -1, -4, -1, -3, -1, 0, -1, 7, -1, 3456 -7, 0, -6, 0, 1, 0, 5, 0, 6, 0, 7, 0, 3457 1, 1, 5, 1, 7, 1, 8, 1, 3458 4, 2, 3459 9, 3, 3460 8, 4, 3461 8, 5, 3462 127 3463 }, 3464 #ifdef LIFE_NAMES 3465 {"56P6H1V0 (c/6, p6)"}, 3466 #endif 3467 { 3468 -8, -6, -7, -6, -6, -6, 5, -6, 6, -6, 7, -6, 3469 -13, -5, -12, -5, -11, -5, -9, -5, -1, -5, 0, -5, 8, -5, 10, -5, 3470 11, -5, 12, -5, 3471 -9, -4, -5, -4, -2, -4, 1, -4, 4, -4, 8, -4, 3472 -9, -3, -3, -3, 2, -3, 8, -3, 3473 -3, -2, -2, -2, 1, -2, 2, -2, 3474 -6, -1, -2, -1, 1, -1, 5, -1, 3475 -6, 0, -4, 0, 3, 0, 5, 0, 3476 -5, 1, -4, 1, -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 3477 -3, 2, 2, 2, 3478 -5, 3, 4, 3, 3479 -6, 4, 5, 4, 3480 -5, 5, 4, 5, 3481 127 3482 }, 3483 #ifdef LIFE_NAMES 3484 {"58P5H1V1 (c/5 diagonal, p5) (58 cell)"}, 3485 #endif 3486 { 3487 9, -11, 10, -11, 3488 9, -10, 10, -10, 3489 8, -9, 11, -9, 3490 5, -8, 6, -8, 8, -8, 11, -8, 3491 11, -7, 3492 3, -6, 4, -6, 8, -6, 11, -6, 3493 3, -5, 4, -5, 10, -5, 3494 4, -4, 6, -4, 7, -4, 8, -4, 9, -4, 10, -4, 3495 5, -3, 3496 2, 0, 3, 0, 4, 0, 3497 2, 1, 3498 0, 2, 1, 2, 3499 -6, 3, -5, 3, 0, 3, 3500 -6, 4, -5, 4, -4, 4, 0, 4, 3501 -8, 5, -3, 5, 3502 -8, 6, -4, 6, 3503 -4, 7, 3504 -9, 8, -8, 8, -6, 8, -4, 8, 3505 -11, 9, -10, 9, -4, 9, 3506 -11, 10, -10, 10, -5, 10, -4, 10, 3507 -9, 11, -8, 11, -7, 11, -6, 11, 3508 127 3509 }, 3510 }; 3511 3512 static char patterns_8B3S23[][2 * NUMPTS + 1] = 3513 { 3514 /* Lexicon 22-2-02 http://www.argentum.freeserve.co.uk/lex_home.htm */ 3515 #ifdef LIFE_NAMES 3516 {"101 (p5)"}, /* 49 */ 3517 #endif 3518 { 3519 -5, -6, -4, -6, 3, -6, 4, -6, 3520 -6, -5, -4, -5, 3, -5, 5, -5, 3521 -6, -4, 5, -4, 3522 -9, -3, -8, -3, -6, -3, 5, -3, 7, -3, 8, -3, 3523 -9, -2, -8, -2, -6, -2, -4, -2, -1, -2, 0, -2, 3, -2, 5, -2, 3524 7, -2, 8, -2, 3525 -6, -1, -4, -1, -2, -1, 1, -1, 3, -1, 5, -1, 3526 -6, 0, -4, 0, -2, 0, 1, 0, 3, 0, 5, 0, 3527 -9, 1, -8, 1, -6, 1, -4, 1, -1, 1, 0, 1, 3, 1, 5, 1, 7, 1, 3528 8, 1, 3529 -9, 2, -8, 2, -6, 2, 5, 2, 7, 2, 8, 2, 3530 -6, 3, 5, 3, 3531 -6, 4, -4, 4, 3, 4, 5, 4, 3532 -5, 5, -4, 5, 3, 5, 4, 5, 3533 127 3534 }, 3535 #ifdef LIFE_NAMES 3536 {"1-2-3 (p3)"}, /* 50 */ 3537 #endif 3538 { 3539 -3, -4, -2, -4, 3540 -5, -3, -2, -3, 3541 -5, -2, -4, -2, -2, -2, 0, -2, 1, -2, 3542 -4, -1, -2, -1, 1, -1, 3543 -4, 0, 1, 0, 3, 0, 4, 0, 3544 -3, 1, -2, 1, -1, 1, 1, 1, 3, 1, 4, 1, 3545 0, 2, 3546 -1, 3, 3547 -1, 4, 0, 4, 3548 127 3549 }, 3550 #ifdef LIFE_NAMES 3551 {"1-2-3-4 (p4)"}, /* 51 */ 3552 #endif 3553 { 3554 0, -5, 3555 -1, -4, 1, -4, 3556 -2, -3, 0, -3, 2, -3, 3557 -2, -2, 2, -2, 3558 -5, -1, -4, -1, -2, -1, 0, -1, 2, -1, 4, -1, 5, -1, 3559 -5, 0, -3, 0, 3, 0, 5, 0, 3560 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3561 0, 3, 3562 -1, 4, 1, 4, 3563 0, 5, 3564 127 3565 }, 3566 #ifdef LIFE_NAMES 3567 {"Achim's p144"}, /* 52 */ 3568 #endif 3569 { 3570 -14, -9, -13, -9, 12, -9, 13, -9, 3571 -14, -8, -13, -8, 12, -8, 13, -8, 3572 4, -7, 5, -7, 3573 3, -6, 6, -6, 3574 4, -5, 5, -5, 3575 -1, -3, 0, -3, 1, -3, 3576 -1, -2, 1, -2, 3577 -1, -1, 0, -1, 1, -1, 3578 -1, 0, 0, 0, 3579 -2, 1, -1, 1, 0, 1, 3580 -2, 2, 0, 2, 3581 -2, 3, -1, 3, 0, 3, 3582 -6, 5, -5, 5, 3583 -7, 6, -4, 6, 3584 -6, 7, -5, 7, 3585 -14, 8, -13, 8, 12, 8, 13, 8, 3586 -14, 9, -13, 9, 12, 9, 13, 9, 3587 127 3588 }, 3589 #ifdef LIFE_NAMES 3590 {"Achim's p16"}, /* 53 */ 3591 #endif 3592 { 3593 1, -6, 2, -6, 3594 1, -5, 3, -5, 3595 -4, -4, 1, -4, 3, -4, 4, -4, 3596 -5, -3, -4, -3, 2, -3, 3597 -6, -2, -3, -2, 3598 -6, -1, -5, -1, -4, -1, 3599 4, 1, 5, 1, 6, 1, 3600 3, 2, 6, 2, 3601 -2, 3, 4, 3, 5, 3, 3602 -4, 4, -3, 4, -1, 4, 4, 4, 3603 -3, 5, -1, 5, 3604 -2, 6, -1, 6, 3605 127 3606 }, 3607 #ifdef LIFE_NAMES 3608 {"Achim (p4)"}, /* 54 */ 3609 #endif 3610 { 3611 -3, -4, -2, -4, 2, -4, 3, -4, 3612 -4, -3, -1, -3, 1, -3, 4, -3, 3613 -4, -2, -2, -2, -1, -2, 1, -2, 2, -2, 4, -2, 3614 -5, -1, -4, -1, 4, -1, 5, -1, 3615 -3, 0, -1, 0, 1, 0, 3, 0, 3616 -5, 1, -4, 1, 4, 1, 5, 1, 3617 -4, 2, -2, 2, -1, 2, 1, 2, 2, 2, 4, 2, 3618 -4, 3, -1, 3, 1, 3, 4, 3, 3619 -3, 4, -2, 4, 2, 4, 3, 4, 3620 127 3621 }, 3622 #ifdef LIFE_NAMES 3623 {"Achim's p5 (pseudo-barberpole)"}, /* 55 */ 3624 #endif 3625 { 3626 -6, -6, -5, -6, 3627 -6, -5, 3628 -4, -4, 3629 -4, -3, -2, -3, 3630 -2, -1, 0, -1, 3631 0, 1, 2, 1, 3632 2, 3, 3, 3, 3633 5, 4, 3634 4, 5, 5, 5, 3635 127 3636 }, 3637 #ifdef LIFE_NAMES 3638 {"Achim's p8 (antisym)"}, /* 56 */ 3639 #endif 3640 { 3641 -3, -4, -2, -4, 3642 -4, -3, 3643 -3, -2, 1, -2, 3644 -3, -1, 1, -1, 2, -1, 3645 -1, 0, 1, 0, 3646 -2, 1, -1, 1, 3, 1, 3647 -1, 2, 3, 2, 3648 4, 3, 3649 2, 4, 3, 4, 3650 127 3651 }, 3652 #ifdef LIFE_NAMES 3653 {"acorn (stabilizes at 5206)"}, /* 58 */ 3654 #endif 3655 { 3656 -2, -1, 3657 0, 0, 3658 -3, 1, -2, 1, 1, 1, 2, 1, 3, 1, 3659 127 3660 }, 3661 #ifdef LIFE_NAMES 3662 {"A for All (p6)"}, /* 58 */ 3663 #endif 3664 { 3665 -1, -5, 0, -5, 3666 -2, -4, 1, -4, 3667 -2, -3, -1, -3, 0, -3, 1, -3, 3668 -4, -2, -2, -2, 1, -2, 3, -2, 3669 -5, -1, 4, -1, 3670 -5, 0, 4, 0, 3671 -4, 1, -2, 1, 1, 1, 3, 1, 3672 -2, 2, -1, 2, 0, 2, 1, 2, 3673 -2, 3, 1, 3, 3674 -1, 4, 0, 4, 3675 127 3676 }, 3677 #ifdef LIFE_NAMES 3678 {"airforce (p7)"}, /* 59 */ 3679 #endif 3680 { 3681 0, -7, 3682 -1, -6, 1, -6, 3683 0, -5, 3684 -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 3685 -3, -2, 3, -2, 5, -2, 6, -2, 3686 -4, -1, -2, -1, -1, -1, 3, -1, 5, -1, 6, -1, 3687 -4, 0, -2, 0, 1, 0, 3, 0, 3688 -7, 1, -6, 1, -4, 1, 0, 1, 1, 1, 3, 1, 3689 -7, 2, -6, 2, -4, 2, 2, 2, 3690 -3, 3, -2, 3, -1, 3, 0, 3, 1, 3, 3691 -1, 5, 3692 -2, 6, 0, 6, 3693 -1, 7, 3694 127 3695 }, 3696 #ifdef LIFE_NAMES 3697 {"AK47 (almost a gun)"}, /* 60 */ 3698 #endif 3699 { 3700 -12, -6, -11, -6, 3701 -12, -5, -11, -5, 3702 11, -4, 12, -4, 3703 11, -3, 3704 3, -2, 4, -2, 5, -2, 9, -2, 11, -2, 3705 2, -1, 6, -1, 9, -1, 10, -1, 3706 -10, 0, -9, 0, 1, 0, 7, 0, 3707 -11, 1, -9, 1, 1, 1, 7, 1, 3708 -11, 2, 1, 2, 7, 2, 3709 -12, 3, -11, 3, 2, 3, 6, 3, 3710 3, 4, 4, 4, 5, 4, 11, 4, 12, 4, 3711 11, 5, 12, 5, 3712 127 3713 }, 3714 #ifdef LIFE_NAMES 3715 {"antisym (p4)"}, /* 61 */ 3716 #endif 3717 { 3718 -4, -4, -2, -4, 3719 -4, -3, -1, -3, 3720 -1, -2, 3721 -2, -1, -1, -1, 0, -1, 3, -1, 4, -1, 5, -1, 3722 -5, 0, -4, 0, -3, 0, 0, 0, 1, 0, 2, 0, 3723 1, 1, 3724 1, 2, 4, 2, 3725 2, 3, 4, 3, 3726 127 3727 }, 3728 #ifdef LIFE_NAMES 3729 {"antisym 2 (p4)"}, /* 62 */ 3730 #endif 3731 { 3732 -3, -3, -1, -3, 2, -3, 4, -3, 5, -3, 6, -3, 3733 -4, -2, -1, -2, 1, -2, 3, -2, 5, -2, 3734 -4, -1, 3735 3, 0, 3736 -6, 1, -4, 1, -2, 1, 0, 1, 3, 1, 3737 -7, 2, -6, 2, -5, 2, -3, 2, 0, 2, 2, 2, 3738 127 3739 }, 3740 #ifdef LIFE_NAMES 3741 {"aVerage (p5)"}, /* 63 */ 3742 #endif 3743 { 3744 -3, -5, -2, -5, 3745 -2, -4, -1, -4, 0, -4, 3746 -4, -3, 1, -3, 3747 -5, -2, -3, -2, -2, -2, -1, -2, 0, -2, 2, -2, 3748 -5, -1, -3, -1, 2, -1, 5, -1, 3749 -6, 0, -5, 0, -3, 0, -2, 0, -1, 0, 2, 0, 4, 0, 6, 0, 3750 -5, 1, -3, 1, 2, 1, 5, 1, 3751 -5, 2, -3, 2, -2, 2, -1, 2, 0, 2, 2, 2, 3752 -4, 3, 1, 3, 3753 -2, 4, -1, 4, 0, 4, 3754 -3, 5, -2, 5, 3755 127 3756 }, 3757 #ifdef LIFE_NAMES 3758 {"babbling brook (4 cell rotor)"}, /* 64 */ 3759 #endif 3760 { 3761 -1, -5, 3762 -3, -4, -2, -4, -1, -4, 4, -4, 5, -4, 3763 -4, -3, 0, -3, 1, -3, 4, -3, 3764 -7, -2, -4, -2, -2, -2, -1, -2, 2, -2, 4, -2, 3765 -8, -1, -6, -1, -4, -1, 1, -1, 2, -1, 5, -1, 6, -1, 3766 -7, 0, -6, 0, -3, 0, -2, 0, 3, 0, 5, 0, 7, 0, 3767 -5, 1, -3, 1, 0, 1, 1, 1, 3, 1, 6, 1, 3768 -5, 2, -2, 2, -1, 2, 3, 2, 3769 -6, 3, -5, 3, 0, 3, 1, 3, 2, 3, 3770 0, 4, 3771 127 3772 }, 3773 #ifdef LIFE_NAMES 3774 {"baker's dozen (p12)"}, /* 65 */ 3775 #endif 3776 { 3777 -11, -5, -10, -5, 0, -5, 1, -5, 3778 -11, -4, -10, -4, -9, -4, -8, -4, -6, -4, 0, -4, 1, -4, 3779 -11, -3, -9, -3, -6, -3, -5, -3, -4, -3, 3780 0, -2, 3781 -7, -1, -6, -1, -1, -1, 1, -1, 3782 -7, 0, -1, 0, 2, 0, 7, 0, 3783 0, 1, 1, 1, 6, 1, 7, 1, 3784 4, 3, 5, 3, 6, 3, 9, 3, 11, 3, 3785 -1, 4, 0, 4, 6, 4, 8, 4, 9, 4, 10, 4, 11, 4, 3786 -1, 5, 0, 5, 10, 5, 11, 5, 3787 127 3788 }, 3789 #ifdef LIFE_NAMES 3790 {"big glider 2 (c/4 diagonal, p4)"}, /* 66 */ 3791 #endif 3792 { 3793 0, -9, 1, -9, 3794 0, -8, 2, -8, 3795 0, -7, 3796 1, -6, 2, -6, 3, -6, 3797 1, -5, 3, -5, 4, -5, 5, -5, 3798 1, -4, 4, -4, 5, -4, 3799 3, -3, 5, -3, 7, -3, 8, -3, 3800 2, -2, 3, -2, 5, -2, 7, -2, 3801 1, -1, 2, -1, 7, -1, 3802 -9, 0, -8, 0, -7, 0, 3803 -9, 1, -6, 1, -5, 1, -4, 1, -1, 1, 3, 1, 4, 1, 3804 -8, 2, -6, 2, -2, 2, -1, 2, 3805 -6, 3, -5, 3, -3, 3, -2, 3, 1, 3, 3806 -5, 4, -4, 4, 1, 4, 3807 -5, 5, -4, 5, -3, 5, -2, 5, 3808 -3, 7, -2, 7, -1, 7, 3809 -3, 8, 3810 127 3811 }, 3812 #ifdef LIFE_NAMES 3813 {"big glider 3 (c4 diagonal, p4)"}, /* 67 */ 3814 #endif 3815 { 3816 -1, -8, 3817 -2, -7, -1, -7, 3818 -2, -6, 0, -6, 3819 0, -4, 2, -4, 3820 -2, -3, 0, -3, 2, -3, 3821 -7, -2, -3, -2, -2, -2, 0, -2, 2, -2, 3, -2, 3822 -8, -1, -7, -1, -6, -1, -5, -1, -2, -1, 4, -1, 3823 -8, 0, -5, 0, -4, 0, -2, 0, -1, 0, 3, 0, 4, 0, 3824 -6, 1, -5, 1, 0, 1, 3825 -4, 2, -3, 2, 1, 2, 3826 -3, 3, -2, 3, -1, 3, 2, 3, 4, 3, 5, 3, 6, 3, 7, 3, 3827 -3, 4, 0, 4, 3, 4, 4, 4, 5, 4, 3828 -1, 5, 0, 5, 1, 5, 3829 1, 6, 2, 6, 3, 6, 3830 2, 7, 3, 7, 3831 127 3832 }, 3833 #ifdef LIFE_NAMES 3834 {"blockers (p8) (oscillator 7)"}, /* 68 */ 3835 #endif 3836 { 3837 -4, -2, -3, -2, -2, -2, -1, -2, 4, -2, 5, -2, 6, -2, 7, -2, 3838 -9, -1, -8, -1, 0, -1, 8, -1, 3839 -9, 0, -8, 0, -5, 0, -4, 0, 0, 0, 3, 0, 4, 0, 8, 0, 3840 -5, 1, -4, 1, -1, 1, 3, 1, 4, 1, 7, 1, 3841 127 3842 }, 3843 #ifdef LIFE_NAMES 3844 {"boss (p4)"}, /* 69 */ 3845 #endif 3846 { 3847 0, -7, 3848 -1, -6, 1, -6, 3849 -1, -5, 1, -5, 3850 -2, -4, -1, -4, 1, -4, 2, -4, 3851 -3, -3, 3, -3, 3852 -4, -2, -2, -2, 0, -2, 2, -2, 4, -2, 3853 -4, -1, -2, -1, 2, -1, 4, -1, 3854 -5, 0, -4, 0, -2, 0, 2, 0, 4, 0, 5, 0, 3855 -5, 1, -2, 1, 0, 1, 2, 1, 5, 1, 3856 -3, 2, 3, 2, 3857 -2, 3, -1, 3, 1, 3, 2, 3, 3858 -1, 4, 1, 4, 3859 -1, 5, 1, 5, 3860 0, 6, 3861 127 3862 }, 3863 #ifdef LIFE_NAMES 3864 {"brain (c/3, p3)"}, /* 70 */ 3865 #endif 3866 { 3867 -3, -8, -2, -8, 4, -8, 3868 -5, -7, -4, -7, 4, -7, 3869 -5, -6, -4, -6, -2, -6, 1, -6, 2, -6, 4, -6, 3870 1, -5, 3871 -4, -4, -3, -4, -1, -4, 4, -4, 3872 -4, -3, -3, -3, 0, -3, 1, -3, 2, -3, 3873 -2, -2, 5, -2, 3874 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 5, -1, 3875 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 5, 1, 3876 -2, 2, 5, 2, 3877 -4, 3, -3, 3, 0, 3, 1, 3, 2, 3, 3878 -4, 4, -3, 4, -1, 4, 4, 4, 3879 1, 5, 3880 -5, 6, -4, 6, -2, 6, 1, 6, 2, 6, 4, 6, 3881 -5, 7, -4, 7, 4, 7, 3882 -3, 8, -2, 8, 4, 8, 3883 127 3884 }, 3885 #ifdef LIFE_NAMES 3886 {"buckaroo (queen bee shuttle, piston) (p30)"}, /* 71 */ 3887 #endif 3888 { 3889 -10, -6, 3890 -12, -5, -10, -5, 3891 -11, -4, -10, -4, 3892 -1, -3, 3893 -3, -2, -1, -2, 3894 -4, -1, -2, -1, 3895 -5, 0, -2, 0, 10, 0, 11, 0, 3896 -4, 1, -2, 1, 10, 1, 11, 1, 3897 -9, 2, -8, 2, -3, 2, -1, 2, 3898 -10, 3, -8, 3, -1, 3, 3899 -10, 4, 3900 -11, 5, -10, 5, 3901 127 3902 }, 3903 #ifdef LIFE_NAMES 3904 {"bunnies (parent of rabbits, stabilizes at 17332)"}, /* 72 */ 3905 #endif 3906 { 3907 -4, -2, 2, -2, 3908 -2, -1, 2, -1, 3909 -2, 0, 1, 0, 3, 0, 3910 -3, 1, -1, 1, 3911 127 3912 }, 3913 #ifdef LIFE_NAMES 3914 {"burloaferimeter (p7)"}, /* 73 */ 3915 #endif 3916 { 3917 -1, -5, 0, -5, 3918 0, -4, 3919 -1, -3, 3920 -2, -2, 0, -2, 1, -2, 2, -2, 3921 -2, -1, 0, -1, 3, -1, 3922 -5, 0, -4, 0, -2, 0, 2, 0, 4, 0, 3923 -5, 1, -4, 1, -2, 1, 3, 1, 3924 -1, 2, 0, 2, 1, 2, 2, 2, 3925 -1, 4, 0, 4, 3926 -1, 5, 0, 5, 3927 127 3928 }, 3929 #ifdef LIFE_NAMES 3930 {"Canada goose (c/4 diagonal, p4)"}, /* 74 */ 3931 #endif 3932 { 3933 -6, -6, -5, -6, -4, -6, 3934 -6, -5, 4, -5, 5, -5, 3935 -5, -4, 2, -4, 3, -4, 4, -4, 6, -4, 3936 -3, -3, -2, -3, 1, -3, 2, -3, 3937 -2, -2, 3938 2, -1, 3939 -2, 0, -1, 0, 3, 0, 3940 -3, 1, -1, 1, 1, 1, 2, 1, 3941 -3, 2, -1, 2, 2, 2, 4, 2, 5, 2, 3942 -4, 3, 1, 3, 2, 3, 3943 -4, 4, -3, 4, 3944 -4, 5, -3, 5, 3945 127 3946 }, 3947 #ifdef LIFE_NAMES 3948 {"candelabra (p3)"}, /* 75 */ 3949 #endif 3950 { 3951 -4, -3, -3, -3, 2, -3, 3, -3, 3952 -7, -2, -4, -2, 3, -2, 6, -2, 3953 -8, -1, -6, -1, -4, -1, 3, -1, 5, -1, 7, -1, 3954 -7, 0, -4, 0, -2, 0, -1, 0, 0, 0, 1, 0, 3, 0, 6, 0, 3955 -4, 1, -2, 1, 1, 1, 3, 1, 3956 -3, 2, 2, 2, 3957 127 3958 }, 3959 #ifdef LIFE_NAMES 3960 {"carnival shuttle (p12) (w/ monograms, fencepost)"}, /* 76 */ 3961 #endif 3962 { 3963 14, -3, 18, -3, 3964 -19, -2, -18, -2, -14, -2, -13, -2, 14, -2, 15, -2, 16, -2, 17, -2, 18, -2, 3965 -18, -1, -16, -1, -14, -1, -10, -1, -7, -1, 0, -1, 1, -1, 5, -1, 8, -1, 16, -1, 3966 -18, 0, -17, 0, -15, 0, -14, 0, -11, 0, -10, 0, -6, 0, -5, 0, 0, 0, 1, 0, 4, 0, 5, 0, 9, 0, 10, 0, 15, 0, 17, 0, 3967 -18, 1, -16, 1, -14, 1, -10, 1, -7, 1, 0, 1, 1, 1, 5, 1, 8, 1, 16, 1, 3968 -19, 2, -18, 2, -14, 2, -13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 3969 14, 3, 18, 3, 3970 127 3971 }, 3972 #ifdef LIFE_NAMES 3973 {"caterer (p3) (question)"}, /* 77 */ 3974 #endif 3975 { 3976 -2, -4, -1, -4, 0, -4, 3977 2, -3, 3978 -3, -2, 2, -2, 3979 1, -1, 3980 -2, 0, -1, 0, 3981 -2, 1, 3982 -2, 2, 3983 -2, 3, 3984 127 3985 }, 3986 #ifdef LIFE_NAMES 3987 {"cauldron (p8)"}, /* 78 */ 3988 #endif 3989 { 3990 0, -6, 3991 -1, -5, 1, -5, 3992 0, -4, 3993 -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3994 -5, -1, -3, -1, 3, -1, 5, -1, 3995 -5, 0, -4, 0, -2, 0, 2, 0, 4, 0, 5, 0, 3996 -2, 1, 2, 1, 3997 -2, 2, 2, 2, 3998 -1, 3, 0, 3, 1, 3, 3999 -1, 5, 0, 5, 2, 5, 4000 -1, 6, 1, 6, 2, 6, 4001 127 4002 }, 4003 #if 0 4004 #ifdef LIFE_NAMES 4005 {"cavity"}, /* -- */ 4006 #endif 4007 { 4008 -4, -4, -3, -4, 4009 -3, -3, 4010 -3, -2, -1, -2, 0, -2, 4011 -2, -1, 1, -1, 4012 1, 0, 4013 0, 1, 4014 1, 2, 2, 2, 3, 2, 4015 3, 3, 4016 127 4017 }, 4018 #endif 4019 #ifdef LIFE_NAMES 4020 {"chemist (p5)"}, /* 79 */ 4021 #endif 4022 { 4023 0, -6, 4024 0, -5, 1, -5, 2, -5, 4025 3, -4, 4026 -2, -3, -1, -3, 0, -3, 3, -3, 6, -3, 7, -3, 4027 -3, -2, -1, -2, 1, -2, 3, -2, 5, -2, 7, -2, 4028 -3, -1, 1, -1, 3, -1, 5, -1, 4029 -6, 0, -5, 0, -3, 0, 3, 0, 5, 0, 6, 0, 4030 -5, 1, -3, 1, -1, 1, 3, 1, 4031 -7, 2, -5, 2, -3, 2, -1, 2, 1, 2, 3, 2, 4032 -7, 3, -6, 3, -3, 3, 0, 3, 1, 3, 2, 3, 4033 -3, 4, 4034 -2, 5, -1, 5, 0, 5, 4035 0, 6, 4036 127 4037 }, 4038 #ifdef LIFE_NAMES 4039 {"Coe ship (c/2, p16)"}, /* 80 */ 4040 #endif 4041 { 4042 -1, -4, 0, -4, 1, -4, 2, -4, 3, -4, 4, -4, 4043 -3, -3, -2, -3, 4, -3, 4044 -5, -2, -4, -2, -2, -2, 4, -2, 4045 -1, -1, 3, -1, 4046 1, 0, 4047 1, 1, 2, 1, 4048 0, 2, 1, 2, 2, 2, 3, 2, 4049 0, 3, 1, 3, 3, 3, 4, 3, 4050 2, 4, 3, 4, 4051 127 4052 }, 4053 #ifdef LIFE_NAMES 4054 {"converter (using Kok's galaxy (p8) (turbine))"}, /* 81 */ 4055 #endif 4056 { 4057 -6, -6, -4, -6, -1, -6, 4058 -6, -5, -5, -5, -4, -5, -2, -5, 0, -5, 1, -5, 4059 -7, -4, 0, -4, 6, -4, 4060 -6, -3, 0, -3, 1, -3, 5, -3, 7, -3, 4061 6, -2, 7, -2, 4062 -7, -1, -6, -1, 0, -1, 4063 -6, 0, 1, 0, 4064 -7, 1, -6, 1, -4, 1, -2, 1, -1, 1, 0, 1, 4065 -5, 2, -2, 2, 0, 2, 4066 5, 3, 6, 3, 7, 3, 4067 5, 4, 7, 4, 4068 5, 5, 7, 5, 4069 127 4070 }, 4071 #ifdef LIFE_NAMES 4072 {"copperhead (c/10, p10)"}, /* -- */ 4073 #endif 4074 { 4075 -2, -4, -1, -4, 0, -4, 2, -4, 3, -4, 4076 -5, -3, 0, -3, 1, -3, 4, -3, 5, -3, 4077 -6, -2, -5, -2, 1, -2, 6, -2, 4078 -6, -1, -5, -1, 1, -1, 6, -1, 4079 -5, 0, 0, 0, 1, 0, 4, 0, 5, 0, 4080 -2, 1, -1, 1, 0, 1, 2, 1, 3, 1, 4081 127 4082 }, 4083 #ifdef LIFE_NAMES 4084 {"cousins (p3)"}, /* 82 */ 4085 #endif 4086 { 4087 -1, -3, 1, -3, 2, -3, 4088 -3, -2, -2, -2, -1, -2, 1, -2, 3, -2, 4089 -6, -1, -4, -1, 3, -1, 4090 -6, 0, -5, 0, -3, 0, -2, 0, 0, 0, 1, 0, 3, 0, 5, 0, 6, 0, 4091 -3, 1, -1, 1, 4, 1, 6, 1, 4092 -3, 2, -1, 2, 1, 2, 2, 2, 3, 2, 4093 -2, 3, -1, 3, 1, 3, 4094 127 4095 }, 4096 #ifdef LIFE_NAMES 4097 {"cross II (p3)"}, /* 83 */ 4098 #endif 4099 { 4100 -4, -6, -3, -6, -2, -6, -1, -6, 1, -6, 2, -6, 3, -6, 4, -6, 4101 -4, -5, -1, -5, 1, -5, 4, -5, 4102 -6, -4, -5, -4, -4, -4, -1, -4, 0, -4, 1, -4, 4, -4, 5, -4, 4103 6, -4, 4104 -6, -3, 6, -3, 4105 -6, -2, 6, -2, 4106 -6, -1, -5, -1, -4, -1, 4, -1, 5, -1, 6, -1, 4107 -4, 0, 4, 0, 4108 -6, 1, -5, 1, -4, 1, 4, 1, 5, 1, 6, 1, 4109 -6, 2, 6, 2, 4110 -6, 3, 6, 3, 4111 -6, 4, -5, 4, -4, 4, -1, 4, 0, 4, 1, 4, 4, 4, 5, 4, 6, 4, 4112 -4, 5, -1, 5, 1, 5, 4, 5, 4113 -4, 6, -3, 6, -2, 6, -1, 6, 1, 6, 2, 6, 3, 6, 4, 6, 4114 127 4115 }, 4116 #ifdef LIFE_NAMES 4117 {"crowd (p3)"}, /* 84 */ 4118 #endif 4119 { 4120 4, -7, 4121 2, -6, 3, -6, 4, -6, 4122 -2, -5, -1, -5, 1, -5, 4123 -2, -4, 2, -4, 4124 0, -3, 1, -3, 3, -3, 4125 -4, -2, -3, -2, -2, -2, -1, -2, 3, -2, 4126 -7, -1, -5, -1, 1, -1, 3, -1, 5, -1, 6, -1, 4127 -7, 0, -6, 0, -4, 0, -2, 0, 4, 0, 6, 0, 4128 -4, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4129 -4, 2, -2, 2, -1, 2, 4130 -3, 3, 1, 3, 4131 -2, 4, 0, 4, 1, 4, 4132 -5, 5, -4, 5, -3, 5, 4133 -5, 6, 4134 127 4135 }, 4136 #ifdef LIFE_NAMES 4137 {"dart (c/3, p3)"}, /* 85 */ 4138 #endif 4139 { 4140 3, -7, 4141 2, -6, 4, -6, 4142 1, -5, 2, -5, 4143 4, -4, 4144 0, -3, 4, -3, 4145 -3, -2, 0, -2, 4146 -4, -1, -2, -1, 1, -1, 2, -1, 3, -1, 4, -1, 4147 -5, 0, -2, 0, 4148 -4, 1, -2, 1, 1, 1, 2, 1, 3, 1, 4, 1, 4149 -3, 2, 0, 2, 4150 0, 3, 4, 3, 4151 4, 4, 4152 1, 5, 2, 5, 4153 2, 6, 4, 6, 4154 3, 7, 4155 127 4156 }, 4157 #ifdef LIFE_NAMES 4158 {"diag sym (p4)"}, /* 86 */ 4159 #endif 4160 { 4161 -2, -4, 0, -4, 4162 -2, -3, 0, -3, 2, -3, 3, -3, 4163 -4, -2, -3, -2, 2, -2, 4164 0, -1, 1, -1, 2, -1, 4165 -4, 0, -3, 0, -1, 0, 2, 0, 4166 -1, 1, 2, 1, 4167 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 4168 -3, 3, 4169 127 4170 }, 4171 #ifdef LIFE_NAMES 4172 {"diamond ring (p3) (stargate repeater)"}, /* 87 */ 4173 #endif 4174 { 4175 0, -6, 4176 -1, -5, 1, -5, 4177 -2, -4, 0, -4, 2, -4, 4178 -2, -3, 2, -3, 4179 -4, -2, -3, -2, 0, -2, 3, -2, 4, -2, 4180 -5, -1, 0, -1, 5, -1, 4181 -6, 0, -4, 0, -2, 0, -1, 0, 1, 0, 2, 0, 4, 0, 6, 0, 4182 -5, 1, 0, 1, 5, 1, 4183 -4, 2, -3, 2, 0, 2, 3, 2, 4, 2, 4184 -2, 3, 2, 3, 4185 -2, 4, 0, 4, 2, 4, 4186 -1, 5, 1, 5, 4187 0, 6, 4188 127 4189 }, 4190 #ifdef LIFE_NAMES 4191 {"double ewe"}, /* 88 */ 4192 #endif 4193 { 4194 -4, -10, -3, -10, 4195 -3, -9, 4196 -4, -8, 4197 -4, -7, -3, -7, 4198 -1, -6, 0, -6, 4199 -4, -5, -3, -5, -2, -5, 0, -5, 4200 -10, -4, -8, -4, -7, -4, -5, -4, 4201 -10, -3, -9, -3, -7, -3, -5, -3, 4202 -5, -2, -1, -2, 4203 -6, -1, -2, -1, -1, -1, 4, -1, 5, -1, 4204 -6, 0, -5, 0, 0, 0, 1, 0, 5, 0, 4205 0, 1, 4, 1, 4206 4, 2, 6, 2, 8, 2, 9, 2, 4207 4, 3, 6, 3, 7, 3, 9, 3, 4208 -1, 4, 1, 4, 2, 4, 3, 4, 4209 -1, 5, 0, 5, 4210 2, 6, 3, 6, 4211 3, 7, 4212 2, 8, 4213 2, 9, 3, 9, 4214 127 4215 }, 4216 #ifdef LIFE_NAMES 4217 {"dinner table (p12) (whirly thing)"}, /* 89 */ 4218 #endif 4219 { 4220 -5, -6, 4221 -5, -5, -4, -5, -3, -5, 5, -5, 6, -5, 4222 -2, -4, 5, -4, 4223 -3, -3, -2, -3, 3, -3, 5, -3, 4224 3, -2, 4, -2, 4225 0, -1, 1, -1, 4226 0, 0, 1, 0, 4227 0, 1, 1, 1, 4228 -4, 2, -3, 2, 4229 -5, 3, -3, 3, 2, 3, 3, 3, 4230 -5, 4, 2, 4, 4231 -6, 5, -5, 5, 3, 5, 4, 5, 5, 5, 4232 5, 6, 4233 127 4234 }, 4235 #ifdef LIFE_NAMES 4236 {"eater-bound pond (p3)"}, /* 90 */ 4237 #endif 4238 { 4239 -6, -6, 4240 -6, -5, -5, -5, -4, -5, 4241 -3, -4, 4242 -4, -3, -3, -3, 4243 -3, -2, -2, -2, 4244 -2, -1, -1, -1, 4245 -3, 0, 0, 0, 4246 -3, 1, 0, 1, 1, 1, 4247 -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 4248 2, 3, 4, 3, 4249 4, 4, 4250 4, 5, 5, 5, 4251 127 4252 }, 4253 #if 0 4254 #ifdef LIFE_NAMES 4255 {"eater plug"}, /* -- */ 4256 #endif 4257 { 4258 3, -4, 4259 1, -3, 2, -3, 3, -3, 4260 0, -2, 4261 1, -1, 4262 -2, 0, 1, 0, 4263 -3, 1, -1, 1, 0, 1, 4264 -3, 2, 4265 -4, 3, -3, 3, 4266 127 4267 }, 4268 #endif 4269 #ifdef LIFE_NAMES 4270 {"edge-repair spaceship (and Hershel) (c/3, p3)"}, /* 91 */ 4271 #endif 4272 { 4273 4, -3, 4274 -12, -2, 3, -2, 4, -2, 5, -2, 6, -2, 4275 -12, -1, -10, -1, -2, -1, 2, -1, 6, -1, 7, -1, 9, -1, 10, -1, 4276 -12, 0, -11, 0, -10, 0, -3, 0, -2, 0, -1, 0, 0, 0, 6, 0, 4277 9, 0, 10, 0, 4278 -10, 1, -4, 1, 0, 1, 8, 1, 11, 1, 4279 -3, 2, -1, 2, 2, 2, 4280 1, 3, 4281 127 4282 }, 4283 #ifdef LIFE_NAMES 4284 {"Elkies' p5"}, /* 92 */ 4285 #endif 4286 { 4287 -3, -4, 4288 -4, -3, -1, -3, 0, -3, 1, -3, 4289 -2, -2, 4290 -1, -1, 1, -1, 4, -1, 4291 -2, 0, -1, 0, 1, 0, 2, 0, 3, 0, 4, 0, 4292 0, 1, 4293 0, 2, 2, 2, 4294 1, 3, 2, 3, 4295 127 4296 }, 4297 #ifdef LIFE_NAMES 4298 {"en retard (p3)"}, /* 93 */ 4299 #endif 4300 { 4301 0, -5, 4302 -1, -4, 1, -4, 4303 -5, -3, -4, -3, -2, -3, 0, -3, 2, -3, 4, -3, 5, -3, 4304 -4, -2, -2, -2, 2, -2, 4, -2, 4305 -5, -1, -2, -1, 0, -1, 2, -1, 5, -1, 4306 -4, 0, -3, 0, 3, 0, 4, 0, 4307 -2, 1, -1, 1, 1, 1, 2, 1, 4308 -2, 2, 0, 2, 2, 2, 4309 -1, 3, 1, 3, 4310 -3, 4, -1, 4, 1, 4, 3, 4, 4311 -3, 5, -2, 5, 2, 5, 3, 5, 4312 127 4313 }, 4314 #ifdef LIFE_NAMES 4315 {"Eureka (p30) (a pre-pulsar shuttle)"}, /* 94 */ 4316 #endif 4317 { 4318 -8, -5, 7, -5, 4319 -9, -4, -7, -4, 1, -4, 2, -4, 6, -4, 8, -4, 4320 -8, -3, 0, -3, 1, -3, 2, -3, 7, -3, 4321 1, -2, 2, -2, 4322 1, 2, 2, 2, 4323 -8, 3, 0, 3, 1, 3, 2, 3, 7, 3, 4324 -9, 4, -7, 4, 1, 4, 2, 4, 6, 4, 8, 4, 4325 -8, 5, 7, 5, 4326 127 4327 }, 4328 #ifdef LIFE_NAMES 4329 {"extremely impressive (p6)"}, /* 95 */ 4330 #endif 4331 { 4332 -2, -5, -1, -5, 4333 -3, -4, -1, -4, 0, -4, 1, -4, 4334 -3, -3, 2, -3, 4335 -6, -2, -5, -2, -3, -2, 1, -2, 2, -2, 4336 -6, -1, -5, -1, -3, -1, 3, -1, 4, -1, 4337 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 5, 0, 4338 4, 1, 5, 1, 4339 0, 2, 4340 -1, 3, 1, 3, 4341 0, 4, 4342 127 4343 }, 4344 #ifdef LIFE_NAMES 4345 {"Fast Forward Force Field with LWSS"}, /* 96 */ 4346 #endif 4347 { 4348 -1, -3, 6, -3, 4349 0, -2, 7, -2, 8, -2, 4350 -6, -1, -5, -1, -2, -1, -1, -1, 0, -1, 6, -1, 7, -1, 4351 -8, 0, -7, 0, -5, 0, -4, 0, 4352 -8, 1, -7, 1, -6, 1, -5, 1, 5, 1, 4353 -7, 2, -6, 2, 4, 2, 5, 2, 4354 4, 3, 6, 3, 4355 127 4356 }, 4357 #if 0 4358 #ifdef LIFE_NAMES 4359 {"figure-8 (p8)"}, /* -- */ 4360 #endif 4361 { 4362 -3, -3, -2, -3, -1, -3, 4363 -3, -2, -2, -2, -1, -2, 4364 -3, -1, -2, -1, -1, -1, 4365 0, 0, 1, 0, 2, 0, 4366 0, 1, 1, 1, 2, 1, 4367 0, 2, 1, 2, 2, 2, 4368 127 4369 }, 4370 #endif 4371 #ifdef LIFE_NAMES 4372 {"fireship (c/10, p10)"}, /* -- */ 4373 #endif 4374 { 4375 6, -6, 4376 -1, -5, 5, -5, 7, -5, 4377 -5, -4, -2, -4, 1, -4, 5, -4, 7, -4, 8, -4, 4378 -7, -3, -6, -3, -4, -3, -2, -3, 2, -3, 6, -3, 4379 -9, -2, -8, -2, -6, -2, -5, -2, 3, -2, 4380 -9, -1, -8, -1, -6, -1, -5, -1, 3, -1, 4381 -7, 0, -6, 0, -4, 0, -2, 0, 2, 0, 6, 0, 4382 -5, 1, -2, 1, 1, 1, 5, 1, 7, 1, 8, 1, 4383 -1, 2, 5, 2, 7, 2, 4384 6, 3, 4385 127 4386 }, 4387 #ifdef LIFE_NAMES 4388 {"fountain (p4)"}, /* 97 */ 4389 #endif 4390 { 4391 0, -7, 4392 -6, -5, -5, -5, -3, -5, 3, -5, 5, -5, 6, -5, 4393 -6, -4, 0, -4, 6, -4, 4394 -5, -3, -4, -3, -2, -3, -1, -3, 1, -3, 2, -3, 4, -3, 5, -3, 4395 -3, -1, -2, -1, 2, -1, 3, -1, 4396 -9, 0, -8, 0, 8, 0, 9, 0, 4397 -9, 1, -6, 1, -2, 1, 0, 1, 2, 1, 6, 1, 9, 1, 4398 -8, 2, -7, 2, -6, 2, -4, 2, -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 4399 2, 2, 3, 2, 4, 2, 6, 2, 7, 2, 8, 2, 4400 -5, 3, 0, 3, 5, 3, 4401 -6, 4, -5, 4, 5, 4, 6, 4, 4402 -6, 5, 6, 5, 4403 -4, 6, 4, 6, 4404 -5, 7, -4, 7, 4, 7, 5, 7, 4405 127 4406 }, 4407 #ifdef LIFE_NAMES 4408 {"frog II (p3)"}, /* 98 */ 4409 #endif 4410 { 4411 -3, -6, -2, -6, 2, -6, 3, -6, 4412 -3, -5, -1, -5, 1, -5, 3, -5, 4413 -1, -4, 1, -4, 4414 -2, -3, 0, -3, 2, -3, 4415 -2, -2, -1, -2, 1, -2, 2, -2, 4416 -4, -1, -3, -1, 3, -1, 4, -1, 4417 -5, 0, -2, 0, 0, 0, 2, 0, 5, 0, 4418 -4, 1, -2, 1, 2, 1, 4, 1, 4419 -5, 2, -4, 2, -2, 2, 2, 2, 4, 2, 5, 2, 4420 -1, 3, 0, 3, 1, 3, 4421 -2, 5, 0, 5, 1, 5, 4422 -2, 6, -1, 6, 1, 6, 4423 127 4424 }, 4425 #if 0 4426 #ifdef LIFE_NAMES 4427 {"garden of eden 12x11"}, 4428 #endif 4429 { 4430 -5, -5, -3, -5, -2, -5, 0, -5, 1, -5, 4, -5, 4431 -4, -4, -2, -4, -1, -4, 0, -4, 2, -4, 3, -4, 4, -4, 4432 -4, -3, -3, -3, -1, -3, 0, -3, 1, -3, 3, -3, 5, -3, 4433 -5, -2, -3, -2, -2, -2, -1, -2, 1, -2, 2, -2, 3, -2, 5, -2, 4434 -6, -1, -5, -1, -4, -1, -3, -1, -2, -1, 1, -1, 2, -1, 3, -1, 4, -1, 4435 -5, 0, -4, 0, -2, 0, -1, 0, 0, 0, 2, 0, 5, 0, 4436 -5, 1, -4, 1, -3, 1, -1, 1, 1, 1, 4, 1, 4437 -5, 2, -4, 2, -2, 2, -1, 2, 0, 2, 3, 2, 4, 2, 4438 -6, 3, -4, 3, -3, 3, -2, 3, 0, 3, 1, 3, 2, 3, 4, 3, 4439 -6, 4, -3, 4, -2, 4, 1, 4, 3, 4, 5, 4, 4440 4, 5 4441 127 4442 }, 4443 #endif 4444 #ifdef LIFE_NAMES 4445 {"germ (p3)"}, /* 99 */ 4446 #endif 4447 { 4448 -1, -5, 0, -5, 4449 0, -4, 4450 -2, -3, 4451 -3, -2, -1, -2, 0, -2, 1, -2, 2, -2, 4452 -3, -1, 2, -1, 4453 -4, 0, -3, 0, -1, 0, 4454 -3, 1, -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 4455 -5, 2, -3, 2, -1, 2, 4, 2, 4456 -5, 3, -4, 3, 0, 3, 1, 3, 2, 3, 4457 2, 4, 3, 4, 4458 127 4459 }, 4460 #ifdef LIFE_NAMES 4461 {"glasses"}, /* 100 */ 4462 #endif 4463 { 4464 -5, -5, 4, -5, 4465 -7, -4, -6, -4, -5, -4, 4, -4, 5, -4, 6, -4, 4466 -8, -3, 7, -3, 4467 -8, -2, -5, -2, -4, -2, -3, -2, 2, -2, 3, -2, 4, -2, 7, -2, 4468 -9, -1, -8, -1, -6, -1, -2, -1, 1, -1, 5, -1, 7, -1, 8, -1, 4469 -6, 0, -2, 0, -1, 0, 0, 0, 1, 0, 5, 0, 4470 -6, 1, -2, 1, 1, 1, 5, 1, 4471 -5, 2, -4, 2, -3, 2, 2, 2, 3, 2, 4, 2, 4472 -5, 4, -4, 4, -2, 4, 1, 4, 3, 4, 4, 4, 4473 -5, 5, -3, 5, -2, 5, 1, 5, 2, 5, 4, 5, 4474 127 4475 }, 4476 #if 0 4477 #ifdef LIFE_NAMES 4478 {"glider-block cycle"}, /* -- */ 4479 #endif 4480 { 4481 -1, -3, 0, -3, 4482 -1, -2, 0, -2, 4483 -2, 1, 1, 1, 4484 -4, 2, -2, 2, 1, 2, 3, 2, 4485 -3, 3, -2, 3, 1, 3, 2, 3, 4486 127 4487 }, 4488 #endif 4489 #ifdef LIFE_NAMES 4490 {"glider pusher"}, /* 101 */ 4491 #endif 4492 { 4493 -3, -10, -2, -10, 4494 -3, -9, -2, -9, 4495 -2, -7, 4496 -3, -6, -1, -6, 4497 -3, -5, -1, -5, 4498 -2, -4, 4499 -5, -1, -4, -1, -2, -1, 0, -1, 1, -1, 4500 -5, 0, 1, 0, 4501 -4, 1, 0, 1, 4502 -11, 2, -3, 2, -2, 2, -1, 2, 4503 -10, 3, 4504 -12, 4, -11, 4, -10, 4, 4505 5, 7, 10, 7, 4506 3, 8, 4, 8, 6, 8, 7, 8, 8, 8, 9, 8, 11, 8, 12, 8, 4507 5, 9, 10, 9, 4508 127 4509 }, 4510 #ifdef LIFE_NAMES 4511 {"Gosper glider gun (p30)"}, /* 102 */ 4512 #endif 4513 { 4514 6, -4, 4515 5, -3, 6, -3, 4516 -6, -2, -5, -2, 8, -2, 9, -2, 16, -2, 4517 -7, -1, 8, -1, 9, -1, 10, -1, 16, -1, 17, -1, 4518 -18, 0, -17, 0, -8, 0, 8, 0, 9, 1, 4519 -17, 1, -8, 1, 5, 1, 6, 1, 4520 -8, 2, 6, 2, 4521 -7, 3, 4522 -6, 4, -5, 4, 4523 127 4524 }, 4525 #ifdef LIFE_NAMES 4526 {"Gray counter (p4)"}, /* 103 */ 4527 #endif 4528 { 4529 0, -4, 4530 -1, -3, 1, -3, 4531 -2, -2, 0, -2, 2, -2, 4532 -5, -1, -2, -1, 2, -1, 5, -1, 4533 -6, 0, -4, 0, -2, 0, 2, 0, 4, 0, 6, 0, 4534 -5, 1, -2, 1, 2, 1, 5, 1, 4535 -2, 2, 0, 2, 2, 2, 4536 -1, 3, 1, 3, 4537 0, 4, 4538 127 4539 }, 4540 #if 0 4541 #ifdef LIFE_NAMES 4542 {"great on-off"}, /* --- */ 4543 #endif 4544 { 4545 -2, -4, -1, -4, 4546 -3, -3, 0, -3, 4547 -3, -2, -1, -2, 4548 -4, -1, -3, -1, -1, -1, 2, -1, 4549 0, 0, 1, 0, 3, 0, 4550 3, 1, 4551 0, 2, 1, 2, 2, 2, 4552 0, 3, 4553 127 4554 }, 4555 #endif 4556 #ifdef LIFE_NAMES 4557 {"harbor (p5)"}, /* 104 */ 4558 #endif 4559 { 4560 -3, -8, -2, -8, 2, -8, 3, -8, 4561 -3, -7, -1, -7, 1, -7, 3, -7, 4562 -2, -6, 2, -6, 4563 -3, -4, -2, -4, 2, -4, 3, -4, 4564 -8, -3, -7, -3, -4, -3, -2, -3, 2, -3, 4, -3, 7, -3, 8, -3, 4565 -8, -2, -6, -2, -4, -2, -3, -2, 3, -2, 4, -2, 6, -2, 8, -2, 4566 -7, -1, 7, -1, 4567 -7, 1, 7, 1, 4568 -8, 2, -6, 2, -4, 2, -3, 2, 3, 2, 4, 2, 6, 2, 8, 2, 4569 -8, 3, -7, 3, -4, 3, -2, 3, 2, 3, 4, 3, 7, 3, 8, 3, 4570 -3, 4, -2, 4, 2, 4, 3, 4, 4571 -2, 6, 2, 6, 4572 -3, 7, -1, 7, 1, 7, 3, 7, 4573 -3, 8, -2, 8, 2, 8, 3, 8, 4574 127 4575 }, 4576 #ifdef LIFE_NAMES 4577 {"Hertz oscillator (p8)"}, /* 105 */ 4578 #endif 4579 { 4580 -2, -5, -1, -5, 4581 -2, -4, -1, -4, 4582 -7, -2, -6, -2, -2, -2, -1, -2, 0, -2, 1, -2, 5, -2, 6, -2, 4583 -7, -1, -5, -1, -3, -1, 2, -1, 4, -1, 6, -1, 4584 -5, 0, -3, 0, -2, 0, 2, 0, 4, 0, 4585 -6, 1, -5, 1, -3, 1, 2, 1, 4, 1, 5, 1, 4586 -2, 2, -1, 2, 0, 2, 1, 2, 4587 -2, 4, -1, 4, 4588 -2, 5, -1, 5, 4589 127 4590 }, 4591 #ifdef LIFE_NAMES 4592 {"hustler (p3)"}, /* 106 */ 4593 #endif 4594 { 4595 0, -6, 1, -6, 4596 0, -5, 1, -5, 4597 -2, -3, -1, -3, 0, -3, 1, -3, 4598 -5, -2, -3, -2, 2, -2, 4599 -5, -1, -4, -1, -2, -1, 2, -1, 4600 -2, 0, 2, 0, 4, 0, 5, 0, 4601 -2, 1, 3, 1, 5, 1, 4602 -1, 2, 0, 2, 1, 2, 2, 2, 4603 -1, 4, 0, 4, 4604 -1, 5, 0, 5, 4605 127 4606 }, 4607 #ifdef LIFE_NAMES 4608 {"hustler II (p4)"}, /* 107 */ 4609 #endif 4610 { 4611 -4, -6, 4612 -4, -5, -3, -5, -2, -5, 4613 -1, -4, 4614 -2, -3, 1, -3, 2, -3, 4615 -8, -2, -6, -2, -5, -2, -3, -2, -1, -2, 0, -2, 3, -2, 4616 -8, -1, -7, -1, -5, -1, -3, -1, 3, -1, 4617 -3, 0, 2, 0, 4618 -4, 1, 2, 1, 4, 1, 6, 1, 7, 1, 4619 -4, 2, -1, 2, 0, 2, 2, 2, 4, 2, 5, 2, 7, 2, 4620 -3, 3, -2, 3, 1, 3, 4621 0, 4, 4622 1, 5, 2, 5, 3, 5, 4623 3, 6, 4624 127 4625 }, 4626 #ifdef LIFE_NAMES 4627 {"HW emulator (p4)"}, /* 108 */ 4628 #endif 4629 { 4630 -1, -3, 0, -3, 4631 -6, -2, -5, -2, -3, -2, 2, -2, 4, -2, 5, -2, 4632 -6, -1, 5, -1, 4633 -5, 0, -4, 0, 3, 0, 4, 0, 4634 -8, 1, -7, 1, -6, 1, -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4635 5, 1, 6, 1, 7, 1, 4636 -8, 2, -5, 2, 4, 2, 7, 2, 4637 -7, 3, -6, 3, 5, 3, 6, 3, 4638 127 4639 }, 4640 #ifdef LIFE_NAMES 4641 {"infinite growth 1 (from smallest number)"}, /* 109 */ 4642 #endif 4643 { 4644 2, -3, 4645 0, -2, 2, -2, 3, -2, 4646 0, -1, 2, -1, 4647 0, 0, 4648 -2, 1, 4649 -4, 2, -2, 2, 4650 127 4651 }, 4652 #ifdef LIFE_NAMES 4653 {"infinite growth 2 (from smallest area)"}, /* 110 */ 4654 #endif 4655 { 4656 -2, -2, -1, -2, 0, -2, 2, -2, 4657 -2, -1, 4658 1, 0, 2, 0, 4659 -1, 1, 0, 1, 2, 1, 4660 -2, 2, 0, 2, 2, 2, 4661 127 4662 }, 4663 #ifdef LIFE_NAMES 4664 {"infinite growth 3 (from 1 dimension)"}, /* 111 */ 4665 #endif 4666 { 4667 -19, 0, -18, 0, -17, 0, -16, 0, -15, 0, -14, 0, -13, 0, 4668 -12, 0, -10, 0, -9, 0, -8, 0, -7, 0, -6, 0, -2, 0, 4669 -1, 0, 0, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 4670 13, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 4671 127 4672 }, 4673 #ifdef LIFE_NAMES 4674 {"jack (p4)"}, /* 112 */ 4675 #endif 4676 { 4677 -3, -4, 3, -4, 4678 -3, -3, -2, -3, 2, -3, 3, -3, 4679 -6, -2, -3, -2, -2, -2, 2, -2, 3, -2, 6, -2, 4680 -6, -1, -5, -1, -4, -1, -1, -1, 1, -1, 4, -1, 5, -1, 6, -1, 4681 -1, 0, 1, 0, 4682 -6, 1, -5, 1, -4, 1, -1, 1, 1, 1, 4, 1, 5, 1, 6, 1, 4683 -6, 2, -3, 2, -2, 2, 2, 2, 3, 2, 6, 2, 4684 -3, 3, -2, 3, 2, 3, 3, 3, 4685 -3, 4, 3, 4, 4686 127 4687 }, 4688 #ifdef LIFE_NAMES 4689 {"jam (p3)"}, /* 113 */ 4690 #endif 4691 { 4692 0, -3, 1, -3, 4693 -1, -2, 2, -2, 4694 -3, -1, 0, -1, 2, -1, 4695 -3, 0, 1, 0, 4696 -3, 1, 4697 0, 2, 4698 -2, 3, -1, 3, 4699 127 4700 }, 4701 #if 0 4702 #ifdef LIFE_NAMES 4703 {"Kok's galaxy (p8)"}, /* --- */ 4704 #endif 4705 { 4706 -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 3, -4, 4, -4, 4707 -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 3, -3, 4, -3, 4708 3, -2, 4, -2, 4709 -4, -1, -3, -1, 3, -1, 4, -1, 4710 -4, 0, -3, 0, 3, 0, 4, 0, 4711 -4, 1, -3, 1, 3, 1, 4, 1, 4712 -4, 2, -3, 2, 4713 -4, 3, -3, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 4714 -4, 4, -3, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 4715 127 4716 }, 4717 #endif 4718 #ifdef LIFE_NAMES 4719 {"Laputa"}, /* 114 */ 4720 #endif 4721 { 4722 -3, -3, -2, -3, 0, -3, 1, -3, 4723 -3, -2, -2, -2, 0, -2, 4, -2, 5, -2, 4724 2, -1, 5, -1, 4725 -5, 0, -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 2, 0, 3, 0, 4, 0, 4726 -6, 1, -3, 1, -1, 1, 4727 -6, 2, -5, 2, -1, 2, 1, 2, 2, 2, 4728 -2, 3, -1, 3, 1, 3, 2, 3, 4729 127 4730 }, 4731 #ifdef LIFE_NAMES 4732 {"light bulb"}, /* 115 */ 4733 #endif 4734 { 4735 -2, -4, -1, -4, 1, -4, 4736 -2, -3, 0, -3, 1, -3, 4737 -1, -1, 0, -1, 1, -1, 4738 -2, 0, 2, 0, 4739 -2, 1, 2, 1, 4740 -1, 2, 1, 2, 4741 -3, 3, -1, 3, 1, 3, 3, 3, 4742 -3, 4, -2, 4, 2, 4, 3, 4, 4743 127 4744 }, 4745 #ifdef LIFE_NAMES 4746 {"light bulb II"}, /* 116 */ 4747 #endif 4748 { 4749 -1, -4, 4750 -3, -3, -2, -3, -1, -3, 4751 -4, -2, 4752 -4, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 4753 2, 0, 4754 -2, 1, 2, 1, 4755 -2, 2, -1, 2, 1, 2, 4756 2, 3, 3, 3, 4, 3, 4757 4, 4, 4758 127 4759 }, 4760 #ifdef LIFE_NAMES 4761 {"loading dock (p3)"}, /* 117 */ 4762 #endif 4763 { 4764 0, -4, 4765 -2, -3, -1, -3, 0, -3, 4766 -3, -2, 1, -2, 2, -2, 4767 -4, -1, -2, -1, -1, -1, 3, -1, 4768 -3, 0, 1, 0, 2, 0, 4, 0, 4769 -2, 1, -1, 1, 3, 1, 4770 0, 2, 1, 2, 2, 2, 4771 0, 3, 4772 127 4773 }, 4774 #ifdef LIFE_NAMES 4775 {"loafer (c/7, p7)"}, 4776 #endif 4777 { 4778 -3, -4, -2, -4, 1, -4, 3, -4, 4, -4, 4779 -4, -3, -1, -3, 2, -3, 3, -3, 4780 -3, -2, -1, -2, 4781 -2, -1, 4782 4, 0, 4783 2, 1, 3, 1, 4, 1, 4784 1, 2, 4785 2, 3, 4786 3, 4, 4, 4, 4787 127 4788 }, 4789 #ifdef LIFE_NAMES 4790 {"LW emulator (p4)"}, /* 118 */ 4791 #endif 4792 { 4793 -5, -3, -4, -3, -2, -3, 1, -3, 3, -3, 4, -3, 4794 -5, -2, 4, -2, 4795 -4, -1, -3, -1, 2, -1, 3, -1, 4796 -7, 0, -6, 0, -5, 0, -2, 0, -1, 0, 0, 0, 1, 0, 4, 0, 5, 0, 4797 6, 0, 4798 -7, 1, -4, 1, 3, 1, 6, 1, 4799 -6, 2, -5, 2, 4, 2, 5, 2, 4800 127 4801 }, 4802 #ifdef LIFE_NAMES 4803 {"mathematician (p5)"}, /* 119 */ 4804 #endif 4805 { 4806 0, -5, 4807 -1, -4, 1, -4, 4808 -1, -3, 1, -3, 4809 -2, -2, -1, -2, 1, -2, 2, -2, 4810 -4, -1, 4, -1, 4811 -4, 0, -3, 0, -2, 0, 2, 0, 3, 0, 4, 0, 4812 -4, 2, -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 4813 -4, 3, 4, 3, 4814 -1, 4, 0, 4, 1, 4, 2, 4, 4815 -1, 5, 2, 5, 3, 5, 4816 127 4817 }, 4818 #ifdef LIFE_NAMES 4819 {"metamorphosis"}, /* 120 */ 4820 #endif 4821 { 4822 5, -9, 4823 6, -8, 4824 4, -7, 5, -7, 6, -7, 4825 -2, -1, 2, -1, 8, -1, 10, -1, 11, -1, 4826 -14, 0, -13, 0, -3, 0, 3, 0, 8, 0, 10, 0, 12, 0, 4827 -14, 1, -13, 1, -3, 1, 7, 1, 12, 1, 4828 -3, 2, -2, 2, 2, 2, 8, 2, 10, 2, 12, 2, 4829 -1, 3, 0, 3, 1, 3, 8, 3, 10, 3, 11, 3, 4830 -1, 5, 0, 5, 1, 5, 4831 -3, 6, -2, 6, 2, 6, 4832 -14, 7, -13, 7, -3, 7, 13, 7, 14, 7, 4833 -14, 8, -13, 8, -3, 8, 3, 8, 13, 8, 14, 8, 4834 -2, 9, 2, 9, 4835 127 4836 }, 4837 #ifdef LIFE_NAMES 4838 {"metamorphosis II"}, /* 121 */ 4839 #endif 4840 { 4841 10, -15, 4842 9, -14, 4843 9, -13, 10, -13, 11, -13, 4844 -3, -10, -1, -10, 4845 -3, -9, 0, -9, 4846 -12, -8, -11, -8, 0, -8, 1, -8, 4847 -12, -7, -11, -7, -2, -7, 2, -7, 3, -7, 4848 -7, -6, -6, -6, 0, -6, 1, -6, 4849 -8, -5, -3, -5, 0, -5, 4850 -3, -4, -1, -4, 4851 4, 1, 4852 3, 2, 4, 2, 5, 2, 4853 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 4854 1, 4, 3, 4, 5, 4, 7, 4, 4855 1, 5, 2, 5, 6, 5, 7, 5, 4856 4, 8, 4857 3, 9, 5, 9, 4858 3, 10, 5, 10, 4859 4, 11, 4860 3, 12, 4, 12, 4861 3, 13, 4, 13, 4862 3, 14, 4, 14, 4863 127 4864 }, 4865 #ifdef LIFE_NAMES 4866 {"mini pressure cooker (p3)"}, /* 122 */ 4867 #endif 4868 { 4869 0, -5, 4870 -1, -4, 1, -4, 4871 -1, -3, 1, -3, 4872 -2, -2, -1, -2, 1, -2, 2, -2, 4873 -5, -1, -3, -1, 3, -1, 5, -1, 4874 -5, 0, -4, 0, -2, 0, 0, 0, 2, 0, 4, 0, 5, 0, 4875 -2, 1, 2, 1, 4876 -2, 2, 0, 2, 2, 2, 4877 -1, 3, 1, 3, 4878 0, 4, 4879 127 4880 }, 4881 #ifdef LIFE_NAMES 4882 {"multum in parvo (stabilizes at 3933)"}, /* 123 */ 4883 #endif 4884 { 4885 0, -2, 1, -2, 2, -2, 4886 -1, -1, 2, -1, 4887 -2, 0, 4888 -3, 1, 4889 127 4890 }, 4891 #ifdef LIFE_NAMES 4892 {"MW emulator (p4)"}, /* 124 */ 4893 #endif 4894 { 4895 -5, -3, -4, -3, -2, -3, 2, -3, 4, -3, 5, -3, 4896 -5, -2, 5, -2, 4897 -4, -1, -3, -1, 3, -1, 4, -1, 4898 -7, 0, -6, 0, -5, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 5, 0, 4899 6, 0, 7, 0, 4900 -7, 1, -4, 1, 4, 1, 7, 1, 4901 -6, 2, -5, 2, 5, 2, 6, 2, 4902 127 4903 }, 4904 #ifdef LIFE_NAMES 4905 {"MW volcano (p5)"}, /* 125 */ 4906 #endif 4907 { 4908 0, -6, 4909 -2, -5, 2, -5, 4910 -3, -3, 3, -3, 4911 -5, -2, -4, -2, -3, -2, -1, -2, 0, -2, 1, -2, 3, -2, 4, -2, 5, -2, 4912 -6, -1, -2, -1, -1, -1, 1, -1, 2, -1, 6, -1, 4913 -6, 0, -4, 0, -3, 0, -2, 0, 0, 0, 2, 0, 3, 0, 4, 0, 5, 0, 4914 -5, 1, 4915 -3, 2, -1, 2, 1, 2, 3, 2, 4, 2, 6, 2, 4916 -4, 3, -3, 3, -1, 3, 0, 3, 1, 3, 3, 3, 5, 3, 6, 3, 4917 -3, 4, -1, 4, 2, 4, 4918 -3, 5, 0, 5, 1, 5, 4919 -4, 6, -3, 6, 4920 127 4921 }, 4922 #ifdef LIFE_NAMES 4923 {"negentropy"}, /* 126 */ 4924 #endif 4925 { 4926 -2, -6, -1, -6, 1, -6, 4927 -2, -5, 0, -5, 1, -5, 4928 -1, -3, 0, -3, 1, -3, 4929 -2, -2, 0, -2, 2, -2, 4, -2, 5, -2, 4930 -2, -1, -1, -1, 2, -1, 4, -1, 5, -1, 4931 -5, 0, -4, 0, -2, 0, 2, 0, 4932 -5, 1, -4, 1, -2, 1, 2, 1, 4933 -1, 2, 0, 2, 1, 2, 4934 -1, 4, 0, 4, 2, 4, 4935 -1, 5, 1, 5, 2, 5, 4936 127 4937 }, 4938 #ifdef LIFE_NAMES 4939 {"new five (p3)"}, /* 127 */ 4940 #endif 4941 { 4942 -2, -4, -1, -4, 4943 -3, -3, 0, -3, 4944 -3, -2, -1, -2, 2, -2, 4945 -4, -1, -3, -1, -1, -1, 1, -1, 2, -1, 4946 -4, 0, 4947 -3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 4948 1, 2, 4, 2, 4949 -4, 3, -2, 3, -1, 3, 4950 -4, 4, -3, 4, -1, 4, 0, 4, 4951 127 4952 }, 4953 #ifdef LIFE_NAMES 4954 {"Noah's ark (2 switch engines)"}, /* 128 */ 4955 #endif 4956 { 4957 3, -7, 5, -7, 4958 2, -6, 4959 3, -5, 6, -5, 4960 5, -4, 6, -4, 7, -4, 4961 -6, 2, 4962 -7, 3, -5, 3, 4963 -7, 5, -4, 5, 4964 -5, 6, -4, 6, 4965 -4, 7, 4966 127 4967 }, 4968 #ifdef LIFE_NAMES 4969 {"octagon II (p5) (shining flower)"}, /* 129 */ 4970 #endif 4971 { 4972 -1, -4, 0, -4, 4973 -2, -3, 1, -3, 4974 -3, -2, 2, -2, 4975 -4, -1, 3, -1, 4976 -4, 0, 3, 0, 4977 -3, 1, 2, 1, 4978 -2, 2, 1, 2, 4979 -1, 3, 0, 3, 4980 127 4981 }, 4982 #ifdef LIFE_NAMES 4983 {"octagon IV (p4)"}, /* 130 */ 4984 #endif 4985 { 4986 -1, -8, 0, -8, 4987 -1, -7, 0, -7, 4988 -2, -5, -1, -5, 0, -5, 1, -5, 4989 -3, -4, 2, -4, 4990 -4, -3, 3, -3, 4991 -5, -2, 4, -2, 4992 -8, -1, -7, -1, -5, -1, 4, -1, 6, -1, 7, -1, 4993 -8, 0, -7, 0, -5, 0, 4, 0, 6, 0, 7, 0, 4994 -5, 1, 4, 1, 4995 -4, 2, 3, 2, 4996 -3, 3, 2, 3, 4997 -2, 4, -1, 4, 0, 4, 1, 4, 4998 -1, 6, 0, 6, 4999 -1, 7, 0, 7, 5000 127 5001 }, 5002 #ifdef LIFE_NAMES 5003 {"odd keys (p3), fom Lexicon"}, /* 131 */ 5004 #endif 5005 { 5006 4, -2, 5007 -5, -1, 3, -1, 5, -1, 5008 -6, 0, -4, 0, -3, 0, -2, 0, 1, 0, 2, 0, 4, 0, 5009 -5, 1, -2, 1, 1, 1, 5010 -2, 2, 1, 2, 5011 127 5012 }, 5013 #if 0 5014 #ifdef LIFE_NAMES 5015 {"Orion (c/4 diagonal, p4) (big glider 1)"}, /* --- */ 5016 #endif 5017 { 5018 -4, -7, -3, -7, 5019 -4, -6, -2, -6, 5020 -4, -5, 5021 -7, -4, -6, -4, -4, -4, 5022 -7, -3, -2, -3, 5023 -7, -2, -5, -2, -4, -2, 3, -2, 4, -2, 5, -2, 5024 -2, -1, -1, -1, 0, -1, 5, -1, 6, -1, 5025 -1, 0, 0, 0, 1, 0, 3, 0, 5, 0, 5026 6, 1, 5027 -1, 2, 1, 2, 5028 -2, 3, -1, 3, 1, 3, 5029 -1, 4, 5030 -3, 5, -2, 5, 0, 5, 5031 0, 6, 5032 -2, 7, -1, 7, 5033 127 5034 }, 5035 #endif 5036 #ifdef LIFE_NAMES 5037 {"Orion (c/4 diagonal, p4) (smaller variant)"}, 5038 #endif 5039 { 5040 -5, -6, -4, -6, 5041 -6, -5, -5, -5, 5042 -4, -4, 5043 -2, -3, 3, -3, 4, -3, 5, -3, 5044 -2, -2, -1, -2, 0, -2, 5, -2, 6, -2, 5045 -1, -1, 0, -1, 1, -1, 3, -1, 5, -1, 5046 6, 0, 5047 -1, 1, 1, 1, 5048 -2, 2, -1, 2, 1, 2, 5049 -1, 3, 5050 -3, 4, -2, 4, 0, 4, 5051 0, 5, 5052 -2, 6, -1, 6, 5053 127 5054 }, 5055 #ifdef LIFE_NAMES 5056 {"p22 oscillator"}, 5057 #endif 5058 { 5059 -13, -5, -12, -5, 5060 -12, -4, 5061 -12, -3, -10, -3, 5, -3, 6, -3, 5062 -11, -2, -10, -2, 3, -2, 4, -2, 7, -2, 5063 -7, -1, -6, -1, -5, -1, 3, -1, 4, -1, 6, -1, 7, -1, 5064 -7, 0, -6, 0, -4, 0, -3, 0, 5, 0, 6, 0, 7, 0, 5065 -7, 1, -4, 1, -3, 1, 10, 1, 11, 1, 5066 -6, 2, -5, 2, 10, 2, 12, 2, 5067 12, 3, 5068 12, 4, 13, 4, 5069 127 5070 }, 5071 #ifdef LIFE_NAMES 5072 {"p54 shuttle (piston3)"}, 5073 #endif 5074 { 5075 -14, -8, -13, -8, 13, -8, 14, -8, 5076 -13, -7, 13, -7, 5077 -13, -6, -11, -6, 11, -6, 13, -6, 5078 -12, -5, -11, -5, -1, -5, 11, -5, 12, -5, 5079 0, -4, 5080 -6, -3, -5, -3, 1, -3, 5081 -6, -2, -5, -2, -2, -2, 0, -2, 5082 -1, -1, 5083 -1, 1, 5084 -6, 2, -5, 2, -2, 2, 0, 2, 5085 -6, 3, -5, 3, 1, 3, 5086 0, 4, 5087 -12, 5, -11, 5, -1, 5, 11, 5, 12, 5, 5088 -13, 6, -11, 6, 11, 6, 13, 6, 5089 -13, 7, 13, 7, 5090 -14, 8, -13, 8, 13, 8, 14, 8, 5091 127 5092 }, 5093 #ifdef LIFE_NAMES 5094 {"pedestle (p5)"}, 5095 #endif 5096 { 5097 0, -8, 5098 -1, -7, 1, -7, 5099 -4, -6, -1, -6, 0, -6, 5100 -4, -5, -3, -5, -2, -5, 5101 0, -4, 1, -4, 2, -4, 5102 -2, -3, -1, -3, 3, -3, 5103 -3, -2, 2, -2, 5, -2, 5104 -4, -1, -2, -1, 0, -1, 2, -1, 4, -1, 5, -1, 5105 -4, 0, -2, 0, 2, 0, 4, 0, 5106 -5, 1, -4, 1, -2, 1, 0, 1, 2, 1, 4, 1, 5107 -5, 2, -2, 2, 3, 2, 5108 -3, 3, 1, 3, 2, 3, 5109 -2, 4, -1, 4, 0, 4, 5110 2, 5, 3, 5, 4, 5, 5111 0, 6, 1, 6, 4, 6, 5112 -1, 7, 1, 7, 5113 0, 8, 5114 127 5115 }, 5116 #ifdef LIFE_NAMES 5117 {"penny lane (p4)"}, 5118 #endif 5119 { 5120 -4, -5, -3, -5, 3, -5, 4, -5, 5121 -4, -4, 4, -4, 5122 -7, -3, -6, -3, -4, -3, 4, -3, 6, -3, 7, -3, 5123 -7, -2, -6, -2, -4, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 5124 4, -2, 6, -2, 7, -2, 5125 -3, -1, 0, -1, 3, -1, 5126 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 5127 0, 2, 5128 -1, 3, 1, 3, 5129 0, 4, 5130 127 5131 }, 5132 #ifdef LIFE_NAMES 5133 {"pentadecathlon (p15)"}, 5134 #endif 5135 { 5136 /* -5, 0, -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, */ 5137 1, -4, 5138 1, -3, 3, -3, 5139 1, -2, 2, -2, 5140 -5, 0, -4, 0, -3, 0, 5141 -3, 1, 5142 -4, 2, 2, 2, 3, 2, 5143 3, 3, 4, 3, 5144 2, 4, 5145 127 5146 }, 5147 #ifdef LIFE_NAMES 5148 {"pentant (p5)"}, 5149 #endif 5150 { 5151 -5, -6, -4, -6, 5152 -4, -5, 5153 -4, -4, -2, -4, 5154 -3, -3, -2, -3, 3, -3, 4, -3, 5155 4, -2, 5156 0, -1, 1, -1, 2, -1, 3, -1, 5157 0, 0, 5158 -3, 1, 1, 1, 2, 1, 3, 1, 5159 -3, 2, -2, 2, -1, 2, 0, 2, 3, 2, 5160 0, 3, 5161 -1, 4, 5162 -1, 5, 0, 5, 5163 127 5164 }, 5165 #ifdef LIFE_NAMES 5166 {"pentoad (p5)"}, 5167 #endif 5168 { 5169 5, -6, 6, -6, 5170 5, -5, 5171 3, -4, 5, -4, 5172 3, -3, 4, -3, 5173 -1, -2, 0, -2, 5174 0, -1, 5175 0, 0, 5176 0, 1, 1, 1, 5177 -4, 2, -3, 2, 5178 -5, 3, -3, 3, 5179 -5, 4, 5180 -6, 5, -5, 5, 5181 127 5182 }, 5183 #ifdef LIFE_NAMES 5184 {"pi oscillator (p88)"}, 5185 #endif 5186 { 5187 6, -12, 5188 4, -11, 5, -11, 6, -11, 5189 3, -10, 5190 3, -9, 4, -9, 5191 -13, -8, -12, -8, 8, -8, 9, -8, 5192 -12, -7, 8, -7, 5193 -12, -6, -10, -6, 6, -6, 8, -6, 5194 -11, -5, -10, -5, 6, -5, 7, -5, 5195 0, -3, 1, -3, 2, -3, 5196 0, -2, 2, -2, 5197 0, -1, 2, -1, 5198 -7, 5, -6, 5, 10, 5, 11, 5, 5199 -8, 6, -6, 6, 10, 6, 12, 6, 5200 -8, 7, 12, 7, 5201 -9, 8, -8, 8, 12, 8, 13, 8, 5202 -4, 9, -3, 9, 5203 -3, 10, 5204 -6, 11, -5, 11, -4, 11, 5205 -6, 12, 5206 127 5207 }, 5208 #ifdef LIFE_NAMES 5209 {"pipsquirter (example) (p6)"}, 5210 #endif 5211 { 5212 -2, -7, 5213 -2, -6, 5214 -4, -4, 0, -4, 5215 -6, -3, -5, -3, -4, -3, -2, -3, 0, -3, 1, -3, 2, -3, 5216 -7, -2, -3, -2, -2, -2, 3, -2, 5217 -7, -1, -5, -1, -4, -1, -1, -1, 0, -1, 2, -1, 4, -1, 5218 -6, 0, -3, 0, -2, 0, 1, 0, 2, 0, 4, 0, 5219 -5, 1, -4, 1, -1, 1, 0, 1, 2, 1, 4, 1, 6, 1, 7, 1, 5220 -3, 2, 0, 2, 2, 2, 4, 2, 6, 2, 7, 2, 5221 -3, 3, -2, 3, -1, 3, 0, 3, 2, 3, 3, 3, 5222 1, 4, 5223 -1, 5, 1, 5, 5224 -1, 6, 0, 6, 5225 127 5226 }, 5227 #ifdef LIFE_NAMES 5228 {"pi ship with fuse (], near ship)"}, 5229 #endif 5230 { 5231 0, -2, 5232 -1, -1, 1, -1, 5233 -12, 0, -11, 0, -2, 0, -1, 0, 1, 0, 2, 0, 11, 0, 12, 0, 5234 -12, 1, -11, 1, 11, 1, 12, 1, 5235 127 5236 }, 5237 #ifdef LIFE_NAMES 5238 {"piston"}, 5239 #endif 5240 { 5241 -5, -2, -4, -2, 4, -2, 5, -2, 5242 -5, -1, -3, -1, 0, -1, 3, -1, 5, -1, 5243 -3, 0, -2, 0, -1, 0, 0, 0, 3, 0, 5244 -5, 1, -3, 1, 0, 1, 3, 1, 5, 1, 5245 -5, 2, -4, 2, 4, 2, 5, 2, 5246 127 5247 }, 5248 #ifdef LIFE_NAMES 5249 {"pre-pulsar oscillator (p28) (4 molds, flutter)"}, 5250 #endif 5251 { 5252 -9, -7, -7, -7, 7, -7, 9, -7, 5253 -6, -6, 6, -6, 5254 -10, -5, -7, -5, 7, -5, 10, -5, 5255 -11, -4, -9, -4, -7, -4, 7, -4, 9, -4, 11, -4, 5256 -11, -3, -8, -3, 8, -3, 11, -3, 5257 -10, -2, -9, -2, -4, -2, -3, -2, -2, -2, 5258 2, -2, 3, -2, 4, -2, 9, -2, 10, -2, 5259 -3, -1, 3, -1, 5260 -10, 1, -9, 1, 9, 1, 10, 1, 5261 -11, 2, -8, 2, 8, 2, 11, 2, 5262 -11, 3, -9, 3, -6, 3, 6, 3, 9, 3, 11, 3, 5263 -10, 4, 10, 4, 5264 -9, 5, -8, 5, -6, 5, 6, 5, 8, 5, 9, 5, 5265 -7, 6, 7, 6, 5266 127 5267 }, 5268 #ifdef LIFE_NAMES 5269 {"pressure cooker (p3)"}, 5270 #endif 5271 { 5272 0, -6, 5273 -1, -5, 1, -5, 5274 -1, -4, 1, -4, 5275 -2, -3, -1, -3, 1, -3, 2, -3, 5276 -5, -2, -3, -2, 3, -2, 5, -2, 5277 -5, -1, -4, -1, -2, -1, 0, -1, 2, -1, 4, -1, 5, -1, 5278 -2, 0, 2, 0, 5279 -2, 1, 2, 1, 5280 -1, 2, 0, 2, 1, 2, 5281 -2, 4, 0, 4, 1, 4, 5282 -2, 5, -1, 5, 1, 5, 5283 127 5284 }, 5285 #ifdef LIFE_NAMES 5286 {"protein (p3)"}, 5287 #endif 5288 { 5289 -2, -6, -1, -6, 5290 -2, -5, 5291 0, -4, 5292 -4, -3, -3, -3, -2, -3, -1, -3, 1, -3, 3, -3, 4, -3, 5293 -5, -2, 1, -2, 3, -2, 6, -2, 5294 -5, -1, -2, -1, -1, -1, 1, -1, 3, -1, 5, -1, 6, -1, 5295 -6, 0, -5, 0, -3, 0, 3, 0, 5296 -3, 1, 0, 1, 1, 1, 3, 1, 5297 -3, 2, 2, 2, 5298 -2, 3, -1, 3, 0, 3, 1, 3, 5299 -2, 5, -1, 5, 5300 -2, 6, -1, 6, 5301 127 5302 }, 5303 #ifdef LIFE_NAMES 5304 {"puffer (example)"}, 5305 #endif 5306 { 5307 -12, -3, -11, -3, -10, -3, -3, -3, 3, -3, 10, -3, 11, -3, 5308 12, -3, 5309 -13, -2, -10, -2, -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, 5310 -2, 10, -2, 13, -2, 5311 -10, -1, -5, -1, -4, -1, -2, -1, 2, -1, 4, -1, 5, -1, 10, -1, 5312 -10, 0, 10, 0, 5313 -10, 1, -7, 1, 7, 1, 10, 1, 5314 -10, 2, -7, 2, -6, 2, 6, 2, 7, 2, 10, 2, 5315 -11, 3, -7, 3, -6, 3, 6, 3, 7, 3, 11, 3, 5316 127 5317 }, 5318 #ifdef LIFE_NAMES 5319 {"puffer train"}, 5320 #endif 5321 { 5322 1, -9, 5323 2, -8, 5324 -2, -7, 2, -7, 5325 -1, -6, 0, -6, 1, -6, 2, -6, 5326 -2, -2, 5327 -1, -1, 0, -1, 5328 0, 0, 5329 0, 1, 5330 -1, 2, 5331 1, 5, 5332 2, 6, 5333 -2, 7, 2, 7, 5334 -1, 8, 0, 8, 1, 8, 2, 8, 5335 127 5336 }, 5337 #ifdef LIFE_NAMES 5338 {"pulsar (p3) (pulsar CP 48-56-72)"}, 5339 #endif 5340 { 5341 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 5342 -2, 0, 2, 0, 5343 127 5344 }, 5345 #ifdef LIFE_NAMES 5346 {"pushalong (example)"}, 5347 #endif 5348 { 5349 -4, -6, -3, -6, -2, -6, 0, -6, 5350 -5, -5, -4, -5, -3, -5, -2, -5, 0, -5, 5351 -6, -4, -5, -4, 5352 -5, -3, -3, -3, 5353 -4, -2, -3, -2, -2, -2, -1, -2, 1, -2, 5354 -3, -1, -2, -1, -1, -1, 5355 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5356 0, 3, 5, 3, 5357 0, 4, 5358 1, 5, 5, 5, 5359 3, 6, 5360 127 5361 }, 5362 #ifdef LIFE_NAMES 5363 {"pyrotechnecium (p8)"}, 5364 #endif 5365 { 5366 -1, -5, 5367 -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 5368 -4, -3, 2, -3, 5369 -7, -2, -4, -2, -2, -2, 0, -2, 1, -2, 3, -2, 5370 -8, -1, -6, -1, -4, -1, -2, -1, 3, -1, 6, -1, 5371 -7, 0, -4, 0, 1, 0, 3, 0, 5, 0, 7, 0, 5372 -4, 1, -2, 1, -1, 1, 1, 1, 3, 1, 6, 1, 5373 -3, 2, 3, 2, 5374 -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 5375 0, 4, 5376 127 5377 }, 5378 #ifdef LIFE_NAMES 5379 {"R2D2 (p8)"}, 5380 #endif 5381 { 5382 0, -5, 5383 -1, -4, 1, -4, 5384 -2, -3, 0, -3, 2, -3, 5385 -2, -2, 0, -2, 2, -2, 5386 -5, -1, -4, -1, -2, -1, 2, -1, 4, -1, 5, -1, 5387 -5, 0, -4, 0, -2, 0, 2, 0, 4, 0, 5, 0, 5388 -2, 1, 2, 1, 5389 -2, 2, 0, 2, 2, 2, 5390 -1, 3, 1, 3, 5391 0, 4, 5392 127 5393 }, 5394 #ifdef LIFE_NAMES 5395 {"rake p20 backwards"}, 5396 #endif 5397 { 5398 0, -10, 1, -10, 10, -10, 5399 -1, -9, 0, -9, 1, -9, 2, -9, 11, -9, 5400 -1, -8, 0, -8, 2, -8, 3, -8, 7, -8, 11, -8, 5401 1, -7, 2, -7, 8, -7, 9, -7, 10, -7, 11, -7, 5402 6, -3, 7, -3, 5403 5, -2, 6, -2, 8, -2, 9, -2, 5404 6, -1, 9, -1, 5405 6, 0, 9, 0, 5406 7, 1, 8, 1, 5407 10, 4, 5408 11, 5, 5409 -8, 6, 7, 6, 11, 6, 5410 -7, 7, 8, 7, 9, 7, 10, 7, 11, 7, 5411 -11, 8, -7, 8, 5412 -10, 9, -9, 9, -8, 9, -7, 9, 5413 127 5414 }, 5415 #ifdef LIFE_NAMES 5416 {"rake p20 forwards"}, 5417 #endif 5418 { 5419 0, -10, 1, -10, 10, -10, 5420 -1, -9, 0, -9, 1, -9, 2, -9, 11, -9, 5421 -1, -8, 0, -8, 2, -8, 3, -8, 7, -8, 11, -8, 5422 1, -7, 2, -7, 8, -7, 9, -7, 10, -7, 11, -7, 5423 6, -3, 7, -3, 5424 5, -2, 6, -2, 8, -2, 9, -2, 5425 6, -1, 9, -1, 5426 6, 0, 9, 0, 5427 7, 1, 8, 1, 5428 10, 4, 5429 11, 5, 5430 7, 6, 11, 6, 5431 -9, 7, -8, 7, -7, 7, -6, 7, 8, 7, 9, 7, 10, 7, 11, 7, 5432 -10, 8, -6, 8, 5433 -6, 9, 5434 -7, 10, 5435 127 5436 }, 5437 #ifdef LIFE_NAMES 5438 {"rake p24 backwards"}, 5439 #endif 5440 { 5441 -5, -10, 5442 -4, -9, 5443 -10, -8, -4, -8, 5444 -9, -7, -8, -7, -7, -7, -6, -7, -5, -7, -4, -7, 5445 6, -6, 7, -6, 5446 5, -5, 6, -5, 7, -5, 8, -5, 5447 5, -4, 6, -4, 8, -4, 9, -4, 5448 7, -3, 8, -3, 5449 0, -2, 2, -2, 5450 -1, -1, 2, -1, 3, -1, 5451 0, 0, 2, 0, 5452 7, 1, 8, 1, 5453 5, 2, 6, 2, 8, 2, 9, 2, 5454 5, 3, 6, 3, 7, 3, 8, 3, 5455 6, 4, 7, 4, 5456 -5, 6, -4, 6, 5457 -9, 7, -8, 7, -7, 7, -6, 7, -4, 7, -3, 7, 5458 -9, 8, -8, 8, -7, 8, -6, 8, -5, 8, -4, 8, 5459 -8, 9, -7, 9, -6, 9, -5, 9, 5460 127 5461 }, 5462 #ifdef LIFE_NAMES 5463 {"rats (p6)"}, 5464 #endif 5465 { 5466 -1, -5, 0, -5, 5467 0, -4, 5468 -2, -3, 5469 -6, -2, -5, -2, -3, -2, -1, -2, 0, -2, 1, -2, 2, -2, 5470 -6, -1, -5, -1, -3, -1, 3, -1, 5, -1, 5471 -3, 0, 0, 0, 1, 0, 2, 0, 4, 0, 5, 0, 5472 -3, 1, 2, 1, 5473 -2, 2, -1, 2, 0, 2, 2, 2, 5474 1, 3, 5475 0, 4, 5476 0, 5, 1, 5, 5477 127 5478 }, 5479 #ifdef LIFE_NAMES 5480 {"reflector (figure-8 example)"}, 5481 #endif 5482 { 5483 -2, -7, -1, -7, 5, -7, 6, -7, 5484 -8, -6, -6, -6, -2, -6, -1, -6, 5, -6, 5485 -7, -5, -6, -5, 3, -5, 5, -5, 5486 -7, -4, 3, -4, 4, -4, 5487 -1, -3, 0, -3, 5488 -1, -2, 1, -2, 5489 0, -1, 5490 3, 1, 4, 1, 5, 1, 5491 3, 2, 4, 2, 5, 2, 5492 3, 3, 4, 3, 5, 3, 5493 6, 4, 7, 4, 8, 4, 5494 6, 5, 7, 5, 8, 5, 5495 6, 6, 7, 6, 8, 6, 5496 127 5497 }, 5498 #ifdef LIFE_NAMES 5499 {"relay (p(60+120n))"}, 5500 #endif 5501 { 5502 10, -3, 15, -3, 5503 -1, -2, 0, -2, 8, -2, 9, -2, 11, -2, 12, -2, 13, -2, 14, -2, 5504 16, -2, 17, -2, 5505 0, -1, 1, -1, 10, -1, 15, -1, 5506 -1, 0, 5507 -15, 1, -10, 1, 5508 -17, 2, -16, 2, -14, 2, -13, 2, -12, 2, -11, 2, -9, 2, -8, 2, 5509 -15, 3, -10, 3, 5510 127 5511 }, 5512 #if 0 5513 #ifdef LIFE_NAMES 5514 {"rephaser"}, 5515 #endif 5516 { 5517 -2, -3, 1, -3, 5518 -4, -2, -2, -2, 1, -2, 3, -2, 5519 -3, -1, -2, -1, 1, -1, 2, -1, 5520 -1, 2, 0, 2, 5521 -1, 3, 0, 3, 5522 127 5523 }, 5524 #endif 5525 #ifdef LIFE_NAMES 5526 {"R-pentomino (stabilizes at 1103)"}, 5527 #endif 5528 { 5529 0, -1, 1, -1, 5530 -1, 0, 0, 0, 5531 0, 1, 5532 127 5533 }, 5534 #ifdef LIFE_NAMES 5535 {"Schick engine (c/2, p12) (sym puffer)"}, 5536 #endif 5537 { 5538 1, -4, 2, -4, 3, -4, 4, -4, 5539 0, -3, 4, -3, 5540 4, -2, 5541 -4, -1, -3, -1, 0, -1, 3, -1, 5542 -4, 0, -3, 0, -2, 0, 5543 -4, 1, -3, 1, 0, 1, 3, 1, 5544 4, 2, 5545 0, 3, 4, 3, 5546 1, 4, 2, 4, 3, 4, 4, 4, 5547 127 5548 }, 5549 #if 0 5550 #ifdef LIFE_NAMES 5551 {"scrubber"}, 5552 #endif 5553 { 5554 -1, -5, 5555 -3, -4, -2, -4, -1, -4, 5556 -4, -3, 5557 -4, -2, -1, -2, 0, -2, 1, -2, 5558 -5, -1, -4, -1, -2, -1, 2, -1, 5559 -2, 0, 2, 0, 5560 -2, 1, 2, 1, 4, 1, 5, 1, 5561 -1, 2, 0, 2, 1, 2, 4, 2, 5562 4, 3, 5563 1, 4, 2, 4, 3, 4, 5564 1, 5, 5565 127 5566 }, 5567 #endif 5568 #ifdef LIFE_NAMES 5569 {"ship2 (c/4, p4)"}, 5570 #endif 5571 { 5572 -4, -9, -3, -9, -2, -9, 5573 -5, -8, -1, -8, 0, -8, 5574 2, -7, 5575 -5, -6, -1, -6, 3, -6, 4, -6, 5576 -5, -5, -1, -5, 2, -5, 5577 -1, -4, 0, -4, 5578 -5, -3, -1, -3, 5579 -5, -2, -1, -2, 5580 -3, -1, -2, -1, -1, -1, 5581 -3, 1, -2, 1, -1, 1, 5582 -5, 2, -1, 2, 5583 -5, 3, -1, 3, 5584 -1, 4, 0, 4, 5585 -5, 5, -1, 5, 2, 5, 5586 -5, 6, -1, 6, 3, 6, 4, 6, 5587 2, 7, 5588 -5, 8, -1, 8, 0, 8, 5589 -4, 9, -3, 9, -2, 9, 5590 127 5591 }, 5592 #ifdef LIFE_NAMES 5593 {"ship2 (2c/5, p5)"}, 5594 #endif 5595 { 5596 1, -7, 3, -7, 5597 -2, -6, 3, -6, 5598 -3, -5, -2, -5, -1, -5, 4, -5, 5599 -4, -4, -2, -4, 5600 -5, -3, -4, -3, -1, -3, 0, -3, 5, -3, 5601 -4, -2, -3, -2, 0, -2, 1, -2, 2, -2, 3, -2, 4, -2, 5602 -4, 2, -3, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5603 -5, 3, -4, 3, -1, 3, 0, 3, 5, 3, 5604 -4, 4, -2, 4, 5605 -3, 5, -2, 5, -1, 5, 4, 5, 5606 -2, 6, 3, 6, 5607 1, 7, 3, 7, 5608 127 5609 }, 5610 #ifdef LIFE_NAMES 5611 {"ship2 (c/4, p4)"}, 5612 #endif 5613 { 5614 -4, -9, -3, -9, -2, -9, 5615 -5, -8, -1, -8, 0, -8, 5616 2, -7, 5617 -5, -6, -1, -6, 3, -6, 4, -6, 5618 -5, -5, -1, -5, 2, -5, 5619 -1, -4, 0, -4, 5620 -5, -3, -1, -3, 5621 -5, -2, -1, -2, 5622 -3, -1, -2, -1, -1, -1, 5623 -3, 1, -2, 1, -1, 1, 5624 -5, 2, -1, 2, 5625 -5, 3, -1, 3, 5626 -1, 4, 0, 4, 5627 -5, 5, -1, 5, 2, 5, 5628 -5, 6, -1, 6, 3, 6, 4, 6, 5629 2, 7, 5630 -5, 8, -1, 8, 0, 8, 5631 -4, 9, -3, 9, -2, 9, 5632 127 5633 }, 5634 #ifdef LIFE_NAMES 5635 {"ship2 (c/2, p4)"}, 5636 #endif 5637 { 5638 -4, -7, -3, -7, -1, -7, 0, -7, 1, -7, 2, -7, 3, -7, 4, -7, 5639 -5, -6, -4, -6, -3, -6, -2, -6, 5, -6, 5640 -6, -5, -5, -5, 5641 -5, -4, 5, -4, 5642 -4, -3, -3, -3, -2, -3, 0, -3, 5643 -2, -2, 5644 -2, -1, 5645 -1, 0, 5646 -2, 1, 5647 -2, 2, 5648 -4, 3, -3, 3, -2, 3, 0, 3, 5649 -5, 4, 5, 4, 5650 -6, 5, -5, 5, 5651 -5, 6, -4, 6, -3, 6, -2, 6, 5, 6, 5652 -4, 7, -3, 7, -1, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5653 127 5654 }, 5655 #ifdef LIFE_NAMES 5656 {"short keys (p3)"}, 5657 #endif 5658 { 5659 -5, -2, 4, -2, 5660 -6, -1, -4, -1, -3, -1, -2, -1, 1, -1, 2, -1, 3, -1, 5, -1, 5661 -5, 0, -2, 0, 1, 0, 4, 0, 5662 -2, 1, 1, 1, 5663 127 5664 }, 5665 #ifdef LIFE_NAMES 5666 {"shower tub (p8) (part of oscillators)"}, 5667 #endif 5668 { 5669 -3, -6, -2, -6, 2, -6, 3, -6, 5670 -4, -5, -2, -5, 2, -5, 4, -5, 5671 -4, -4, 4, -4, 5672 -7, -3, -6, -3, -4, -3, -3, -3, 3, -3, 4, -3, 6, -3, 7, -3, 5673 -7, -2, -6, -2, -4, -2, 0, -2, 4, -2, 6, -2, 7, -2, 5674 -4, -1, -2, -1, 2, -1, 4, -1, 5675 -4, 0, -2, 0, 2, 0, 4, 0, 5676 -5, 1, -4, 1, -2, 1, 2, 1, 4, 1, 5, 1, 5677 -4, 2, -1, 2, 0, 2, 1, 2, 4, 2, 5678 -4, 3, 4, 3, 6, 3, 5679 -3, 4, -2, 4, -1, 4, 5, 4, 6, 4, 5680 -1, 5, 5681 127 5682 }, 5683 #ifdef LIFE_NAMES 5684 {"side-shooting gun (portion)"}, 5685 #endif 5686 { 5687 6, -10, 7, -10, 5688 6, -9, 7, -9, 5689 0, -8, 1, -8, 2, -8, 5690 2, -7, 5691 1, -6, 7, -6, 8, -6, 5692 6, -5, 8, -5, 5693 8, -4, 5694 -7, 7, 5695 -7, 8, -6, 8, 5696 -8, 9, -6, 9, 5697 127 5698 }, 5699 #ifdef LIFE_NAMES 5700 {"siesta (p5)"}, 5701 #endif 5702 { 5703 3, -6, 4, -6, 5704 -5, -5, -4, -5, 2, -5, 4, -5, 5705 -5, -4, -3, -4, 2, -4, 5706 -3, -3, 1, -3, 2, -3, 4, -3, 5707 -5, -2, -3, -2, -2, -2, 4, -2, 5, -2, 6, -2, 5708 -7, -1, -6, -1, -5, -1, 1, -1, 3, -1, 7, -1, 5709 -8, 0, -4, 0, -2, 0, 4, 0, 5, 0, 6, 0, 5710 -7, 1, -6, 1, -5, 1, 1, 1, 2, 1, 4, 1, 5711 -5, 2, -3, 2, -2, 2, 2, 2, 5712 -3, 3, 2, 3, 4, 3, 5713 -5, 4, -3, 4, 3, 4, 4, 4, 5714 -5, 5, -4, 5, 5715 127 5716 }, 5717 #ifdef LIFE_NAMES 5718 {"six Ls (p3)"}, 5719 #endif 5720 { 5721 0, -4, 5722 -2, -3, -1, -3, 0, -3, 3, -3, 5723 -3, -2, 1, -2, 2, -2, 3, -2, 5724 -3, -1, -2, -1, -1, -1, 5725 1, 0, 2, 0, 3, 0, 5726 -3, 1, -2, 1, -1, 1, 3, 1, 5727 -3, 2, 0, 2, 1, 2, 2, 2, 5728 0, 3, 5729 127 5730 }, 5731 #ifdef LIFE_NAMES 5732 {"smiley (p8)"}, 5733 #endif 5734 { 5735 -3, -3, -2, -3, -1, -3, 1, -3, 2, -3, 3, -3, 5736 -2, -2, 0, -2, 2, -2, 5737 -2, 0, 2, 0, 5738 -3, 2, -1, 2, 1, 2, 3, 2, 5739 -1, 3, 1, 3, 5740 127 5741 }, 5742 #ifdef LIFE_NAMES 5743 {"snacker (p9)"}, 5744 #endif 5745 { 5746 -10, -5, -9, -5, 8, -5, 9, -5, 5747 -9, -4, 8, -4, 5748 -9, -3, -7, -3, 6, -3, 8, -3, 5749 -8, -2, -7, -2, 6, -2, 7, -2, 5750 -3, -1, 2, -1, 5751 -5, 0, -4, 0, -2, 0, -1, 0, 0, 0, 1, 0, 3, 0, 4, 0, 5752 -3, 1, 2, 1, 5753 -8, 2, -7, 2, 6, 2, 7, 2, 5754 -9, 3, -7, 3, 6, 3, 8, 3, 5755 -9, 4, 8, 4, 5756 -10, 5, -9, 5, 8, 5, 9, 5, 5757 127 5758 }, 5759 #ifdef LIFE_NAMES 5760 {"sombreros (p6)"}, 5761 #endif 5762 { 5763 -6, -5, -5, -5, 4, -5, 5, -5, 5764 -6, -4, -4, -4, 3, -4, 5, -4, 5765 -4, -3, 3, -3, 5766 -6, -2, -4, -2, -3, -2, 2, -2, 3, -2, 5, -2, 5767 -8, -1, -7, -1, -6, -1, 5, -1, 6, -1, 7, -1, 5768 -9, 0, -5, 0, -3, 0, 2, 0, 4, 0, 8, 0, 5769 -8, 1, -7, 1, -6, 1, 5, 1, 6, 1, 7, 1, 5770 -6, 2, -4, 2, -3, 2, 2, 2, 3, 2, 5, 2, 5771 -4, 3, 3, 3, 5772 -6, 4, -4, 4, 3, 4, 5, 4, 5773 -6, 5, -5, 5, 4, 5, 5, 5, 5774 127 5775 }, 5776 #ifdef LIFE_NAMES 5777 {"spider (c/5, p5)"}, 5778 #endif 5779 { 5780 0, -13, 1, -13, 5781 -3, -12, -2, -12, 1, -12, 5782 -3, -11, -2, -11, 1, -11, 5783 2, -10, 5784 -3, -9, -1, -9, 0, -9, 1, -9, 2, -9, 5785 -4, -8, -3, -8, -1, -8, 5786 0, -7, 1, -7, 2, -7, 5787 1, -6, 5788 1, -5, 2, -5, 5789 3, -4, 5790 2, -3, 5791 2, -2, 5792 -2, -1, -1, -1, 0, -1, 5793 -2, 1, -1, 1, 0, 1, 5794 2, 2, 5795 2, 3, 5796 3, 4, 5797 1, 5, 2, 5, 5798 1, 6, 5799 0, 7, 1, 7, 2, 7, 5800 -4, 8, -3, 8, -1, 8, 5801 -3, 9, -1, 9, 0, 9, 1, 9, 2, 9, 5802 2, 10, 5803 -3, 11, -2, 11, 1, 11, 5804 -3, 12, -2, 12, 1, 12, 5805 0, 13, 1, 13, 5806 127 5807 }, 5808 #ifdef LIFE_NAMES 5809 {"stillater (p3)"}, 5810 #endif 5811 { 5812 -1, -4, 5813 -2, -3, 0, -3, 2, -3, 3, -3, 5814 -2, -2, 0, -2, 1, -2, 3, -2, 5815 -4, -1, -3, -1, 5816 -3, 0, -1, 0, 1, 0, 2, 0, 5817 -3, 1, -1, 1, 2, 1, 5818 -2, 2, 1, 2, 5819 -1, 3, 0, 3, 5820 127 5821 }, 5822 #ifdef LIFE_NAMES 5823 {"surprise (p3)"}, 5824 #endif 5825 { 5826 -2, -4, 3, -4, 4, -4, 5827 -2, -3, -1, -3, 0, -3, 3, -3, 5828 -4, -2, -3, -2, 1, -2, 3, -2, 5829 -5, -1, -2, -1, -1, -1, 1, -1, 3, -1, 4, -1, 5830 -4, 0, 3, 0, 5831 -5, 1, -4, 1, -2, 1, 0, 1, 1, 1, 4, 1, 5832 -4, 2, -2, 2, 2, 2, 3, 2, 5833 -4, 3, -1, 3, 0, 3, 1, 3, 5834 -5, 4, -4, 4, 1, 4, 5835 127 5836 }, 5837 #ifdef LIFE_NAMES 5838 {"swan (c/4, p4) (small diagonal sparker)"}, 5839 #endif 5840 { 5841 1, -11, 5842 0, -10, 1, -10, 5843 -2, -8, -1, -8, 0, -8, 5844 -2, -7, -1, -7, 0, -7, 5845 -3, -4, -2, -4, -1, -4, 5846 -3, -3, -2, -3, 5847 -4, -2, -1, -2, 0, -2, 1, -2, 3, -2, 5848 -4, -1, -3, -1, -1, -1, 3, -1, 5849 -4, 0, -3, 0, -1, 0, 0, 0, 2, 0, 3, 0, 5850 -4, 1, -3, 1, -2, 1, 5851 -4, 2, -3, 2, 5852 -4, 3, 5853 -4, 4, -3, 4, 5854 -3, 5, -1, 5, 5855 1, 6, 5856 -1, 7, 2, 7, 5857 0, 8, 3, 8, 5858 0, 9, 5859 3, 10, 5860 1, 11, 2, 11, 3, 11, 5861 127 5862 }, 5863 #ifdef LIFE_NAMES 5864 {"switch engine (c/12, p288 diagonal puffer)"}, 5865 #endif 5866 { 5867 -12, -3, -10, -3, 5868 -13, -2, 5869 -12, -1, -9, -1, 5870 -10, 0, -9, 0, -8, 0, 5871 13, 2, 14, 2, 5872 13, 3, 5873 }, 5874 #ifdef LIFE_NAMES 5875 {"technician (p5)"}, 5876 #endif 5877 { 5878 0, -6, 5879 -1, -5, 1, -5, 5880 -1, -4, 0, -4, 5881 -3, -3, -2, -3, 5882 -4, -2, 0, -2, 1, -2, 2, -2, 5883 -5, -1, -2, -1, -1, -1, 3, -1, 5, -1, 5884 -4, 0, -3, 0, 2, 0, 4, 0, 5, 0, 5885 -2, 1, 0, 1, 2, 1, 5886 -2, 2, 2, 2, 5887 -1, 3, 0, 3, 1, 3, 5888 1, 4, 3, 4, 5889 2, 5, 3, 5, 5890 127 5891 }, 5892 #if 0 5893 #ifdef LIFE_NAMES 5894 {"test tube baby"}, 5895 #endif 5896 { 5897 -4, -2, -3, -2, 2, -2, 3, -2, 5898 -4, -1, -2, -1, 1, -1, 3, -1, 5899 -2, 0, 1, 0, 5900 -2, 1, 1, 1, 5901 -1, 2, 0, 2, 5902 127 5903 }, 5904 #endif 5905 #ifdef LIFE_NAMES 5906 {"timebomb (glider producing switch engine (p384))"}, 5907 #endif 5908 { 5909 -6, -3, 6, -3, 7, -3, 5910 -7, -2, -5, -2, 0, -2, 7, -2, 5911 0, -1, 5, -1, 5912 -5, 0, -2, 0, 2, 0, 5, 0, 5913 -5, 1, -4, 1, 3, 1, 5914 -4, 2, 5915 127 5916 }, 5917 #ifdef LIFE_NAMES 5918 {"titanic toroidal traveler (p16,unknown)"}, 5919 #endif 5920 { 5921 -11, -1, -10, -1, -9, -1, -8, -1, -7, -1, -6, -1, -5, -1, -4, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 6, -1, 7, -1, 8, -1, 9, -1, 10, -1, 11, -1, 5922 -10, 0, -9, 0, -8, 0, -4, 0, -3, 0, -2, 0, 2, 0, 3, 0, 4, 0, 8, 0, 9, 0, 10, 0, 5923 127 5924 }, 5925 #ifdef LIFE_NAMES 5926 {"T-nosed (p4)"}, 5927 #endif 5928 { 5929 0, -6, 5930 0, -5, 5931 -1, -4, 0, -4, 1, -4, 5932 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 5933 -3, 1, -1, 1, 0, 1, 1, 1, 3, 1, 5934 -3, 2, -1, 2, 1, 2, 3, 2, 5935 -4, 3, -3, 3, -1, 3, 1, 3, 3, 3, 4, 3, 5936 -5, 4, -2, 4, -1, 4, 1, 4, 2, 4, 5, 4, 5937 -5, 5, -4, 5, 4, 5, 5, 5, 5938 127 5939 }, 5940 #ifdef LIFE_NAMES 5941 {"T-nosed (p6)"}, 5942 #endif 5943 { 5944 -3, -5, -2, -5, 2, -5, 3, -5, 5945 -3, -4, -1, -4, 1, -4, 3, -4, 5946 -2, -3, 2, -3, 5947 -7, -1, -5, -1, -3, -1, 3, -1, 5, -1, 7, -1, 5948 -9, 0, -8, 0, -7, 0, -5, 0, -3, 0, -2, 0, 2, 0, 3, 0, 5, 0, 5949 7, 0, 8, 0, 9, 0, 5950 -7, 1, -5, 1, -3, 1, 3, 1, 5, 1, 7, 1, 5951 -2, 3, 2, 3, 5952 -3, 4, -1, 4, 1, 4, 3, 4, 5953 -3, 5, -2, 5, 2, 5, 3, 5, 5954 127 5955 }, 5956 #ifdef LIFE_NAMES 5957 {"toad-flipper"}, 5958 #endif 5959 { 5960 -8, -5, 7, -5, 5961 -8, -4, 7, -4, 5962 -9, -3, -7, -3, 6, -3, 8, -3, 5963 -8, -2, 7, -2, 5964 -8, -1, -1, -1, 7, -1, 5965 -8, 0, -1, 0, 0, 0, 7, 0, 5966 -8, 1, -1, 1, 0, 1, 7, 1, 5967 -9, 2, -7, 2, 0, 2, 6, 2, 8, 2, 5968 -8, 3, 7, 3, 5969 -8, 4, 7, 4, 5970 127 5971 }, 5972 #ifdef LIFE_NAMES 5973 {"toad-sucker"}, 5974 #endif 5975 { 5976 -8, -5, 5977 -8, -4, 7, -4, 5978 -9, -3, -7, -3, 7, -3, 5979 -8, -2, 6, -2, 8, -2, 5980 -8, -1, -1, -1, 7, -1, 5981 -8, 0, -1, 0, 0, 0, 7, 0, 5982 -8, 1, -1, 1, 0, 1, 7, 1, 5983 -9, 2, -7, 2, 0, 2, 7, 2, 5984 -8, 3, 6, 3, 8, 3, 5985 -8, 4, 7, 4, 5986 7, 5, 5987 127 5988 }, 5989 #ifdef LIFE_NAMES 5990 {"toaster (p5)"}, 5991 #endif 5992 { 5993 -3, -6, 4, -6, 5, -6, 5994 -4, -5, -2, -5, 0, -5, 1, -5, 4, -5, 5995 -4, -4, -2, -4, 0, -4, 2, -4, 4, -4, 5996 -5, -3, -4, -3, -2, -3, 2, -3, 4, -3, 5, -3, 5997 -7, -2, -3, -2, -2, -2, 0, -2, 2, -2, 3, -2, 7, -2, 5998 -4, -1, 4, -1, 5999 -4, 0, 4, 0, 6000 -7, 1, -3, 1, -2, 1, 0, 1, 2, 1, 3, 1, 7, 1, 6001 -5, 2, -4, 2, -2, 2, 2, 2, 4, 2, 5, 2, 6002 -4, 3, -2, 3, 0, 3, 2, 3, 4, 3, 6003 -4, 4, -2, 4, 0, 4, 1, 4, 4, 4, 6004 -3, 5, 4, 5, 5, 5, 6005 127 6006 }, 6007 #ifdef LIFE_NAMES 6008 {"transparent block reaction"}, 6009 #endif 6010 { 6011 -7, -2, 6012 -7, -1, -6, -1, 5, -1, 6, -1, 6013 -6, 0, -5, 0, 5, 0, 6, 0, 6014 -7, 1, -6, 1, 6015 127 6016 }, 6017 #ifdef LIFE_NAMES 6018 {"trice tongs (p3)"}, 6019 #endif 6020 { 6021 -1, -3, 6022 -1, -2, 0, -2, 1, -2, 6023 -3, -1, -2, -1, 2, -1, 6024 -2, 0, 0, 0, 2, 0, 6025 -2, 1, 6026 -1, 2, 0, 2, 3, 2, 6027 2, 3, 3, 3, 6028 127 6029 }, 6030 #ifdef LIFE_NAMES 6031 {"triple caterer (p3)"}, 6032 #endif 6033 { 6034 -3, -5, -2, -5, 6035 -4, -4, -1, -4, 2, -4, 3, -4, 6036 -4, -3, -3, -3, -1, -3, 3, -3, 6037 -2, -2, 0, -2, 1, -2, 2, -2, 7, -2, 6038 -6, -1, -5, -1, -4, -1, -2, -1, 0, -1, 5, -1, 6, -1, 7, -1, 6039 -7, 0, -4, 0, -1, 0, 4, 0, 6040 -8, 1, -6, 1, -3, 1, 1, 1, 4, 1, 5, 1, 6041 -7, 2, 6042 -6, 3, -5, 3, -3, 3, -2, 3, 0, 3, 1, 3, 3, 3, 4, 3, 6043 -5, 4, -1, 4, 3, 4, 6044 -5, 5, -1, 5, 3, 5, 6045 127 6046 }, 6047 #ifdef LIFE_NAMES 6048 {"tritoad (p3)"}, 6049 #endif 6050 { 6051 0, -7, 1, -7, 6052 0, -6, 6053 1, -5, 4, -5, 5, -5, 6054 -2, -4, -1, -4, 0, -4, 2, -4, 5, -4, 6055 -3, -3, 2, -3, 3, -3, 5, -3, 7, -3, 8, -3, 6056 -3, -2, -1, -2, 0, -2, 3, -2, 5, -2, 7, -2, 8, -2, 6057 -6, -1, -5, -1, -3, -1, 1, -1, 2, -1, 5, -1, 6058 -6, 0, -3, 0, -2, 0, 2, 0, 4, 0, 5, 0, 6059 -9, 1, -8, 1, -6, 1, -4, 1, -1, 1, 0, 1, 2, 1, 6060 -9, 2, -8, 2, -6, 2, -4, 2, -3, 2, 2, 2, 6061 -6, 3, -3, 3, -1, 3, 0, 3, 1, 3, 6062 -6, 4, -5, 4, -2, 4, 6063 -1, 5, 6064 -2, 6, -1, 6, 6065 127 6066 }, 6067 #ifdef LIFE_NAMES 6068 {"tubber (p3)"}, 6069 #endif 6070 { 6071 -2, -6, 0, -6, 6072 -2, -5, -1, -5, 1, -5, 6073 1, -4, 2, -4, 3, -4, 6074 -2, -3, -1, -3, 4, -3, 6075 -6, -2, -5, -2, -3, -2, 0, -2, 1, -2, 4, -2, 6076 -5, -1, -3, -1, 2, -1, 4, -1, 5, -1, 6077 -6, 0, -2, 0, 2, 0, 6, 0, 6078 -5, 1, -4, 1, -2, 1, 3, 1, 5, 1, 6079 -4, 2, -1, 2, 0, 2, 3, 2, 5, 2, 6, 2, 6080 -4, 3, 1, 3, 2, 3, 6081 -3, 4, -2, 4, -1, 4, 6082 -1, 5, 1, 5, 2, 5, 6083 0, 6, 2, 6, 6084 127 6085 }, 6086 #ifdef LIFE_NAMES 6087 {"tumbler (p14) (pump)"}, 6088 #endif 6089 { 6090 -2, -3, -1, -3, 1, -3, 2, -3, 6091 -2, -2, -1, -2, 1, -2, 2, -2, 6092 -1, -1, 1, -1, 6093 -3, 0, -1, 0, 1, 0, 3, 0, 6094 -3, 1, -1, 1, 1, 1, 3, 1, 6095 -3, 2, -2, 2, 2, 2, 3, 2, 6096 127 6097 }, 6098 #ifdef LIFE_NAMES 6099 {"tumbling T-tetson (p8)"}, 6100 #endif 6101 { 6102 -9, -5, -8, -5, -7, -5, 6103 -10, -4, 9, -4, 10, -4, 6104 -10, -3, -6, -3, 7, -3, 9, -3, 10, -3, 6105 -10, -2, -7, -2, -5, -2, 6, -2, 6106 -8, -1, -6, -1, -3, -1, 9, -1, 6107 -7, 0, -3, 0, 5, 0, 6, 0, 8, 0, 6108 -3, 1, 5, 1, 6, 1, 6109 -6, 2, -5, 2, -4, 2, 1, 2, 6110 -1, 3, 0, 3, 6111 1, 4, 6112 127 6113 }, 6114 #ifdef LIFE_NAMES 6115 {"twin bees shuttle (p46) (piston2)"}, 6116 #endif 6117 { 6118 -12, -8, -11, -8, 6119 -12, -7, -11, -7, 6120 2, -5, 6121 -13, -4, -12, -4, 2, -4, 3, -4, 12, -4, 13, -4, 6122 -13, -3, -12, -3, 3, -3, 4, -3, 12, -3, 13, -3, 6123 -2, -2, -1, -2, 2, -2, 3, -2, 6124 -2, 2, -1, 2, 2, 2, 3, 2, 6125 -13, 3, -12, 3, 3, 3, 4, 3, 6126 -13, 4, -12, 4, 2, 4, 3, 4, 6127 2, 5, 6128 -12, 7, -11, 7, 6129 -12, 8, -11, 8, 6130 127 6131 }, 6132 #ifdef LIFE_NAMES 6133 {"twirling T-tetsons II (p60)"}, 6134 #endif 6135 { 6136 -5, -12, -4, -12, 0, -12, 1, -12, 6137 -6, -11, 2, -11, 6138 -3, -10, -1, -10, 6139 -5, -9, -4, -9, 0, -9, 1, -9, 6140 9, -5, 10, -5, 11, -5, 6141 8, -4, 9, -4, 10, -4, 6142 1, -3, 6143 -12, -2, -11, -2, -10, -2, 0, -2, 1, -2, 2, -2, 6144 -11, -1, -10, -1, -9, -1, 6145 8, 0, 9, 0, 10, 0, 6146 9, 1, 10, 1, 11, 1, 6147 -11, 3, -10, 3, -9, 3, 6148 -12, 4, -11, 4, -10, 4, 0, 4, 1, 4, 2, 4, 6149 1, 5, 6150 -2, 8, -1, 8, 3, 8, 4, 8, 6151 0, 9, 2, 9, 6152 -3, 10, 5, 10, 6153 -2, 11, -1, 11, 3, 11, 4, 11, 6154 127 6155 }, 6156 #ifdef LIFE_NAMES 6157 {"unix (p6) (pulse2)"}, 6158 #endif 6159 { 6160 0, -4, 1, -4, 6161 -4, -3, -3, -3, -1, -3, 6162 -4, -2, -3, -2, 0, -2, 3, -2, 6163 1, -1, 3, -1, 6164 2, 0, 6165 1, 2, 2, 2, 6166 1, 3, 2, 3, 6167 127 6168 }, 6169 #ifdef LIFE_NAMES 6170 {"washerwoman (2c/3, p18 fuse)"}, 6171 #endif 6172 { 6173 -16, -2, 6174 -16, -1, -15, -1, -10, -1, -4, -1, 2, -1, 8, -1, 14, -1, 6175 -16, 0, -15, 0, -14, 0, -11, 0, -9, 0, -5, 0, -3, 0, 1, 0, 6176 3, 0, 7, 0, 9, 0, 13, 0, 15, 0, 6177 -16, 1, -15, 1, -10, 1, -4, 1, 2, 1, 8, 1, 14, 1, 6178 -16, 2, 6179 127 6180 }, 6181 #ifdef LIFE_NAMES 6182 {"washing machine"}, 6183 #endif 6184 { 6185 -2, -3, -1, -3, 1, -3, 2, -3, 6186 -3, -2, -1, -2, 0, -2, 3, -2, 6187 -3, -1, -2, -1, 3, -1, 6188 -2, 0, 2, 0, 6189 -3, 1, 2, 1, 3, 1, 6190 -3, 2, 0, 2, 1, 2, 3, 2, 6191 -2, 3, -1, 3, 1, 3, 2, 3, 6192 127 6193 }, 6194 #ifdef LIFE_NAMES 6195 {"wasp (c/3, p3)"}, 6196 #endif 6197 { 6198 -1, -5, 0, -5, 2, -5, 3, -5, 6199 -3, -4, -2, -4, 0, -4, 2, -4, 3, -4, 5, -4, 6, -4, 6200 -6, -3, -5, -3, -4, -3, -2, -3, 1, -3, 2, -3, 3, -3, 6, -3, 6201 7, -3, 8, -3, 9, -3, 6202 -10, -2, -9, -2, -8, -2, -3, -2, -2, -2, -1, -2, 5, -2, 10, -2, 6203 -11, -1, -9, -1, -7, -1, -5, -1, -4, -1, -3, -1, -1, -1, 6204 8, -1, 9, -1, 6205 -11, 0, -9, 0, -7, 0, -5, 0, -4, 0, -3, 0, -2, 0, 6206 -10, 1, -8, 1, -3, 1, 0, 1, 6207 -1, 2, 6208 -9, 3, 6209 -9, 4, 6210 127 6211 }, 6212 #ifdef LIFE_NAMES 6213 {"wavefront (p4)"}, 6214 #endif 6215 { 6216 2, -6, 3, -6, 6217 2, -5, 6218 3, -4, 6219 2, -3, 3, -3, 6220 -1, -2, 0, -2, 4, -2, 5, -2, 6221 -2, -1, 1, -1, 2, -1, 3, -1, 6, -1, 6222 -2, 0, 4, 0, 5, 0, 6223 -1, 1, 3, 1, 6224 -6, 2, -5, 2, -3, 2, -1, 2, 3, 2, 6225 -6, 3, -4, 3, -3, 3, -1, 3, 1, 3, 2, 3, 6226 -2, 4, 0, 4, 6227 -2, 5, 0, 5, 6228 -1, 6, 6229 127 6230 }, 6231 #ifdef LIFE_NAMES 6232 {"weekender (2c/7, p7)"}, 6233 #endif 6234 { 6235 -7, -5, 6, -5, 6236 -7, -4, 6, -4, 6237 -8, -3, -6, -3, 5, -3, 7, -3, 6238 -7, -2, 6, -2, 6239 -7, -1, 6, -1, 6240 -6, 0, -2, 0, -1, 0, 0, 0, 1, 0, 5, 0, 6241 -2, 1, -1, 1, 0, 1, 1, 1, 6242 -6, 2, -5, 2, -4, 2, -3, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6243 -4, 4, 3, 4, 6244 -3, 5, -2, 5, 1, 5, 2, 5, 6245 127 6246 }, 6247 #ifdef LIFE_NAMES 6248 {"x66 (c/2, p4)"}, 6249 #endif 6250 { 6251 -3, -5, 6252 -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 6253 -5, -3, -4, -3, 0, -3, 1, -3, 3, -3, 6254 -4, -2, 4, -2, 6255 -3, -1, -2, -1, 1, -1, 3, -1, 6256 -3, 1, -2, 1, 1, 1, 3, 1, 6257 -4, 2, 4, 2, 6258 -5, 3, -4, 3, 0, 3, 1, 3, 3, 3, 6259 -4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 6260 -3, 5, 6261 127 6262 }, 6263 }; 6264 6265 static char patterns_8B36S23[][2 * NUMPTS + 1] = 6266 { 6267 #ifdef LIFE_NAMES 6268 {"replicator"}, 6269 #endif 6270 { 6271 -1, -2, 0, -2, 1, -2, 6272 -2, -1, 6273 -2, 0, 6274 -2, 1, 6275 127 6276 }, 6277 #ifdef LIFE_NAMES 6278 {"bomber"}, 6279 #endif 6280 { 6281 -4, -3, -3, -3, -2, -3, 6282 -5, -2, 6283 -5, -1, 6284 -5, 0, 4, 0, 6285 4, 1, 6286 4, 2, 6287 127 6288 }, 6289 #ifdef LIFE_NAMES 6290 {"growing ship"}, 6291 #endif 6292 { 6293 -8, -7, -7, -7, -6, -7, 6294 -9, -6, -6, -6, 6295 -10, -5, -6, -5, 6296 -10, -4, -7, -4, 6297 -10, -3, -9, -3, -8, -3, 6298 7, 6, 8, 6, 9, 6, 6299 127 6300 }, 6301 #if 0 6302 #ifdef LIFE_NAMES 6303 {"gun"}, 6304 #endif 6305 { 6306 3, -11, 6307 1, -10, 2, -10, 3, -10, 6308 0, -9, 6309 0, -8, 1, -8, 6310 -3, 0, -2, 0, -1, 0, 6311 -3, 1, -1, 1, 6312 -3, 2, -2, 2, -1, 2, 6313 -2, 3, 6314 17, 4, 18, 4, 6315 -18, 5, -17, 5, 17, 5, 6316 -17, 6, 15, 6, 17, 6, 6317 -17, 7, -15, 7, 6, 7, 15, 7, 16, 7, 6318 -16, 8, -15, 8, 6, 8, 6319 -6, 9, -5, 9, 5, 9, 7, 9, 8, 9, 6320 -7, 10, -6, 10, -4, 10, 6, 10, 6321 -6, 11, -5, 11, 6, 11, 6322 127 6323 }, 6324 #ifdef LIFE_NAMES 6325 {"tug of war"}, 6326 #endif 6327 { 6328 -12, -13, -11, -13, -10, -13, 6329 -13, -12, 6330 -13, -11, 6331 -13, -10, 6332 0, -6, 6333 0, -5, 6334 0, -4, 6335 4, 1, 6336 3, 2, 4, 2, 6337 2, 3, 4, 3, 6338 1, 4, 2, 4, 3, 4, 6339 11, 10, 12, 10, 13, 10, 6340 10, 11, 12, 11, 6341 10, 12, 11, 12, 6342 10, 13, 6343 127 6344 }, 6345 #ifdef LIFE_NAMES 6346 {"unpredictable tug of war"}, 6347 #endif 6348 { 6349 -16, -17, -15, -17, -14, -17, 6350 -17, -16, 6351 -17, -15, 6352 -17, -14, 6353 -4, -10, 6354 -4, -9, 6355 -4, -8, 6356 16, 13, 6357 15, 14, 16, 14, 6358 14, 15, 16, 15, 6359 13, 16, 14, 16, 15, 16, 6360 127 6361 }, 6362 #endif 6363 #ifdef LIFE_NAMES 6364 {"puffer train 1"}, 6365 #endif 6366 { 6367 4, -10, 5, -10, 6, -10, 6368 3, -9, 7, -9, 6369 2, -8, 7, -8, 6370 1, -7, 4, -7, 7, -7, 6371 1, -6, 6, -6, 6372 1, -5, 5, -5, 6373 2, -4, 3, -4, 4, -4, 6374 7, 0, 6375 7, 1, 6376 7, 2, 6377 -5, 4, -4, 4, -3, 4, 6378 -6, 5, -3, 5, 6379 -7, 6, -3, 6, 6380 -7, 7, -4, 7, 6381 -7, 8, -6, 8, -5, 8, 6382 2, 9, 3, 9, 4, 9, 6383 127 6384 }, 6385 #ifdef LIFE_NAMES 6386 {"puffer train 2"}, 6387 #endif 6388 { 6389 2, -10, 3, -10, 6390 3, -9, 4, -9, 6391 0, -8, 2, -8, 3, -8, 6392 0, -7, 1, -7, 2, -7, 6393 1, -6, 10, -6, 6394 10, -5, 6395 10, -4, 6396 -7, -2, 6397 -8, -1, -7, -1, 6398 -9, 0, -7, 0, 6399 -10, 1, -9, 1, -8, 1, 6400 -5, 7, 6401 -5, 8, 6402 -5, 9, 6403 127 6404 }, 6405 #ifdef LIFE_NAMES 6406 {"period 96 rake"}, 6407 #endif 6408 { 6409 -8, -6, -7, -6, -6, -6, 6410 -5, -5, 6411 -10, -4, -8, -4, -4, -4, 6412 -10, -3, -3, -3, 6413 -10, -2, -2, -2, 6414 -9, -1, -2, -1, 6415 -8, 0, -4, 0, -2, 0, 6416 -7, 1, 6, 1, 7, 1, 8, 1, 6417 -6, 2, -5, 2, -4, 2, 9, 2, 6418 9, 3, 6419 0, 4, 9, 4, 6420 0, 5, 6421 0, 6, 6422 127 6423 }, 6424 #ifdef LIFE_NAMES 6425 {"another c/3, p3 spaceship"}, 6426 #endif 6427 { 6428 -2, -3, 2, -3, 6429 -3, -2, -1, -2, 1, -2, 3, -2, 6430 -3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 3, -1, 6431 -9, 0, -8, 0, -7, 0, -6, 0, -5, 0, -3, 0, 3, 0, 5, 0, 6, 0, 6432 7, 0, 8, 0, 9, 0, 6433 -9, 1, -8, 1, -5, 1, -4, 1, 0, 1, 4, 1, 5, 1, 8, 1, 9, 1, 6434 -7, 2, -6, 2, -5, 2, 0, 2, 5, 2, 6, 2, 7, 2, 6435 -7, 3, 7, 3, 6436 127 6437 }, 6438 #ifdef LIFE_NAMES 6439 {"mold (p4)"}, 6440 #endif 6441 { 6442 0, -3, 1, -3, 6443 -1, -2, 2, -2, 6444 -3, -1, 0, -1, 2, -1, 6445 1, 0, 6446 -3, 1, -1, 1, 0, 1, 6447 -2, 2, 6448 127 6449 }, 6450 #ifdef LIFE_NAMES 6451 {"monogram (p4)"}, 6452 #endif 6453 { 6454 -3, -2, -2, -2, 2, -2, 3, -2, 6455 -2, -1, 0, -1, 2, -1, 6456 -2, 0, -1, 0, 1, 0, 2, 0, 6457 -2, 1, 0, 1, 2, 1, 6458 -3, 2, -2, 2, 2, 2, 3, 2, 6459 127 6460 }, 6461 #ifdef LIFE_NAMES 6462 {"oscillator DH (p3)"}, 6463 #endif 6464 { 6465 0, -4, 1, -4, 6466 -1, -3, 2, -3, 6467 1, -2, 3, -2, 6468 -3, -1, -1, -1, 3, -1, 6469 -4, 0, 0, 0, 2, 0, 6470 -4, 1, -2, 1, 6471 -3, 2, 0, 2, 6472 -2, 3, -1, 3, 6473 127 6474 }, 6475 #ifdef LIFE_NAMES 6476 {"oscillator0 DH (p4)"}, 6477 #endif 6478 { 6479 1, -5, 2, -5, 6480 0, -4, 2, -4, 6481 -5, -3, -4, -3, 0, -3, 6482 -5, -2, -2, -2, 0, -2, 1, -2, 6483 -4, -1, -3, -1, -2, -1, 6484 1, 0, 2, 0, 3, 0, 6485 -2, 1, -1, 1, 1, 1, 4, 1, 6486 -1, 2, 3, 2, 4, 2, 6487 -3, 3, -1, 3, 6488 -3, 4, -2, 4, 6489 127 6490 }, 6491 #ifdef LIFE_NAMES 6492 {"oscillator1 DH (p4)"}, 6493 #endif 6494 { 6495 0, -7, 1, -7, 6496 0, -6, 1, -6, 6497 -2, -4, -1, -4, 0, -4, 1, -4, 6498 -3, -3, 2, -3, 6499 -4, -2, -2, -2, 0, -2, 1, -2, 3, -2, 5, -2, 6, -2, 6500 -4, -1, -2, -1, 3, -1, 5, -1, 6, -1, 6501 -7, 0, -6, 0, -4, 0, 1, 0, 3, 0, 6502 -7, 1, -6, 1, -4, 1, -2, 1, -1, 1, 1, 1, 3, 1, 6503 -3, 2, 2, 2, 6504 -2, 3, -1, 3, 0, 3, 1, 3, 6505 -2, 5, -1, 5, 6506 -2, 6, -1, 6, 6507 127 6508 }, 6509 #ifdef LIFE_NAMES 6510 {"oscillator DH (p7)"}, 6511 #endif 6512 { 6513 -3, -2, -2, -2, -1, -2, 6514 -3, -1, -2, -1, -1, -1, 6515 1, 0, 2, 0, 3, 0, 6516 1, 1, 2, 1, 3, 1, 6517 127 6518 }, 6519 #ifdef LIFE_NAMES 6520 {"oscillator DH (p9) "}, 6521 #endif 6522 { 6523 -11, -5, -10, -5, 10, -5, 11, -5, 6524 -10, -4, 10, -4, 6525 -10, -3, -8, -3, 8, -3, 10, -3, 6526 -9, -2, -8, -2, 8, -2, 9, -2, 6527 -6, 0, -5, 0, -4, 0, -3, 0, -2, 0, -1, 0, 1, 0, 2, 0, 3, 0, 6528 4, 0, 5, 0, 6, 0, 6529 -9, 2, -8, 2, 8, 2, 9, 2, 6530 -10, 3, -8, 3, 8, 3, 10, 3, 6531 -10, 4, 10, 4, 6532 -11, 5, -10, 5, 10, 5, 11, 5, 6533 127 6534 }, 6535 #ifdef LIFE_NAMES 6536 {"oscillator DH (p10)"}, 6537 #endif 6538 { 6539 -2, -1, 1, -1, 6540 -2, 0, 2, 0, 6541 -2, 1, -1, 1, 1, 1, 2, 1, 6542 127 6543 }, 6544 #ifdef LIFE_NAMES 6545 {"oscillator DH (p12)"}, 6546 #endif 6547 { 6548 -3, -3, -2, -3, 1, -3, 3, -3, 6549 -1, -2, 1, -2, 3, -2, 6550 -3, -1, -2, -1, 2, -1, 6551 -2, 1, 2, 1, 3, 1, 6552 -3, 2, -1, 2, 1, 2, 6553 -3, 3, -1, 3, 2, 3, 3, 3, 6554 127 6555 }, 6556 #ifdef LIFE_NAMES 6557 {"oscillator DH (p14)"}, 6558 #endif 6559 { 6560 -2, -5, -1, -5, 0, -5, 6561 -3, -4, -1, -4, 0, -4, 2, -4, 6562 -4, -3, 3, -3, 6563 -2, -2, 1, -2, 4, -2, 6564 -5, -1, -4, -1, 3, -1, 4, -1, 6565 -5, 0, -4, 0, 3, 0, 4, 0, 6566 -5, 1, -2, 1, 1, 1, 6567 -4, 2, 3, 2, 6568 -3, 3, -1, 3, 0, 3, 2, 3, 6569 -1, 4, 0, 4, 1, 4, 6570 127 6571 }, 6572 #ifdef LIFE_NAMES 6573 {"oscillator DH (p20)"}, 6574 #endif 6575 { 6576 -1, -5, 6577 -3, -4, -2, -4, -1, -4, 6578 -4, -3, -1, -3, 6579 -4, -2, -2, -2, 6580 -5, -1, -4, -1, -3, -1, 6581 2, 0, 3, 0, 4, 0, 6582 1, 1, 3, 1, 6583 0, 2, 3, 2, 6584 0, 3, 1, 3, 2, 3, 6585 0, 4, 6586 127 6587 }, 6588 #ifdef LIFE_NAMES 6589 {"oscillator DH (p28)"}, 6590 #endif 6591 { 6592 -6, -4, 6, -4, 6593 -6, -3, -4, -3, 4, -3, 6, -3, 6594 -9, -2, -6, -2, -5, -2, 5, -2, 6, -2, 9, -2, 6595 -10, -1, -9, -1, -8, -1, 8, -1, 9, -1, 10, -1, 6596 -11, 0, -10, 0, -8, 0, -7, 0, 7, 0, 8, 0, 10, 0, 11, 0, 6597 -10, 1, -9, 1, -8, 1, 8, 1, 9, 1, 10, 1, 6598 -9, 2, -6, 2, -5, 2, 5, 2, 6, 2, 9, 2, 6599 -6, 3, -4, 3, 4, 3, 6, 3, 6600 -6, 4, 6, 4, 6601 127 6602 }, 6603 #ifdef LIFE_NAMES 6604 {"shuttle DH (p24)"}, 6605 #endif 6606 { 6607 -3, -3, -2, -3, 6608 -3, -2, -1, -2, 1, -2, 3, -2, 6609 -3, -1, -2, -1, 6610 -9, 0, -8, 0, 7, 0, 8, 0, 6611 -10, 1, -8, 1, 7, 1, 9, 1, 6612 -10, 2, 9, 2, 6613 -11, 3, -10, 3, 9, 3, 10, 3, 6614 127 6615 }, 6616 #ifdef LIFE_NAMES 6617 {"oscillator NT (p48)"}, 6618 #endif 6619 { 6620 -9, -13, -8, -13, -7, -13, 7, -13, 8, -13, 9, -13, 6621 -9, -12, -6, -12, 6, -12, 9, -12, 6622 -9, -11, -5, -11, 5, -11, 9, -11, 6623 -8, -10, -5, -10, 5, -10, 8, -10, 6624 -7, -9, -6, -9, -5, -9, 5, -9, 6, -9, 7, -9, 6625 -11, -2, 11, -2, 6626 -12, -1, -10, -1, 10, -1, 12, -1, 6627 -14, 0, -13, 0, 13, 0, 14, 0, 6628 -12, 1, -10, 1, 10, 1, 12, 1, 6629 -11, 2, 11, 2, 6630 -7, 9, -6, 9, -5, 9, 5, 9, 6, 9, 7, 9, 6631 -8, 10, -5, 10, 5, 10, 8, 10, 6632 -9, 11, -5, 11, 5, 11, 9, 11, 6633 -9, 12, -6, 12, 6, 12, 9, 12, 6634 -9, 13, -8, 13, -7, 13, 7, 13, 8, 13, 9, 13, 6635 127 6636 }, 6637 #ifdef LIFE_NAMES 6638 {"simple oscillator DH (p48)"}, 6639 #endif 6640 { 6641 -11, -11, 6642 -11, -10, -10, -10, -9, -10, 6643 -8, -9, 6644 -9, -8, -8, -8, 6645 -1, -5, 0, -5, 1, -5, 6646 -2, -4, 1, -4, 6647 -3, -3, 1, -3, 6648 -3, -2, 0, -2, 6649 -3, -1, -2, -1, -1, -1, 6650 8, 8, 9, 8, 6651 8, 9, 10, 9, 6652 10, 10, 6653 10, 11, 11, 11, 6654 127 6655 }, 6656 #ifdef LIFE_NAMES 6657 {"oscillator HE (p96)"}, 6658 #endif 6659 { 6660 -13, -13, -12, -13, 6661 -13, -12, -12, -12, 6662 7, -4, 6663 6, -3, 7, -3, 6664 5, -2, 7, -2, 6665 4, -1, 5, -1, 6, -1, 6666 10, 1, 11, 1, 12, 1, 6667 9, 2, 11, 2, 6668 9, 3, 10, 3, 6669 9, 4, 6670 12, 12, 13, 12, 6671 12, 13, 13, 13, 6672 127 6673 }, 6674 }; 6675 6676 /* https://www.sillycycle.com/life.html */ 6677 /* Below generated from java Life2DForms | dos2unix */ 6678 6679 static char patterns_8B3S245[][2 * NUMPTS + 1] = 6680 { 6681 #ifdef LIFE_NAMES 6682 {"big blinker"}, 6683 #endif 6684 { 6685 -2, -1, -2, 0, 6686 -1, -1, -1, 0, 6687 0, -1, 0, 0, 6688 1, -1, 1, 0, 6689 127 6690 }, 6691 #ifdef LIFE_NAMES 6692 {"x"}, 6693 #endif 6694 { 6695 -1, 0, 6696 0, -1, 0, 0, 0, 1, 6697 1, 0, 6698 127 6699 }, 6700 #ifdef LIFE_NAMES 6701 {"double x"}, 6702 #endif 6703 { 6704 -2, -1, -1, -1, 1, -1, 0, -1, 6705 -3, 0, -2, 0, 1, 0, 2, 0, 6706 -2, 1, -1, 1, 0, 1, 1, 1, 6707 127 6708 }, 6709 #ifdef LIFE_NAMES 6710 {"checker"}, 6711 #endif 6712 { 6713 -2, -2, 0, -2, 6714 -1, -1, 1, -1, 6715 -2, 0, 0, 0, 2, 0, 6716 -1, 1, 1, 1, 6717 0, 2, 2, 2, 6718 127 6719 }, 6720 #ifdef LIFE_NAMES 6721 {"small square dance (p4)"}, 6722 #endif 6723 { 6724 -1, -2, 0, -2, 1, -2, 6725 0, -1, 6726 -3, 0, -1, 0, 1, 0, 3, 0, 6727 0, 1, 6728 -1, 2, 0, 2, 1, 2, 6729 127 6730 }, 6731 #ifdef LIFE_NAMES 6732 {"clock (p4)"}, 6733 #endif 6734 { 6735 -1, -1, 6736 -1, 0, 0, 0, 6737 -1, 1, 0, 1, 6738 127 6739 }, 6740 #ifdef LIFE_NAMES 6741 {"warped clock (p4)"}, 6742 #endif 6743 { 6744 0, -1, 6745 -2, 0, 0, 0, -1, 0, 6746 -1, 1, 6747 127 6748 }, 6749 #ifdef LIFE_NAMES 6750 {"talker (p5)"}, 6751 #endif 6752 { 6753 1, -4, 0, -4, 6754 1, -3, 6755 -1, -2, 0, -2, 1, -2, 6756 -2, -1, 3, -1, 2, -1, 0, -1, 4, -1, 6757 -4, 0, -2, 0, -1, 0, 1, 0, 2, 0, 4, 0, 6758 -4, 1, -3, 1, -2, 1, 0, 1, 2, 1, 6759 -1, 2, 0, 2, 1, 2, 6760 -1, 3, 6761 -1, 4, 0, 4, 6762 127 6763 }, 6764 #ifdef LIFE_NAMES 6765 {"square dance (p6)"}, 6766 #endif 6767 { 6768 -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 6769 0, -1, 6770 -5, 0, -1, 0, 1, 0, 5, 0, 6771 0, 1, 6772 -3, 2, -2, 2, -1, 2, 0, 2, 2, 2, 1, 2, 3, 2, 6773 127 6774 }, 6775 #ifdef LIFE_NAMES 6776 {"tumbler (p8)"}, 6777 #endif 6778 { 6779 2, -4, 6780 -1, -3, 3, -3, 6781 -1, -2, 0, -2, 3, -2, 6782 -3, -1, -2, -1, 0, -1, 1, -1, 2, -1, 6783 -2, 0, -1, 0, 1, 0, 6784 -1, 1, 0, 1, 6785 -4, 2, -1, 2, 6786 -3, 3, -2, 3, 6787 127 6788 }, 6789 #ifdef LIFE_NAMES 6790 {"give and receive (p12)"}, 6791 #endif 6792 { 6793 -2, -1, 3, -1, 6794 -3, 0, -1, 0, 1, 0, -2, 0, 2, 0, 3, 0, 6795 -2, 1, 2, 1, 6796 127 6797 }, 6798 }; 6799 6800 static char patterns_8B36S245[][2 * NUMPTS + 1] = 6801 { 6802 #ifdef LIFE_NAMES 6803 {"jelly fish (diag c7, p7)"}, 6804 #endif 6805 { 6806 -1, -1, 6807 -1, 0, 0, 0, 6808 -1, 1, 0, 1, 1, 1, 6809 127 6810 }, 6811 #ifdef LIFE_NAMES 6812 {"big blinker"}, 6813 #endif 6814 { 6815 -2, -1, -2, 0, 6816 -1, -1, -1, 0, 6817 0, -1, 0, 0, 6818 1, -1, 1, 0, 6819 127 6820 }, 6821 #ifdef LIFE_NAMES 6822 {"x"}, 6823 #endif 6824 { 6825 -1, 0, 6826 0, -1, 0, 0, 0, 1, 6827 1, 0, 6828 127 6829 }, 6830 #ifdef LIFE_NAMES 6831 {"double x"}, 6832 #endif 6833 { 6834 -2, -1, -1, -1, 1, -1, 0, -1, 6835 -3, 0, -2, 0, 1, 0, 2, 0, 6836 -2, 1, -1, 1, 0, 1, 1, 1, 6837 127 6838 }, 6839 #ifdef LIFE_NAMES 6840 {"checker"}, 6841 #endif 6842 { 6843 -2, -2, 0, -2, 6844 -1, -1, 1, -1, 6845 -2, 0, 0, 0, 2, 0, 6846 -1, 1, 1, 1, 6847 0, 2, 2, 2, 6848 127 6849 }, 6850 #ifdef LIFE_NAMES 6851 {"small square dance (p4)"}, 6852 #endif 6853 { 6854 -1, -2, 0, -2, 1, -2, 6855 0, -1, 6856 -3, 0, -1, 0, 1, 0, 3, 0, 6857 0, 1, 6858 -1, 2, 0, 2, 1, 2, 6859 127 6860 }, 6861 #ifdef LIFE_NAMES 6862 {"key (p4)"}, 6863 #endif 6864 { 6865 -1, -2, 0, -2, 6866 -2, -1, 1, -1, 6867 -1, 0, 0, 0, 6868 -1, 1, 0, 1, 6869 127 6870 }, 6871 #ifdef LIFE_NAMES 6872 {"clock (p4)"}, 6873 #endif 6874 { 6875 -1, -1, 6876 -1, 0, 0, 0, 6877 -1, 1, 0, 1, 6878 127 6879 }, 6880 #ifdef LIFE_NAMES 6881 {"warped clock (p4)"}, 6882 #endif 6883 { 6884 0, -1, 6885 -2, 0, 0, 0, -1, 0, 6886 -1, 1, 6887 127 6888 }, 6889 #ifdef LIFE_NAMES 6890 {"square dance (p6)"}, 6891 #endif 6892 { 6893 -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 6894 0, -1, 6895 -5, 0, -1, 0, 1, 0, 5, 0, 6896 0, 1, 6897 -3, 2, -2, 2, -1, 2, 0, 2, 2, 2, 1, 2, 3, 2, 6898 127 6899 }, 6900 #ifdef LIFE_NAMES 6901 {"give and receive (p12)"}, 6902 #endif 6903 { 6904 -2, -1, 3, -1, 6905 -3, 0, -1, 0, 1, 0, -2, 0, 2, 0, 3, 0, 6906 -2, 1, 2, 1, 6907 127 6908 }, 6909 }; 6910 6911 static char patterns_8B3678S34678[][2 * NUMPTS + 1] = 6912 { 6913 #ifdef LIFE_NAMES 6914 {"c/2, p2 odd spaceship"}, 6915 #endif 6916 { 6917 0, -3, 1, -3, 2, -3, 6918 -2, -2, 0, -2, 1, -2, 6919 -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 4, -1, 6920 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 6921 -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4, 1, 6922 -2, 2, 0, 2, 1, 2, 6923 0, 3, 1, 3, 2, 3, 6924 127 6925 }, 6926 #ifdef LIFE_NAMES 6927 {"c/2, p4 odd spaceship"}, 6928 #endif 6929 { 6930 1, -3, 6931 -1, -2, 1, -2, 6932 -2, -1, -1, -1, 0, -1, 6933 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 3, 0, 6934 -2, 1, -1, 1, 0, 1, 6935 -1, 2, 1, 2, 6936 1, 3, 6937 127 6938 }, 6939 #ifdef LIFE_NAMES 6940 {"c/2, p4 even spaceship"}, 6941 #endif 6942 { 6943 1, -4, 6944 -1, -3, 1, -3, 6945 -2, -2, -1, -2, 0, -2, 6946 -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 3, -1, 6947 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 3, 0, 6948 -2, 1, -1, 1, 0, 1, 6949 -1, 2, 1, 2, 6950 1, 3, 6951 127 6952 }, 6953 #ifdef LIFE_NAMES 6954 {"c/2, p32 spaceship"}, 6955 #endif 6956 { 6957 -1, -3, 6958 -3, -2, -2, -2, -1, -2, 6959 -4, -1, -2, -1, -1, -1, 0, -1, 2, -1, 6960 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 2, 0, 3, 0, 6961 -4, 1, -2, 1, -1, 1, 0, 1, 2, 1, 6962 -3, 2, -2, 2, -1, 2, 6963 -1, 3, 6964 127 6965 }, 6966 #ifdef LIFE_NAMES 6967 {"c/3, p3 diagonal butterfly"}, 6968 #endif 6969 { 6970 -1, -2, 0, -2, 1, -2, 6971 -2, -1, 0, -1, 1, -1, 2, -1, 6972 -2, 0, -1, 0, 6973 -2, 1, -1, 1, 6974 -1, 2, 6975 127 6976 }, 6977 #ifdef LIFE_NAMES 6978 {"c/7, p14 snail"}, 6979 #endif 6980 { 6981 0, -2, 6982 -2, -1, 0, -1, 1, -1, 6983 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 6984 -2, 1, 0, 1, 1, 1, 6985 0, 2, 6986 127 6987 }, 6988 #ifdef LIFE_NAMES 6989 {"asym c/2, p4 spaceship"}, 6990 #endif 6991 { 6992 -7, -3, -6, -3, 1, -3, 2, -3, 6993 -8, -2, -7, -2, -6, -2, -4, -2, -3, -2, -2, -2, -1, -2, 1, -2, 2, -2, 4, -2, 5, -2, 6, -2, 7, -2, 6994 -9, -1, -7, -1, -6, -1, -2, -1, 1, -1, 3, -1, 4, -1, 5, -1, 6, -1, 8, -1, 6995 -8, 0, -7, 0, -6, 0, -5, 0, 0, 0, 2, 0, 4, 0, 6, 0, 7, 0, 8, 0, 6996 -6, 2, 6, 2, 7, 2, 6997 -8, 3, 6998 127 6999 }, 7000 #ifdef LIFE_NAMES 7001 {"I1 (p3)"}, 7002 #endif 7003 { 7004 -2, -2, 2, -2, 7005 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 7006 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7007 -2, 1, 2, 1, 7008 127 7009 }, 7010 #ifdef LIFE_NAMES 7011 {"I2 (p3)"}, 7012 #endif 7013 { 7014 -3, -2, 2, -2, 7015 -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 7016 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7017 -3, 1, 2, 1, 7018 127 7019 }, 7020 #ifdef LIFE_NAMES 7021 {"drum (p3)"}, 7022 #endif 7023 { 7024 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 7025 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 7026 -2, 1, 0, 1, 2, 1, 7027 127 7028 }, 7029 #ifdef LIFE_NAMES 7030 {"solitaire1 (p3)"}, 7031 #endif 7032 { 7033 -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 7034 -2, -1, 0, -1, 2, -1, 7035 -2, 0, -1, 0, 1, 0, 2, 0, 7036 -2, 1, 0, 1, 2, 1, 7037 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7038 127 7039 }, 7040 #ifdef LIFE_NAMES 7041 {"solitaire2 (p3)"}, 7042 #endif 7043 { 7044 -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 7045 -3, -1, -1, -1, 0, -1, 2, -1, 7046 -3, 0, -2, 0, 1, 0, 2, 0, 7047 -3, 1, -1, 1, 0, 1, 2, 1, 7048 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7049 127 7050 }, 7051 #ifdef LIFE_NAMES 7052 {"solitaire3 (p3)"}, 7053 #endif 7054 { 7055 -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 7056 -3, -2, -1, -2, 0, -2, 2, -2, 7057 -3, -1, -2, -1, 1, -1, 2, -1, 7058 -3, 0, -2, 0, 1, 0, 2, 0, 7059 -3, 1, -1, 1, 0, 1, 2, 1, 7060 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7061 127 7062 }, 7063 #ifdef LIFE_NAMES 7064 {"plus1 (p4)"}, 7065 #endif 7066 { 7067 -1, -1, 1, -1, 7068 0, 0, 7069 -1, 1, 1, 1, 7070 127 7071 }, 7072 #ifdef LIFE_NAMES 7073 {"plus2 (p4)"}, 7074 #endif 7075 { 7076 -1, -2, 1, -2, 7077 0, -1, 7078 0, 0, 7079 -1, 1, 1, 1, 7080 127 7081 }, 7082 #ifdef LIFE_NAMES 7083 {"plus3 (p4)"}, 7084 #endif 7085 { 7086 -2, -2, 1, -2, 7087 -1, -1, 0, -1, 7088 -1, 0, 0, 0, 7089 -2, 1, 1, 1, 7090 127 7091 }, 7092 #ifdef LIFE_NAMES 7093 {"2 hooks (p4)"}, 7094 #endif 7095 { 7096 -1, -3, 7097 -3, -2, -2, -2, -1, -2, 0, -2, 7098 -3, -1, 1, -1, 7099 -3, 0, -2, 0, 1, 0, 2, 0, 7100 -1, 1, 1, 1, 7101 -1, 2, 0, 2, 1, 2, 7102 127 7103 }, 7104 #ifdef LIFE_NAMES 7105 {"p5 oscillator"}, 7106 #endif 7107 { 7108 2, -3, 7109 1, -2, 2, -2, 7110 2, -1, 7111 0, 0, 1, 0, 2, 0, 3, 0, 7112 -2, 1, 0, 1, 1, 1, 2, 1, 3, 1, 7113 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 7114 0, 3, 1, 3, 7115 127 7116 }, 7117 #ifdef LIFE_NAMES 7118 {"plus (p5)"}, 7119 #endif 7120 { 7121 -1, -3, 0, -3, 7122 0, -2, 1, -2, 7123 -2, -1, -1, -1, 0, -1, 1, -1, 3, -1, 7124 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 7125 -3, 1, -1, 1, 0, 1, 1, 1, 2, 1, 7126 -1, 2, 0, 2, 7127 0, 3, 1, 3, 7128 127 7129 }, 7130 #ifdef LIFE_NAMES 7131 {"p6 oscillator 0"}, 7132 #endif 7133 { 7134 0, -2, 7135 -1, -1, 0, -1, 1, -1, 2, -1, 7136 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7137 -1, 1, 0, 1, 7138 -1, 2, 0, 2, 7139 127 7140 }, 7141 #ifdef LIFE_NAMES 7142 {"p6 oscillator 1"}, 7143 #endif 7144 { 7145 -2, -2, 0, -2, 1, -2, 7146 -1, -1, 0, -1, 7147 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7148 -2, 1, 0, 1, 1, 1, 2, 1, 7149 0, 2, 1, 2, 7150 127 7151 }, 7152 #ifdef LIFE_NAMES 7153 {"p6 oscillator 2"}, 7154 #endif 7155 { 7156 -2, -3, 7157 -3, -2, -2, -2, -1, -2, 7158 -2, -1, 7159 1, 0, 7160 0, 1, 1, 1, 2, 1, 7161 1, 2, 7162 127 7163 }, 7164 #ifdef LIFE_NAMES 7165 {"p6 oscillator 3"}, 7166 #endif 7167 { 7168 -3, -4, 1, -4, 7169 -3, -3, -2, -3, -1, -3, 2, -3, 3, -3, 7170 -4, -2, -2, -2, 1, -2, 2, -2, 7171 -1, -1, 0, -1, 2, -1, 7172 -3, 0, -1, 0, 0, 0, 7173 -3, 1, -2, 1, 1, 1, 3, 1, 7174 -4, 2, -3, 2, 0, 2, 1, 2, 2, 2, 7175 -2, 3, 2, 3, 7176 127 7177 }, 7178 #ifdef LIFE_NAMES 7179 {"capture1 (p6)"}, 7180 #endif 7181 { 7182 -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 7183 -4, -1, -3, -1, 0, -1, 3, -1, 4, -1, 7184 -1, 0, 0, 0, 1, 0, 7185 -4, 1, -3, 1, 0, 1, 3, 1, 4, 1, 7186 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7187 127 7188 }, 7189 #ifdef LIFE_NAMES 7190 {"capture2 (p6)"}, 7191 #endif 7192 { 7193 -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 7194 -4, -2, -3, -2, 0, -2, 3, -2, 4, -2, 7195 -1, -1, 0, -1, 1, -1, 7196 -1, 0, 0, 0, 1, 0, 7197 -4, 1, -3, 1, 0, 1, 3, 1, 4, 1, 7198 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7199 127 7200 }, 7201 #ifdef LIFE_NAMES 7202 {"capture3 (p6)"}, 7203 #endif 7204 { 7205 -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 7206 -5, -2, -4, -2, -1, -2, 0, -2, 3, -2, 4, -2, 7207 -2, -1, -1, -1, 0, -1, 1, -1, 7208 -2, 0, -1, 0, 0, 0, 1, 0, 7209 -5, 1, -4, 1, -1, 1, 0, 1, 3, 1, 4, 1, 7210 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 7211 127 7212 }, 7213 #ifdef LIFE_NAMES 7214 {"7 oscillator"}, 7215 #endif 7216 { 7217 -1, -3, 0, -3, 1, -3, 7218 0, -2, 1, -2, 2, -2, 7219 -3, -1, 0, -1, 1, -1, 7220 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7221 -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 7222 -2, 2, 0, 2, 1, 2, 2, 2, 3, 2, 7223 2, 3, 3, 3, 7224 127 7225 }, 7226 #ifdef LIFE_NAMES 7227 {"odd 8 oscillator"}, 7228 #endif 7229 { 7230 0, -3, 7231 -2, -1, 2, -1, 7232 -4, 0, -3, 0, -2, 0, -1, 0, 1, 0, 2, 0, 3, 0, 4, 0, 7233 -4, 1, -3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 7234 -2, 2, -1, 2, 1, 2, 2, 2, 7235 127 7236 }, 7237 #ifdef LIFE_NAMES 7238 {"even 8 oscillator"}, 7239 #endif 7240 { 7241 -1, -3, 0, -3, 7242 -3, -1, 2, -1, 7243 -5, 0, -4, 0, -3, 0, -2, 0, 1, 0, 2, 0, 3, 0, 4, 0, 7244 -5, 1, -4, 1, -3, 1, -2, 1, 1, 1, 2, 1, 3, 1, 4, 1, 7245 -3, 2, -2, 2, 1, 2, 2, 2, 7246 127 7247 }, 7248 #ifdef LIFE_NAMES 7249 {"ripple (p10)"}, 7250 #endif 7251 { 7252 -1, -8, 0, -8, 7253 -1, -7, 0, -7, 7254 -1, -6, 0, -6, 7255 -2, -5, 1, -5, 7256 -5, -2, -2, -2, -1, -2, 0, -2, 1, -2, 4, -2, 7257 -8, -1, -7, -1, -6, -1, -2, -1, -1, -1, 0, -1, 1, -1, 5, -1, 6, -1, 7, -1, 7258 -8, 0, -7, 0, -6, 0, -2, 0, -1, 0, 0, 0, 1, 0, 5, 0, 6, 0, 7, 0, 7259 -5, 1, -2, 1, -1, 1, 0, 1, 1, 1, 4, 1, 7260 -2, 4, 1, 4, 7261 -1, 5, 0, 5, 7262 -1, 6, 0, 6, 7263 -1, 7, 0, 7, 7264 127 7265 }, 7266 #ifdef LIFE_NAMES 7267 {"13 oscillator"}, 7268 #endif 7269 { 7270 -2, -2, -1, -2, 7271 -2, -1, -1, -1, 7272 0, 0, 7273 1, 1, 2, 1, 7274 1, 2, 2, 2, 7275 127 7276 }, 7277 #ifdef LIFE_NAMES 7278 {"14 oscillator"}, 7279 #endif 7280 { 7281 3, -3, 7282 3, -2, 7283 2, -1, 3, -1, 7284 2, 0, 7285 -2, 1, 7286 -3, 2, -2, 2, -1, 2, 7287 -1, 3, 7288 127 7289 }, 7290 #ifdef LIFE_NAMES 7291 {"16 oscillator"}, 7292 #endif 7293 { 7294 0, -2, 7295 -1, -1, 0, -1, 7296 -1, 0, 7297 -1, 1, 7298 127 7299 }, 7300 #ifdef LIFE_NAMES 7301 {"cradle (p20)"}, 7302 #endif 7303 { 7304 -1, -3, 0, -3, 7305 -1, -2, 0, -2, 7306 -1, -1, 0, -1, 7307 -3, 0, 2, 0, 7308 -3, 1, -2, 1, 1, 1, 2, 1, 7309 -3, 2, -2, 2, 1, 2, 2, 2, 7310 127 7311 }, 7312 #ifdef LIFE_NAMES 7313 {"hurricane cyclone (p24)"}, 7314 #endif 7315 { 7316 -1, -3, 7317 -2, -2, -1, -2, 0, -2, 1, -2, 7318 -2, -1, 1, -1, 2, -1, 7319 -3, 0, -2, 0, 1, 0, 7320 -2, 1, -1, 1, 0, 1, 1, 1, 7321 0, 2, 7322 127 7323 }, 7324 #ifdef LIFE_NAMES 7325 {"hurricane cyclone (p28)"}, 7326 #endif 7327 { 7328 1, -4, 7329 1, -3, 7330 -2, -2, 1, -2, 2, -2, 7331 -4, -1, -3, -1, -2, -1, -1, -1, 1, -1, 7332 0, 0, 7333 -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 7334 -2, 2, -1, 2, 2, 2, 7335 -1, 3, 7336 -1, 4, 7337 127 7338 }, 7339 #ifdef LIFE_NAMES 7340 {"36 oscillator"}, 7341 #endif 7342 { 7343 -1, -2, 0, -2, 7344 -2, -1, -1, -1, 0, -1, 7345 -2, 0, -1, 0, 1, 0, 7346 0, 1, 1, 1, 7347 2, 2, 7348 127 7349 }, 7350 #ifdef LIFE_NAMES 7351 {"42 oscillator"}, 7352 #endif 7353 { 7354 -3, -5, 2, -5, 7355 -4, -4, -3, -4, -2, -4, 1, -4, 2, -4, 3, -4, 7356 -5, -3, -4, -3, -3, -3, -2, -3, 1, -3, 2, -3, 3, -3, 4, -3, 7357 -4, -2, -3, -2, -1, -2, 0, -2, 2, -2, 3, -2, 7358 -2, -1, -1, -1, 0, -1, 1, -1, 7359 -2, 0, -1, 0, 0, 0, 1, 0, 7360 -4, 1, -3, 1, -1, 1, 0, 1, 2, 1, 3, 1, 7361 -5, 2, -4, 2, -3, 2, -2, 2, 1, 2, 2, 2, 3, 2, 4, 2, 7362 -4, 3, -3, 3, -2, 3, 1, 3, 2, 3, 3, 3, 7363 -3, 4, 2, 4, 7364 127 7365 }, 7366 #ifdef LIFE_NAMES 7367 {"50 oscillator"}, 7368 #endif 7369 { 7370 -4, -4, -3, -4, -2, -4, 1, -4, 2, -4, 3, -4, 7371 -4, -3, -3, -3, -1, -3, 0, -3, 2, -3, 3, -3, 7372 -4, -2, -2, -2, 1, -2, 3, -2, 7373 -3, -1, -1, -1, 0, -1, 2, -1, 7374 -3, 0, -1, 0, 0, 0, 2, 0, 7375 -4, 1, -2, 1, 1, 1, 3, 1, 7376 -4, 2, -3, 2, -1, 2, 0, 2, 2, 2, 3, 2, 7377 -4, 3, -3, 3, -2, 3, 1, 3, 2, 3, 3, 3, 7378 127 7379 }, 7380 #ifdef LIFE_NAMES 7381 {"rocket predecessor"}, 7382 #endif 7383 { 7384 -3, -2, -2, -2, 7385 -4, -1, -2, -1, -1, -1, 7386 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 3, 0, 7387 -4, 1, -2, 1, -1, 1, 7388 -3, 2, -2, 2, 7389 127 7390 }, 7391 #ifdef LIFE_NAMES 7392 {"2 rockets and junk"}, 7393 #endif 7394 { 7395 -1, -2, 7396 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 7397 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 7398 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 7399 -1, 2, 7400 127 7401 }, 7402 #ifdef LIFE_NAMES 7403 {"small doomed ship"}, 7404 #endif 7405 { 7406 -1, -2, 0, -2, 7407 -2, -1, -1, -1, 0, -1, 2, -1, 7408 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 7409 -2, 1, -1, 1, 0, 1, 2, 1, 7410 -1, 2, 0, 2, 7411 127 7412 }, 7413 }; 7414 7415 static char patterns_9B3S34[][2 * NUMPTS + 1] = 7416 { 7417 #ifdef LIFE_NAMES 7418 {"replicator"}, 7419 #endif 7420 { 7421 -1, -1, 0, -1, 1, -1, 7422 -1, 0, 0, 0, 1, 0, 7423 127 7424 }, 7425 }; 7426 7427 static char patterns_9B34S3[][2 * NUMPTS + 1] = 7428 { 7429 #ifdef LIFE_NAMES 7430 {"ship3 (c/2, p4)"}, 7431 #endif 7432 { 7433 -2, -7, 7434 0, -6, 1, -6, 7435 1, -5, 2, -5, 7436 2, -4, 7437 1, -3, 2, -3, 7438 2, -2, 7439 2, -1, 7440 -3, 0, -1, 0, 2, 0, 7441 -3, 1, -1, 1, 2, 1, 7442 2, 2, 7443 2, 3, 7444 1, 4, 2, 4, 7445 2, 5, 7446 1, 6, 2, 6, 7447 0, 7, 1, 7, 7448 -2, 8, 7449 127 7450 }, 7451 #ifdef LIFE_NAMES 7452 {"ship (c/2, p8)"}, 7453 #endif 7454 { 7455 1, -6, 7456 -2, -5, -1, -5, 2, -5, 7457 -3, -4, -2, -4, 2, -4, 3, -4, 7458 -3, -3, 3, -3, 7459 2, -2, 3, -2, 7460 3, -1, 7461 3, 0, 7462 2, 1, 3, 1, 7463 -3, 2, 3, 2, 7464 -3, 3, -2, 3, 2, 3, 3, 3, 7465 -2, 4, -1, 4, 2, 4, 7466 1, 5, 7467 127 7468 }, 7469 #ifdef LIFE_NAMES 7470 {"ship2 (c/2, p8)"}, 7471 #endif 7472 { 7473 -2, -7, 7474 -3, -6, 0, -6, 1, -6, 7475 -4, -5, -3, -5, 1, -5, 2, -5, 7476 -4, -4, 2, -4, 7477 -4, -3, -3, -3, 7478 -4, -2, 4, -2, 7479 -4, -1, 4, -1, 7480 -4, 0, 4, 0, 7481 -4, 1, 4, 1, 7482 -4, 2, -3, 2, 7483 -4, 3, 2, 3, 7484 -4, 4, -3, 4, 1, 4, 2, 4, 7485 -3, 5, 0, 5, 1, 5, 7486 -2, 6, 7487 127 7488 }, 7489 #ifdef LIFE_NAMES 7490 {"ship3 (c/2, p8)"}, 7491 #endif 7492 { 7493 -2, -7, 7494 -3, -6, -1, -6, 0, -6, 7495 -2, -5, 0, -5, 1, -5, 7496 -2, -4, -1, -4, 0, -4, 1, -4, 7497 1, -3, 2, -3, 7498 -3, -2, 2, -2, 7499 -2, -1, 1, -1, 2, -1, 7500 -2, 0, 2, 0, 7501 -2, 1, 2, 1, 7502 -2, 2, 1, 2, 2, 2, 7503 -3, 3, 2, 3, 7504 1, 4, 2, 4, 7505 -2, 5, -1, 5, 0, 5, 1, 5, 7506 -2, 6, 0, 6, 1, 6, 7507 -3, 7, -1, 7, 0, 7, 7508 -2, 8, 7509 127 7510 }, 7511 #ifdef LIFE_NAMES 7512 {"starship (c/2, p8)"}, 7513 #endif 7514 { 7515 -2, -5, 7516 0, -4, 1, -4, 7517 1, -3, 2, -3, 7518 2, -2, 7519 -2, -1, 1, -1, 2, -1, 7520 0, 0, 1, 0, 2, 0, 7521 0, 1, 1, 1, 2, 1, 7522 -2, 2, 1, 2, 2, 2, 7523 2, 3, 7524 1, 4, 2, 4, 7525 0, 5, 1, 5, 7526 -2, 6, 7527 127 7528 }, 7529 #ifdef LIFE_NAMES 7530 {"horsehoe crab (c/2, p8)"}, 7531 #endif 7532 { 7533 -3, -6, 1, -6, 7534 -4, -5, -1, -5, 7535 -5, -4, -4, -4, 0, -4, 1, -4, 3, -4, 7536 -5, -3, 1, -3, 5, -3, 7537 -5, -2, -4, -2, -1, -2, 0, -2, 5, -2, 7538 -5, -1, -3, -1, -2, -1, -1, -1, 5, -1, 7539 -5, 0, -3, 0, -2, 0, -1, 0, 5, 0, 7540 -5, 1, -4, 1, -1, 1, 0, 1, 5, 1, 7541 -5, 2, 1, 2, 5, 2, 7542 -5, 3, -4, 3, 0, 3, 1, 3, 3, 3, 7543 -4, 4, -1, 4, 7544 -3, 5, 1, 5, 7545 127 7546 }, 7547 #ifdef LIFE_NAMES 7548 {"horseshoe crab (c/2, p12)"}, 7549 #endif 7550 { 7551 3, -8, 7552 0, -7, 1, -7, 7553 -1, -6, 0, -6, 7554 -1, -5, 7555 -2, -4, -1, -4, 7556 -2, -3, -1, -3, 0, -3, 1, -3, 7557 -2, -2, 0, -2, 1, -2, 2, -2, 7558 -2, -1, 0, -1, 1, -1, 2, -1, 4, -1, 7559 -2, 0, 0, 0, 1, 0, 2, 0, 4, 0, 7560 -2, 1, 0, 1, 1, 1, 2, 1, 7561 -2, 2, -1, 2, 0, 2, 1, 2, 7562 -2, 3, -1, 3, 7563 -1, 4, 7564 -1, 5, 0, 5, 7565 0, 6, 1, 6, 7566 3, 7, 7567 127 7568 }, 7569 #ifdef LIFE_NAMES 7570 {"ship (c/2, p16)"}, 7571 #endif 7572 { 7573 1, -8, 7574 -1, -7, 0, -7, 2, -7, 7575 -2, -6, -1, -6, 1, -6, 7576 -2, -5, -1, -5, 0, -5, 1, -5, 7577 -2, -4, -1, -4, 7578 -2, -3, 2, -3, 7579 -2, -2, -1, -2, 2, -2, 7580 -2, -1, 2, -1, 7581 -2, 0, 2, 0, 7582 -2, 1, -1, 1, 2, 1, 7583 -2, 2, 2, 2, 7584 -2, 3, -1, 3, 7585 -2, 4, -1, 4, 0, 4, 1, 4, 7586 -2, 5, -1, 5, 1, 5, 7587 -1, 6, 0, 6, 2, 6, 7588 1, 7, 7589 127 7590 }, 7591 #ifdef LIFE_NAMES 7592 {"puffer (c/2, p44)"}, 7593 #endif 7594 { 7595 1, -8, 7596 -2, -7, -1, -7, 2, -7, 7597 -2, -6, 2, -6, 3, -6, 7598 -2, -5, 3, -5, 7599 -1, -4, 2, -4, 3, -4, 7600 -1, -3, 3, -3, 7601 -2, -2, -1, -2, 0, -2, 3, -2, 7602 -5, -1, -4, -1, -3, -1, 3, -1, 7603 -5, 0, -4, 0, -3, 0, 3, 0, 7604 -2, 1, -1, 1, 0, 1, 3, 1, 7605 -1, 2, 3, 2, 7606 -1, 3, 2, 3, 3, 3, 7607 -2, 4, 3, 4, 7608 -2, 5, 2, 5, 3, 5, 7609 -2, 6, -1, 6, 2, 6, 7610 1, 7, 7611 127 7612 }, 7613 #ifdef LIFE_NAMES 7614 {"double puffer (c/2, p52)"}, 7615 #endif 7616 { 7617 -1, -6, 7618 -4, -5, -3, -5, 0, -5, 7619 -4, -4, 0, -4, 1, -4, 7620 -4, -3, -3, -3, 1, -3, 7621 0, -2, 1, -2, 7622 -1, -1, 1, -1, 7623 -1, 0, 1, 0, 7624 0, 1, 1, 1, 7625 -4, 2, -3, 2, 1, 2, 7626 -4, 3, 0, 3, 1, 3, 7627 -4, 4, -3, 4, 0, 4, 7628 -1, 5, 7629 127 7630 }, 7631 #ifdef LIFE_NAMES 7632 {"pass through"}, 7633 #endif 7634 { 7635 -2, -1, 7636 -2, 0, 0, 0, 7637 -2, 1, 7638 127 7639 }, 7640 #ifdef LIFE_NAMES 7641 {"toggle"}, 7642 #endif 7643 { 7644 -1, 0, 0, 0, 1, 0, 7645 2, 1, 7646 127 7647 }, 7648 #ifdef LIFE_NAMES 7649 {"umbrella"}, 7650 #endif 7651 { 7652 -2, -1, -1, -1, 0, -1, 7653 -1, 1, 7654 127 7655 }, 7656 #ifdef LIFE_NAMES 7657 {"hexagon"}, 7658 #endif 7659 { 7660 -1, 0, 0, 0, 1, 0, 7661 -1, 1, 0, 1, 1, 1, 7662 127 7663 }, 7664 #ifdef LIFE_NAMES 7665 {"negate"}, 7666 #endif 7667 { 7668 -2, -1, 7669 -2, 0, -1, 0, 0, 0, 1, 0, 7670 -2, 1, -1, 1, 7671 127 7672 }, 7673 #ifdef LIFE_NAMES 7674 {"hexagon with legs (p3)"}, 7675 #endif 7676 { 7677 -3, -3, 2, -3, 4, -3, 7678 -4, -2, -3, -2, 0, -2, 1, -2, 2, -2, 7679 -4, -1, -3, -1, 4, -1, 7680 -7, 0, 4, 0, 5, 0, 6, 0, 7681 -6, 1, -5, 1, -4, 1, 7, 1, 7682 -4, 2, 3, 2, 4, 2, 7683 -2, 3, -1, 3, 0, 3, 3, 3, 4, 3, 7684 -4, 4, -2, 4, 3, 4, 7685 127 7686 }, 7687 #ifdef LIFE_NAMES 7688 {"fish (p4)"}, 7689 #endif 7690 { 7691 -2, -1, 1, -1, 7692 -2, 0, 0, 0, 1, 0, 7693 127 7694 }, 7695 #ifdef LIFE_NAMES 7696 {"kissing fish (p4)"}, 7697 #endif 7698 { 7699 -2, -1, 2, -1, 7700 -4, 0, -2, 0, 2, 0, 3, 0, 4, 0, 7701 -4, 1, -3, 1, -2, 1, 2, 1, 4, 1, 7702 -2, 2, 2, 2, 7703 127 7704 }, 7705 #ifdef LIFE_NAMES 7706 {"small spiral (p4)"}, 7707 #endif 7708 { 7709 -2, -2, 7710 -3, -1, -1, -1, 1, -1, 7711 -2, 0, 0, 0, 2, 0, 7712 -3, 1, -1, 1, 7713 127 7714 }, 7715 #ifdef LIFE_NAMES 7716 {"clock (p6)"}, 7717 #endif 7718 { 7719 -1, -1, 7720 -2, 0, -1, 0, 0, 0, 1, 0, 7721 127 7722 }, 7723 #ifdef LIFE_NAMES 7724 {"spiral (p10)"}, 7725 #endif 7726 { 7727 -4, -3, -1, -3, 0, -3, 3, -3, 7728 1, -2, 5, -2, 7729 -6, -1, -5, -1, -3, -1, 5, -1, 7730 4, 0, 7, 0, 7731 -7, 1, -4, 1, 7732 -5, 2, 3, 2, 5, 2, 6, 2, 7733 -5, 3, -1, 3, 7734 -3, 4, 0, 4, 1, 4, 4, 4, 7735 127 7736 }, 7737 #ifdef LIFE_NAMES 7738 {"shining star (p10)"}, 7739 #endif 7740 { 7741 0, -5, 7742 -1, -4, 1, -4, 7743 -4, -3, -3, -3, -1, -3, 1, -3, 3, -3, 4, -3, 7744 -8, -2, -6, -2, -5, -2, 5, -2, 6, -2, 8, -2, 7745 -7, -1, -6, -1, 6, -1, 7, -1, 7746 -7, 0, 7, 0, 7747 -7, 1, 7, 1, 7748 -7, 2, -6, 2, 6, 2, 7, 2, 7749 -8, 3, -6, 3, -5, 3, 5, 3, 6, 3, 8, 3, 7750 -4, 4, -3, 4, -1, 4, 1, 4, 3, 4, 4, 4, 7751 -1, 5, 1, 5, 7752 0, 6, 7753 127 7754 }, 7755 #ifdef LIFE_NAMES 7756 {"eagle (p16)"}, 7757 #endif 7758 { 7759 -7, -2, 7, -2, 7760 -8, -1, -7, -1, -5, -1, -4, -1, 4, -1, 5, -1, 7, -1, 8, -1, 7761 -8, 0, -7, 0, -2, 0, -1, 0, 1, 0, 2, 0, 7, 0, 8, 0, 7762 -1, 1, 1, 1, 7763 -2, 2, 2, 2, 7764 127 7765 }, 7766 #ifdef LIFE_NAMES 7767 {"black diamond (p16)"}, 7768 #endif 7769 { 7770 -4, -3, -3, -3, -1, -3, 0, -3, 2, -3, 7771 -6, -2, -5, -2, 4, -2, 7772 -6, -1, 3, -1, 4, -1, 7773 -6, 0, -5, 0, 4, 0, 7774 -6, 1, 3, 1, 4, 1, 7775 -4, 2, -2, 2, -1, 2, 1, 2, 2, 2, 7776 127 7777 }, 7778 #ifdef LIFE_NAMES 7779 {"supernova (p19)"}, 7780 #endif 7781 { 7782 -6, -5, -5, -5, -3, -5, -2, -5, -1, -5, 0, -5, 1, -5, 2, -5, 3, -5, 5, -5, 6, -5, 7783 -7, -4, 7, -4, 7784 -8, -3, -7, -3, 7, -3, 8, -3, 7785 -9, -2, -8, -2, 8, -2, 9, -2, 7786 -10, -1, -9, -1, 9, -1, 10, -1, 7787 -11, 0, 11, 0, 7788 -11, 1, 11, 1, 7789 -10, 2, -9, 2, 9, 2, 10, 2, 7790 -9, 3, -8, 3, 8, 3, 9, 3, 7791 -8, 4, -7, 4, 7, 4, 8, 4, 7792 -7, 5, 7, 5, 7793 -6, 6, -5, 6, -3, 6, -2, 6, -1, 6, 0, 6, 1, 6, 2, 6, 3, 6, 5, 6, 6, 6, 7794 127 7795 }, 7796 }; 7797 7798 static char patterns_12B3S2[][2 * NUMPTS + 1] = 7799 { 7800 #ifdef LIFE_NAMES 7801 {"wave (p4)"}, 7802 #endif 7803 { 7804 -5, 0, -4, 0, -2, 0, 0, 0, 2, 0, 3, 0, 7805 127 7806 }, 7807 #ifdef LIFE_NAMES 7808 {"wave on wave (p4)"}, 7809 #endif 7810 { 7811 -4, -3, -3, -3, -1, -3, 1, -3, 3, -3, 4, -3, 7812 -4, 0, 4, 0, 7813 -3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, 7814 -2, 2, 2, 2, 7815 127 7816 }, 7817 #ifdef LIFE_NAMES 7818 {"temples (p8)"}, 7819 #endif 7820 { 7821 -6, -3, -4, -3, -3, -3, 1, -3, 2, -3, 4, -3, 7822 -7, -2, 5, -2, 7823 -6, -1, 4, -1, 7824 -6, 0, 4, 0, 7825 -4, 2, -3, 2, 1, 2, 2, 2, 7826 -2, 3, 0, 3, 7827 127 7828 }, 7829 #ifdef LIFE_NAMES 7830 {"diamond dance (p12)"}, 7831 #endif 7832 { 7833 -4, -3, -2, -3, 6, -3, 7834 -2, -2, -1, -2, 3, -2, 8, -2, 7835 9, -1, 7836 -2, 0, 3, 0, 7837 -8, 1, 7838 -7, 2, -2, 2, 2, 2, 3, 2, 7839 -5, 3, 3, 3, 5, 3, 7840 127 7841 }, 7842 }; 7843 7844 static char patterns_12B3S23[][2 * NUMPTS + 1] = 7845 { 7846 #ifdef LIFE_NAMES 7847 {"c (p4)"}, 7848 #endif 7849 { 7850 0, -1, 1, -1, 7851 -1, 0, 7852 -1, 1, 7853 0, 2, 1, 2, 7854 127 7855 }, 7856 #ifdef LIFE_NAMES 7857 {"2 butterflies (p7)"}, 7858 #endif 7859 { 7860 1, -2, 7861 0, -1, 1, -1, 7862 -2, 1, -1, 1, 7863 -2, 2, 7864 127 7865 }, 7866 #ifdef LIFE_NAMES 7867 {"l (p8)"}, 7868 #endif 7869 { 7870 0, -1, 7871 -1, 0, 0, 0, 7872 -1, 1, 7873 127 7874 }, 7875 #ifdef LIFE_NAMES 7876 {"flame thrower (p18)"}, 7877 #endif 7878 { 7879 0, -3, 7880 -1, -2, 0, -2, 7881 -1, 3, 0, 3, 7882 0, 4, 7883 127 7884 }, 7885 #ifdef LIFE_NAMES 7886 {"radiation (p24)"}, 7887 #endif 7888 { 7889 0, -1, 2, -1, 7890 -3, 0, 0, 0, 7891 -2, 1, -1, 1, 1, 1, 2, 1, 7892 1, 2, 7893 127 7894 }, 7895 #ifdef LIFE_NAMES 7896 {"near replicator"}, 7897 #endif 7898 { 7899 -1, -1, 0, -1, 7900 -1, 0, 0, 0, 7901 127 7902 }, 7903 }; 7904 7905 static char patterns_12B3S27[][2 * NUMPTS + 1] = 7906 { 7907 #ifdef LIFE_NAMES 7908 {"throwing star"}, 7909 #endif 7910 { 7911 1, -1, 2, -1, 7912 -3, 0, -1, 0, 0, 0, 1, 0, 7913 -3, 1, -1, 1, 0, 1, 1, 1, 7914 1, 2, 2, 2, 7915 127 7916 }, 7917 #ifdef LIFE_NAMES 7918 {"throwing star2"}, 7919 #endif 7920 { 7921 -3, -2, 1, -2, 7922 -4, -1, -2, -1, -1, -1, 0, -1, 2, -1, 7923 -2, 0, -1, 0, 0, 0, 7924 -2, 1, 0, 1, 7925 127 7926 }, 7927 #ifdef LIFE_NAMES 7928 {"internal star"}, 7929 #endif 7930 { 7931 -4, -3, -3, -3, -1, -3, 1, -3, 3, -3, 4, -3, 7932 -5, -2, 5, -2, 7933 -5, -1, 5, -1, 7934 -4, 0, 4, 0, 7935 -3, 1, 3, 1, 7936 -2, 2, -1, 2, 1, 2, 2, 2, 7937 127 7938 }, 7939 #ifdef LIFE_NAMES 7940 {"star"}, 7941 #endif 7942 { 7943 0, -3, 7944 -3, -2, -2, -2, 2, -2, 3, -2, 7945 -5, -1, 5, -1, 7946 -5, 0, -1, 0, 0, 0, 1, 0, 5, 0, 7947 -5, 1, -1, 1, 0, 1, 1, 1, 5, 1, 7948 -5, 2, 5, 2, 7949 -3, 3, -2, 3, 2, 3, 3, 3, 7950 0, 4, 7951 127 7952 }, 7953 #ifdef LIFE_NAMES 7954 {"tri spiral (p4)"}, 7955 #endif 7956 { 7957 0, -3, 2, -3, 7958 -4, -2, 4, -2, 7959 -4, -1, -1, -1, 1, -1, 7960 -3, 0, 0, 0, 3, 0, 7961 2, 1, 7962 0, 2, 7963 127 7964 }, 7965 #ifdef LIFE_NAMES 7966 {"worm mouth (p4)"}, 7967 #endif 7968 { 7969 -1, -3, 1, -3, 7970 -3, -2, -2, -2, 2, -2, 3, -2, 7971 -5, 0, 5, 0, 7972 -5, 1, 5, 1, 7973 -6, 2, 6, 2, 7974 -5, 3, -3, 3, -2, 3, 2, 3, 3, 3, 5, 3, 7975 127 7976 }, 7977 #ifdef LIFE_NAMES 7978 {"black sheep (p6)"}, 7979 #endif 7980 { 7981 -1, -3, 0, -3, 1, -3, 7982 0, -2, 7983 -1, 0, 1, 0, 7984 -2, 1, 2, 1, 7985 -1, 2, 1, 2, 7986 -7, 3, -6, 3, -5, 3, 5, 3, 6, 3, 7, 3, 7987 -6, 4, 6, 4, 7988 127 7989 }, 7990 #ifdef LIFE_NAMES 7991 {"temples (p8)"}, 7992 #endif 7993 { 7994 -6, -3, -4, -3, -3, -3, 1, -3, 2, -3, 4, -3, 7995 -7, -2, 5, -2, 7996 -6, -1, 4, -1, 7997 -6, 0, 4, 0, 7998 -4, 2, -3, 2, 1, 2, 2, 2, 7999 -2, 3, 0, 3, 8000 127 8001 }, 8002 #ifdef LIFE_NAMES 8003 {"mirrored gliders (p18)"}, 8004 #endif 8005 { 8006 -7, -2, -4, -2, -3, -2, 3, -2, 4, -2, 7, -2, 8007 -3, -1, 3, -1, 8008 -8, 0, -4, 0, 4, 0, 8, 0, 8009 -8, 1, -4, 1, 4, 1, 8, 1, 8010 -3, 2, 3, 2, 8011 -7, 3, -4, 3, -3, 3, 3, 3, 4, 3, 7, 3, 8012 127 8013 }, 8014 #ifdef LIFE_NAMES 8015 {"spinning glider (p36)"}, 8016 #endif 8017 { 8018 -1, -1, 1, -1, 2, -1, 8019 2, 0, 8020 0, 1, 1, 1, 2, 1, 8021 127 8022 }, 8023 }; 8024 8025 static char patterns_12B3S278[][2 * NUMPTS + 1] = 8026 { 8027 #ifdef LIFE_NAMES 8028 {"throwing star"}, 8029 #endif 8030 { 8031 1, -1, 2, -1, 8032 -3, 0, -1, 0, 0, 0, 1, 0, 8033 -3, 1, -1, 1, 0, 1, 1, 1, 8034 1, 2, 2, 2, 8035 127 8036 }, 8037 #ifdef LIFE_NAMES 8038 {"throwing star2"}, 8039 #endif 8040 { 8041 -3, -2, 1, -2, 8042 -4, -1, -2, -1, -1, -1, 0, -1, 2, -1, 8043 -2, 0, -1, 0, 0, 0, 8044 -2, 1, 0, 1, 8045 127 8046 }, 8047 #ifdef LIFE_NAMES 8048 {"internal star"}, 8049 #endif 8050 { 8051 -4, -3, -3, -3, -1, -3, 1, -3, 3, -3, 4, -3, 8052 -5, -2, 5, -2, 8053 -5, -1, 5, -1, 8054 -4, 0, 4, 0, 8055 -3, 1, 3, 1, 8056 -2, 2, -1, 2, 1, 2, 2, 2, 8057 127 8058 }, 8059 #ifdef LIFE_NAMES 8060 {"sunflower"}, 8061 #endif 8062 { 8063 -2, -6, 0, -6, 8064 -6, -5, -5, -5, 3, -5, 4, -5, 8065 -9, -4, -3, -4, -1, -4, 1, -4, 7, -4, 8066 -10, -3, -5, -3, 3, -3, 8, -3, 8067 -6, -2, 4, -2, 8068 -10, -1, -7, -1, -2, -1, -1, -1, 0, -1, 5, -1, 8, -1, 8069 -10, 0, -7, 0, -2, 0, -1, 0, 0, 0, 5, 0, 8, 0, 8070 -6, 1, 4, 1, 8071 8, 2, -10, 2, -5, 2, 3, 2, 8072 -9, 3, -3, 3, -1, 3, 1, 3, 7, 3, 8073 -6, 4, -5, 4, 3, 4, 4, 4, 8074 -2, 5, 0, 5, 8075 127 8076 }, 8077 #ifdef LIFE_NAMES 8078 {"hexagon (p3)"}, 8079 #endif 8080 { 8081 -1, 0, 0, 0, 1, 0, 8082 -1, 1, 0, 1, 1, 1, 8083 127 8084 }, 8085 #ifdef LIFE_NAMES 8086 {"hexagons (p3)"}, 8087 #endif 8088 { 8089 -4, -3, -3, -3, -2, -3, 2, -3, 3, -3, 4, -3, 8090 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 8091 -7, 0, -6, 0, -5, 0, 5, 0, 6, 0, 7, 0, 8092 -7, 1, -6, 1, -5, 1, 5, 1, 6, 1, 7, 1, 8093 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 8094 -4, 4, -3, 4, -2, 4, 2, 4, 3, 4, 4, 4, 8095 127 8096 }, 8097 #ifdef LIFE_NAMES 8098 {"tri spiral (p4)"}, 8099 #endif 8100 { 8101 0, -3, 2, -3, 8102 -4, -2, 4, -2, 8103 -4, -1, -1, -1, 1, -1, 8104 -3, 0, 0, 0, 3, 0, 8105 2, 1, 8106 0, 2, 8107 127 8108 }, 8109 #ifdef LIFE_NAMES 8110 {"worm mouth (p4)"}, 8111 #endif 8112 { 8113 -1, -3, 1, -3, 8114 -3, -2, -2, -2, 2, -2, 3, -2, 8115 -5, 0, 5, 0, 8116 -5, 1, 5, 1, 8117 -6, 2, 6, 2, 8118 -5, 3, -3, 3, -2, 3, 2, 3, 3, 3, 5, 3, 8119 127 8120 }, 8121 #ifdef LIFE_NAMES 8122 {"black sheep (p6)"}, 8123 #endif 8124 { 8125 -1, -3, 0, -3, 1, -3, 8126 0, -2, 8127 -1, 0, 1, 0, 8128 -2, 1, 2, 1, 8129 -1, 2, 1, 2, 8130 -7, 3, -6, 3, -5, 3, 5, 3, 6, 3, 7, 3, 8131 -6, 4, 6, 4, 8132 127 8133 }, 8134 #ifdef LIFE_NAMES 8135 {"temples (p8)"}, 8136 #endif 8137 { 8138 -6, -3, -4, -3, -3, -3, 1, -3, 2, -3, 4, -3, 8139 -7, -2, 5, -2, 8140 -6, -1, 4, -1, 8141 -6, 0, 4, 0, 8142 -4, 2, -3, 2, 1, 2, 2, 2, 8143 -2, 3, 0, 3, 8144 127 8145 }, 8146 #ifdef LIFE_NAMES 8147 {"tri pulse (p26)"}, 8148 #endif 8149 { 8150 -6, -3, -5, -3, -4, -3, -3, -3, 8151 -6, -2, -3, -2, 4, -2, 5, -2, 8152 2, -1, 4, -1, 5, -1, 8153 4, 0, 8154 -2, 1, 8155 -4, 2, -3, 2, 8156 -3, 3, -2, 3, -1, 3, 8157 127 8158 }, 8159 #ifdef LIFE_NAMES 8160 {"clock (p93)"}, 8161 #endif 8162 { 8163 -3, -2, -2, -2, 8164 1, -1, 2, -1, 8165 3, 0, 8166 3, 1, 8167 -5, 2, -4, 2, -3, 2, 0, 2, 8168 127 8169 }, 8170 #ifdef LIFE_NAMES 8171 {"glider (c3/20, p80)"}, 8172 #endif 8173 { 8174 1, 0, 8175 1, 1, 2, 1, 8176 0, 2, 8177 127 8178 }, 8179 #ifdef LIFE_NAMES 8180 {"gunship1"}, 8181 #endif 8182 { 8183 2, -7, 4, -7, 8184 2, -6, 4, -6, 8185 1, -5, 8186 3, -4, 5, -4, 8187 3, -3, 4, -3, 5, -3, 8188 -3, 6, 8189 -3, 7, -2, 7, 8190 -4, 8, 8191 127 8192 }, 8193 #ifdef LIFE_NAMES 8194 {"gunship2"}, 8195 #endif 8196 { 8197 3, -6, 4, -6, 5, -6, 8198 2, -5, 6, -5, 8199 4, -4, 5, -4, 6, -4, 8200 -3, 6, 8201 -3, 7, -2, 7, 8202 -4, 8, 8203 127 8204 }, 8205 }; 8206 8207 static char patterns_12B4S345[][2 * NUMPTS + 1] = 8208 { 8209 #ifdef LIFE_NAMES 8210 {"hold (p3)"}, 8211 #endif 8212 { 8213 -3, 0, -2, 0, 2, 0, 3, 0, 8214 -3, 1, -2, 1, 2, 1, 3, 1, 8215 127 8216 }, 8217 #ifdef LIFE_NAMES 8218 {"pinch (p3)"}, 8219 #endif 8220 { 8221 -2, 0, -1, 0, 1, 0, 2, 0, 8222 -2, 1, -1, 1, 1, 1, 2, 1, 8223 127 8224 }, 8225 #ifdef LIFE_NAMES 8226 {"doily (p3)"}, 8227 #endif 8228 { 8229 -2, -3, 2, -3, 8230 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 8231 -6, 0, -5, 0, 5, 0, 6, 0, 8232 -6, 1, -5, 1, 5, 1, 6, 1, 8233 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 8234 -2, 4, 2, 4, 8235 127 8236 }, 8237 #ifdef LIFE_NAMES 8238 {"hold (p4)"}, 8239 #endif 8240 { 8241 -4, -1, -3, -1, 3, -1, 4, -1, 8242 -4, 0, -3, 0, 3, 0, 4, 0, 8243 127 8244 }, 8245 #ifdef LIFE_NAMES 8246 {"cradle (p4)"}, 8247 #endif 8248 { 8249 0, -3, 1, -3, 2, -3, 8250 2, -2, 8251 -2, 0, -1, 0, 8252 -2, 1, -1, 1, 8253 2, 3, 8254 0, 4, 1, 4, 2, 4, 8255 127 8256 }, 8257 #ifdef LIFE_NAMES 8258 {"cannibal pacman (p8)"}, 8259 #endif 8260 { 8261 -3, -2, -2, -2, -1, -2, 0, -2, 2, -2, 3, -2, 8262 -4, -1, 3, -1, 4, -1, 8263 -5, 0, -4, 0, 5, 0, 8264 -5, 1, 4, 1, 5, 1, 8265 -4, 2, -3, 2, 4, 2, 8266 -3, 3, -2, 3, 0, 3, 1, 3, 2, 3, 3, 3, 8267 127 8268 }, 8269 #ifdef LIFE_NAMES 8270 {"boat (p9)"}, 8271 #endif 8272 { 8273 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 8274 -2, 0, -1, 0, 0, 0, 2, 0, 8275 1, 1, 8276 127 8277 }, 8278 #ifdef LIFE_NAMES 8279 {"skewed star (p13)"}, 8280 #endif 8281 { 8282 -2, -3, -1, -3, 0, -3, 8283 -3, -2, 2, -2, 4, -2, 5, -2, 8284 -6, -1, -5, -1, -1, -1, 2, -1, 5, -1, 8285 -6, 0, -3, 0, 5, 0, 8286 -5, 1, 3, 1, 6, 1, 8287 -5, 2, -2, 2, 1, 2, 5, 2, 6, 2, 8288 -5, 3, -4, 3, -2, 3, 3, 3, 8289 0, 4, 1, 4, 2, 4, 8290 127 8291 }, 8292 }; 8293 8294 static char patterns_12B4S35[][2 * NUMPTS + 1] = 8295 { 8296 #ifdef LIFE_NAMES 8297 {"toggle"}, 8298 #endif 8299 { 8300 -1, -2, 0, -2, 1, -2, 8301 -1, -1, 8302 -1, 0, 8303 -1, 1, 0, 1, 1, 1, 8304 127 8305 }, 8306 #ifdef LIFE_NAMES 8307 {"batman"}, 8308 #endif 8309 { 8310 0, -2, 8311 -3, -1, -1, -1, 1, -1, 3, -1, 8312 -2, 0, -1, 0, 1, 0, 2, 0, 8313 -1, 1, 1, 1, 8314 127 8315 }, 8316 #ifdef LIFE_NAMES 8317 {"doily (p3)"}, 8318 #endif 8319 { 8320 -2, -3, 2, -3, 8321 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 8322 -6, 0, -5, 0, 5, 0, 6, 0, 8323 -6, 1, -5, 1, 5, 1, 6, 1, 8324 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 8325 -2, 4, 2, 4, 8326 127 8327 }, 8328 #ifdef LIFE_NAMES 8329 {"2 butterflies (p4)"}, 8330 #endif 8331 { 8332 -2, -2, -1, -2, 8333 -3, -1, -2, -1, 8334 2, 0, 3, 0, 8335 1, 1, 2, 1, 8336 127 8337 }, 8338 #ifdef LIFE_NAMES 8339 {"0231 (p4)"}, 8340 #endif 8341 { 8342 -4, -1, -3, -1, 3, -1, 4, -1, 8343 -4, 0, -3, 0, 3, 0, 4, 0, 8344 127 8345 }, 8346 #ifdef LIFE_NAMES 8347 {"teamwork (p4)"}, 8348 #endif 8349 { 8350 1, -4, 2, -4, 3, -4, 8351 1, -3, 2, -3, 3, -3, 8352 -2, -1, -1, -1, 0, -1, 8353 -2, 0, -1, 0, 0, 0, 8354 1, 2, 2, 2, 3, 2, 8355 1, 3, 2, 3, 3, 3, 8356 127 8357 }, 8358 #ifdef LIFE_NAMES 8359 {"2573 (p4)"}, 8360 #endif 8361 { 8362 -6, -1, -5, -1, 0, -1, 2, -1, 7, -1, 8, -1, 8363 -6, 0, -5, 0, 0, 0, 2, 0, 7, 0, 8, 0, 8364 127 8365 }, 8366 #ifdef LIFE_NAMES 8367 {"3 cats (p5)"}, 8368 #endif 8369 { 8370 -3, -3, -2, -3, -1, -3, 1, -3, 2, -3, 3, -3, 8371 -2, -2, 2, -2, 8372 -3, -1, -2, -1, 2, -1, 3, -1, 8373 -5, 1, -4, 1, 4, 1, 5, 1, 8374 -8, 2, -7, 2, -6, 2, 6, 2, 7, 2, 8, 2, 8375 -7, 3, -2, 3, 2, 3, 7, 3, 8376 -6, 4, -5, 4, -4, 4, -2, 4, 2, 4, 4, 4, 5, 4, 6, 4, 8377 -5, 5, 5, 5, 8378 127 8379 }, 8380 #ifdef LIFE_NAMES 8381 {"06_56_74_30_35_47 (p6)"}, 8382 #endif 8383 { 8384 -8, -1, -7, -1, -1, -1, 0, -1, 2, -1, 5, -1, 6, -1, 8385 -8, 0, -7, 0, -1, 0, 0, 0, 2, 0, 5, 0, 6, 0, 8386 127 8387 }, 8388 }; 8389 8390 static char patterns_12B4S356[][2 * NUMPTS + 1] = 8391 { 8392 #ifdef LIFE_NAMES 8393 {"toggle"}, 8394 #endif 8395 { 8396 -1, -2, 0, -2, 1, -2, 8397 -1, -1, 8398 -1, 0, 8399 -1, 1, 0, 1, 1, 1, 8400 127 8401 }, 8402 #ifdef LIFE_NAMES 8403 {"switch"}, 8404 #endif 8405 { 8406 -2, -1, -1, -1, 8407 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 8408 -2, 1, 8409 127 8410 }, 8411 #ifdef LIFE_NAMES 8412 {"escalator"}, 8413 #endif 8414 { 8415 1, -2, 8416 2, -1, 3, -1, 4, -1, 8417 0, 0, 1, 0, 8418 -3, 1, -2, 1, -1, 1, 8419 0, 2, 8420 127 8421 }, 8422 #ifdef LIFE_NAMES 8423 {"batman"}, 8424 #endif 8425 { 8426 0, -2, 8427 -3, -1, -1, -1, 1, -1, 3, -1, 8428 -2, 0, -1, 0, 1, 0, 2, 0, 8429 -1, 1, 1, 1, 8430 127 8431 }, 8432 #ifdef LIFE_NAMES 8433 {"hazzards (p3)"}, 8434 #endif 8435 { 8436 2, -1, 7, -1, 8, -1, 8437 -7, 0, -6, 0, -2, 0, 0, 0, 1, 0, 3, 0, 7, 0, 8, 0, 8438 -7, 1, -6, 1, -1, 1, 8439 127 8440 }, 8441 #ifdef LIFE_NAMES 8442 {"tickle (p3)"}, 8443 #endif 8444 { 8445 0, -5, 1, -5, 2, -5, 8446 0, -4, 8447 -2, -2, -1, -2, 0, -2, 8448 -2, -1, -1, -1, 8449 -2, 0, -1, 0, 8450 -2, 1, -1, 1, 0, 1, 8451 0, 3, 8452 0, 4, 1, 4, 2, 4, 8453 127 8454 }, 8455 #ifdef LIFE_NAMES 8456 {"pull toy (p3)"}, 8457 #endif 8458 { 8459 -1, -2, 1, -2, 8460 -2, -1, -1, -1, 1, -1, 2, -1, 8461 -6, 0, -4, 0, 4, 0, 6, 0, 8462 -6, 1, -4, 1, 4, 1, 6, 1, 8463 -2, 2, -1, 2, 1, 2, 2, 2, 8464 -1, 3, 1, 3, 8465 127 8466 }, 8467 #ifdef LIFE_NAMES 8468 {"doily (p3)"}, 8469 #endif 8470 { 8471 -2, -3, 2, -3, 8472 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 8473 -6, 0, -5, 0, 5, 0, 6, 0, 8474 -6, 1, -5, 1, 5, 1, 6, 1, 8475 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 8476 -2, 4, 2, 4, 8477 127 8478 }, 8479 #ifdef LIFE_NAMES 8480 {"hexagon (p3)"}, 8481 #endif 8482 { 8483 -2, -3, 2, -3, 8484 -4, -2, 4, -2, 8485 -2, -1, -1, -1, 1, -1, 2, -1, 8486 -6, 0, -3, 0, 3, 0, 6, 0, 8487 -6, 1, -3, 1, 3, 1, 6, 1, 8488 -2, 2, -1, 2, 1, 2, 2, 2, 8489 -4, 3, 4, 3, 8490 -2, 4, 2, 4, 8491 127 8492 }, 8493 #ifdef LIFE_NAMES 8494 {"3 hearts (p3)"}, 8495 #endif 8496 { 8497 0, -5, 8498 -3, -4, -2, -4, 0, -4, 2, -4, 3, -4, 8499 -2, -2, -1, -2, 1, -2, 2, -2, 8500 -4, -1, -1, -1, 0, -1, 1, -1, 4, -1, 8501 -5, 0, -4, 0, -3, 0, -1, 0, 1, 0, 3, 0, 4, 0, 5, 0, 8502 -2, 1, 2, 1, 8503 -9, 2, -6, 2, -5, 2, -4, 2, -3, 2, -1, 2, 1, 2, 3, 2, 4, 2, 5, 2, 6, 2, 9, 2, 8504 -9, 3, -4, 3, -3, 3, 0, 3, 3, 3, 4, 3, 9, 3, 8505 -9, 4, -8, 4, -4, 4, -1, 4, 0, 4, 1, 4, 4, 4, 8, 4, 9, 4, 8506 -7, 5, -6, 5, 6, 5, 7, 5, 8507 127 8508 }, 8509 #ifdef LIFE_NAMES 8510 {"flopping fish (p4)"}, 8511 #endif 8512 { 8513 -1, -1, 2, -1, 8514 -2, 0, -1, 0, 0, 0, 2, 0, 8515 127 8516 }, 8517 #ifdef LIFE_NAMES 8518 {"0231 (p4)"}, 8519 #endif 8520 { 8521 -4, -1, -3, -1, 3, -1, 4, -1, 8522 -4, 0, -3, 0, 3, 0, 4, 0, 8523 127 8524 }, 8525 #ifdef LIFE_NAMES 8526 {"teamwork (p4)"}, 8527 #endif 8528 { 8529 -3, -4, -2, -4, -1, -4, 8530 -3, -3, 8531 0, -1, 1, -1, 8532 0, 0, 1, 0, 8533 -3, 2, 8534 -3, 3, -2, 3, -1, 3, 8535 127 8536 }, 8537 #ifdef LIFE_NAMES 8538 {"2573 (p4)"}, 8539 #endif 8540 { 8541 -6, -1, -5, -1, 0, -1, 2, -1, 7, -1, 8, -1, 8542 -6, 0, -5, 0, 0, 0, 2, 0, 7, 0, 8, 0, 8543 127 8544 }, 8545 #ifdef LIFE_NAMES 8546 {"ratchet (p4)"}, 8547 #endif 8548 { 8549 -2, -2, 0, -2, 1, -2, 3, -2, 8550 -4, -1, -3, -1, -2, -1, 1, -1, 4, -1, 8551 -5, 0, 3, 0, 4, 0, 8552 -4, 1, -3, 1, 5, 1, 8553 -4, 2, -1, 2, 2, 2, 3, 2, 4, 2, 8554 -3, 3, -1, 3, 0, 3, 2, 3, 8555 127 8556 }, 8557 #ifdef LIFE_NAMES 8558 {"mold (p5)"}, 8559 #endif 8560 { 8561 0, -4, 1, -4, 8562 1, -3, 2, -3, 8563 -2, -2, 3, -2, 8564 -3, -1, -2, -1, -1, -1, 1, -1, 8565 -3, 0, -1, 0, 0, 0, 1, 0, 8566 -5, 1, 0, 1, 8567 -4, 2, -3, 2, 8568 -3, 3, -2, 3, 8569 127 8570 }, 8571 #ifdef LIFE_NAMES 8572 {"walking triangle (p6)"}, 8573 #endif 8574 { 8575 -2, -3, -1, -3, 0, -3, 1, -3, 8576 -1, -2, 1, -2, 8577 -2, -1, 0, -1, 2, -1, 4, -1, 8578 -4, 0, -3, 0, -1, 0, 1, 0, 3, 0, 4, 0, 8579 -3, 1, -2, 1, 3, 1, 8580 127 8581 }, 8582 #ifdef LIFE_NAMES 8583 {"X (p6)"}, 8584 #endif 8585 { 8586 -3, -2, -2, -2, -1, -2, 1, -2, 2, -2, 3, -2, 8587 -2, -1, 2, -1, 8588 -1, 0, 0, 0, 1, 0, 8589 -1, 1, 0, 1, 1, 1, 8590 -2, 2, 2, 2, 8591 -3, 3, -2, 3, -1, 3, 1, 3, 2, 3, 3, 3, 8592 127 8593 }, 8594 #ifdef LIFE_NAMES 8595 {"anvil (p6)"}, 8596 #endif 8597 { 8598 0, -5, 2, -5, 8599 -3, -4, -2, -4, 0, -4, 5, -4, 8600 -6, -3, -5, -3, 3, -3, 5, -3, 8601 -4, -2, -1, -2, 1, -2, 5, -2, 8602 -6, -1, 0, -1, 5, -1, 8603 -5, 0, -4, 0, 4, 0, 5, 0, 8604 -3, 1, -2, 1, 1, 1, 4, 1, 8605 0, 2, 1, 2, 8606 127 8607 }, 8608 #ifdef LIFE_NAMES 8609 {"alien teeth (p6)"}, 8610 #endif 8611 { 8612 -3, -6, 3, -6, 8613 -2, -5, 2, -5, 8614 -7, -4, -6, -4, -2, -4, -1, -4, 1, -4, 2, -4, 6, -4, 7, -4, 8615 -8, -3, -3, -3, 3, -3, 8, -3, 8616 -8, -2, 8, -2, 8617 -5, -1, 5, -1, 8618 -9, 0, -7, 0, -6, 0, -5, 0, 5, 0, 6, 0, 7, 0, 9, 0, 8619 -4, 1, 4, 1, 8620 -5, 2, -4, 2, -2, 2, 2, 2, 4, 2, 5, 2, 8621 -6, 3, 6, 3, 8622 -2, 4, -1, 4, 1, 4, 2, 4, 8623 127 8624 }, 8625 #ifdef LIFE_NAMES 8626 {"two sheets (p8)"}, 8627 #endif 8628 { 8629 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 8630 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 8631 127 8632 }, 8633 #ifdef LIFE_NAMES 8634 {"beard (p10)"}, 8635 #endif 8636 { 8637 -1, 0, 1, 0, 8638 -4, 1, -3, 1, -2, 1, 2, 1, 3, 1, 4, 1, 8639 -4, 2, 4, 2, 8640 127 8641 }, 8642 }; 8643 8644 static char patterns_12B4S456[][2 * NUMPTS + 1] = 8645 { 8646 #ifdef LIFE_NAMES 8647 {"fish"}, 8648 #endif 8649 { 8650 -3, 0, -1, 0, 1, 0, 2, 0, 8651 -3, 1, -1, 1, 1, 1, 2, 1, 8652 127 8653 }, 8654 #ifdef LIFE_NAMES 8655 {"cut worm"}, 8656 #endif 8657 { 8658 0, -1, 1, -1, 8659 0, 0, 1, 0, 8660 -1, 1, 0, 1, 8661 -1, 2, 0, 2, 8662 127 8663 }, 8664 #ifdef LIFE_NAMES 8665 {"cut worm2"}, 8666 #endif 8667 { 8668 -1, -2, 1, -2, 8669 -1, -1, 0, -1, 8670 -2, 0, -1, 0, 8671 -3, 1, -1, 1, 8672 127 8673 }, 8674 #ifdef LIFE_NAMES 8675 {"flip"}, 8676 #endif 8677 { 8678 0, -2, 8679 -2, -1, -1, -1, 1, -1, 2, -1, 8680 -1, 0, 1, 0, 8681 -1, 1, 1, 1, 8682 127 8683 }, 8684 #ifdef LIFE_NAMES 8685 {"rotor"}, 8686 #endif 8687 { 8688 -2, -3, 8689 -2, -2, 1, -2, 2, -2, 8690 -5, -1, -4, -1, 8691 2, 0, 3, 0, 8692 -4, 1, -3, 1, 0, 1, 8693 0, 2, 8694 127 8695 }, 8696 #ifdef LIFE_NAMES 8697 {"rotor2"}, 8698 #endif 8699 { 8700 -4, -3, -1, -3, 0, -3, 1, -3, 8701 -5, -2, -4, -2, -2, -2, -1, -2, 1, -2, 3, -2, 8702 -4, -1, -3, -1, 1, -1, 3, -1, 4, -1, 8703 -6, 0, -5, 0, -3, 0, 1, 0, 2, 0, 8704 -5, 1, -3, 1, -1, 1, 0, 1, 2, 1, 3, 1, 8705 -3, 2, -2, 2, -1, 2, 2, 2, 8706 127 8707 }, 8708 #ifdef LIFE_NAMES 8709 {"rotor3"}, 8710 #endif 8711 { 8712 -3, -4, 8713 -4, -3, -3, -3, -2, -3, 1, -3, 2, -3, 3, -3, 8714 -2, -2, -1, -2, 1, -2, 2, -2, 8715 -7, -1, -6, -1, -5, -1, -4, -1, -3, -1, 1, -1, 4, -1, 8716 -6, 0, -3, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 8717 -4, 1, -3, 1, -1, 1, 0, 1, 8718 -5, 2, -4, 2, -3, 2, 0, 2, 1, 2, 2, 2, 8719 1, 3, 8720 127 8721 }, 8722 #ifdef LIFE_NAMES 8723 {"rotor4"}, 8724 #endif 8725 { 8726 0, -3, 8727 -2, -2, 0, -2, 1, -2, 3, -2, 8728 -5, -1, -4, -1, -3, -1, -2, -1, 0, -1, 1, -1, 4, -1, 5, -1, 8729 -5, 0, -2, 0, 2, 0, 3, 0, 4, 0, 8730 -4, 1, -3, 1, -2, 1, 2, 1, 5, 1, 8731 -5, 2, -4, 2, -1, 2, 0, 2, 2, 2, 3, 2, 4, 2, 5, 2, 8732 -3, 3, -1, 3, 0, 3, 2, 3, 8733 0, 4, 8734 127 8735 }, 8736 #ifdef LIFE_NAMES 8737 {"rotor5"}, 8738 #endif 8739 { 8740 0, -3, 8741 -2, -2, 0, -2, 1, -2, 3, -2, 8742 -5, -1, -4, -1, -3, -1, -1, -1, 0, -1, 2, -1, 4, -1, 5, -1, 8743 -5, 0, -3, 0, -2, 0, 2, 0, 4, 0, 8744 -4, 1, -2, 1, 2, 1, 3, 1, 5, 1, 8745 -5, 2, -4, 2, -2, 2, 0, 2, 1, 2, 3, 2, 4, 2, 5, 2, 8746 -3, 3, -1, 3, 0, 3, 2, 3, 8747 0, 4, 8748 127 8749 }, 8750 #ifdef LIFE_NAMES 8751 {"wrench gadget (p3)"}, 8752 #endif 8753 { 8754 -3, -4, 8755 -5, -3, -4, -3, -3, -3, -1, -3, 0, -3, 8756 -5, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 8757 -5, -1, -4, -1, -3, -1, 1, -1, 4, -1, 5, -1, 8758 -5, 0, -4, 0, -3, 0, 1, 0, 4, 0, 5, 0, 8759 -5, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 8760 -5, 2, -4, 2, -3, 2, -1, 2, 0, 2, 8761 -3, 3, 8762 127 8763 }, 8764 #ifdef LIFE_NAMES 8765 {"small change (p4)"}, 8766 #endif 8767 { 8768 -5, -2, -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 5, -2, 8769 -6, -1, -4, -1, 4, -1, 6, -1, 8770 -6, 0, -5, 0, -2, 0, -1, 0, 1, 0, 2, 0, 5, 0, 6, 0, 8771 -5, 1, -3, 1, -1, 1, 0, 1, 1, 1, 3, 1, 5, 1, 8772 127 8773 }, 8774 #ifdef LIFE_NAMES 8775 {"small change2 (p4)"}, 8776 #endif 8777 { 8778 -2, -5, 4, -5, 8779 -3, -4, -1, -4, 0, -4, 1, -4, 2, -4, 3, -4, 5, -4, 8780 -5, -3, -4, -3, 0, -3, 2, -3, 6, -3, 7, -3, 8781 -4, -2, -3, -2, 0, -2, 2, -2, 5, -2, 6, -2, 8782 -4, -1, -3, -1, -1, -1, 0, -1, 2, -1, 3, -1, 5, -1, 6, -1, 8783 -4, 0, -3, 0, -1, 0, 0, 0, 2, 0, 3, 0, 5, 0, 6, 0, 8784 -4, 1, -3, 1, 0, 1, 2, 1, 5, 1, 6, 1, 8785 -5, 2, -4, 2, 0, 2, 2, 2, 6, 2, 7, 2, 8786 -3, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 5, 3, 8787 -2, 4, 4, 4, 8788 127 8789 }, 8790 #ifdef LIFE_NAMES 8791 {"deformed fish (p6)"}, 8792 #endif 8793 { 8794 1, -2, 2, -2, 8795 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 8796 -3, 0, -1, 0, 3, 0, 8797 -3, 1, -1, 1, 3, 1, 8798 -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 3, 2, 8799 1, 3, 2, 3, 8800 127 8801 }, 8802 #ifdef LIFE_NAMES 8803 {"hairy hexagon (p6)"}, 8804 #endif 8805 { 8806 -2, -3, 1, -3, 8807 -5, -2, -3, -2, -2, -2, -1, -2, 1, -2, 2, -2, 3, -2, 4, -2, 8808 -3, -1, 3, -1, 6, -1, 8809 -6, 0, -5, 0, -4, 0, 4, 0, 5, 0, 8810 -5, 1, -4, 1, 4, 1, 5, 1, 6, 1, 8811 -6, 2, -3, 2, 3, 2, 8812 -4, 3, -3, 3, -2, 3, -1, 3, 1, 3, 2, 3, 3, 3, 5, 3, 8813 -1, 4, 2, 4, 8814 127 8815 }, 8816 #ifdef LIFE_NAMES 8817 {"big hexagon (p6)"}, 8818 #endif 8819 { 8820 -3, -4, 3, -4, 8821 -5, -3, -4, -3, -3, -3, -1, -3, 1, -3, 3, -3, 4, -3, 5, -3, 8822 -5, -2, 5, -2, 8823 -6, -1, 6, -1, 8824 -8, 0, -7, 0, 7, 0, 8, 0, 8825 -8, 1, -7, 1, 7, 1, 8, 1, 8826 -6, 2, 6, 2, 8827 -5, 3, 5, 3, 8828 -5, 4, -4, 4, -3, 4, -1, 4, 1, 4, 3, 4, 4, 4, 5, 4, 8829 -3, 5, 3, 5, 8830 127 8831 }, 8832 #ifdef LIFE_NAMES 8833 {"chopper (p8)"}, 8834 #endif 8835 { 8836 3, -4, 8837 0, -3, 2, -3, 4, -3, 6, -3, 8838 -3, -2, -1, -2, 0, -2, 3, -2, 4, -2, 8839 -6, -1, -1, -1, 2, -1, 3, -1, 6, -1, 8840 -5, 0, -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 2, 0, 4, 0, 5, 0, 8841 -6, 1, -4, 1, 1, 1, 2, 1, 5, 1, 6, 1, 8842 -3, 2, -2, 2, -1, 2, 0, 2, 2, 2, 3, 2, 5, 2, 8843 0, 3, 3, 3, 4, 3, 6, 3, 8844 3, 4, 8845 127 8846 }, 8847 #ifdef LIFE_NAMES 8848 {"throwing star (p8)"}, 8849 #endif 8850 { 8851 -3, -4, -1, -4, 8852 -4, -3, -3, -3, -1, -3, 2, -3, 3, -3, 4, -3, 5, -3, 8853 -4, -2, -1, -2, 0, -2, 1, -2, 5, -2, 6, -2, 8854 -7, -1, -6, -1, -4, -1, -3, -1, 0, -1, 3, -1, 4, -1, 8855 -8, 0, -7, 0, -4, 0, -2, 0, 2, 0, 4, 0, 6, 0, 7, 0, 8856 -7, 1, -6, 1, -4, 1, -2, 1, 2, 1, 4, 1, 7, 1, 8, 1, 8857 -4, 2, -3, 2, 0, 2, 3, 2, 4, 2, 6, 2, 7, 2, 8858 -6, 3, -5, 3, -1, 3, 0, 3, 1, 3, 4, 3, 8859 -5, 4, -4, 4, -3, 4, -2, 4, 1, 4, 3, 4, 4, 4, 8860 1, 5, 3, 5, 8861 127 8862 }, 8863 #ifdef LIFE_NAMES 8864 {"throwing star2 (p8)"}, 8865 #endif 8866 { 8867 -3, -4, -1, -4, 8868 -4, -3, -3, -3, -1, -3, 2, -3, 3, -3, 4, -3, 5, -3, 8869 -4, -2, -1, -2, 0, -2, 1, -2, 5, -2, 6, -2, 8870 -7, -1, -6, -1, -4, -1, -3, -1, -2, -1, 1, -1, 3, -1, 4, -1, 8871 -8, 0, -7, 0, -4, 0, 3, 0, 4, 0, 6, 0, 7, 0, 8872 -7, 1, -6, 1, -4, 1, -3, 1, 4, 1, 7, 1, 8, 1, 8873 -4, 2, -3, 2, -1, 2, 2, 2, 3, 2, 4, 2, 6, 2, 7, 2, 8874 -6, 3, -5, 3, -1, 3, 0, 3, 1, 3, 4, 3, 8875 -5, 4, -4, 4, -3, 4, -2, 4, 1, 4, 3, 4, 4, 4, 8876 1, 5, 3, 5, 8877 127 8878 }, 8879 #ifdef LIFE_NAMES 8880 {"throwing star3 (p8)"}, 8881 #endif 8882 { 8883 -3, -4, -1, -4, 8884 -4, -3, -3, -3, -1, -3, 2, -3, 3, -3, 4, -3, 5, -3, 8885 -4, -2, -1, -2, 0, -2, 1, -2, 5, -2, 6, -2, 8886 -7, -1, -6, -1, -4, -1, -3, -1, 3, -1, 4, -1, 8887 -8, 0, -7, 0, -4, 0, -1, 0, 0, 0, 1, 0, 4, 0, 6, 0, 7, 0, 8888 -7, 1, -6, 1, -4, 1, -1, 1, 0, 1, 1, 1, 4, 1, 7, 1, 8, 1, 8889 -4, 2, -3, 2, 3, 2, 4, 2, 6, 2, 7, 2, 8890 -6, 3, -5, 3, -1, 3, 0, 3, 1, 3, 4, 3, 8891 -5, 4, -4, 4, -3, 4, -2, 4, 1, 4, 3, 4, 4, 4, 8892 1, 5, 3, 5, 8893 127 8894 }, 8895 #ifdef LIFE_NAMES 8896 {"David (p9)"}, 8897 #endif 8898 { 8899 0, -1, 8900 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 8901 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 8902 0, 2, 8903 127 8904 }, 8905 #ifdef LIFE_NAMES 8906 {"David2 (p9)"}, 8907 #endif 8908 { 8909 -2, -7, 0, -7, 8910 -2, -6, -1, -6, 0, -6, 8911 -10, -4, -9, -4, 7, -4, 8, -4, 8912 -11, -3, -10, -3, -9, -3, 7, -3, 8, -3, 9, -3, 8913 -1, -2, 8914 -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 8915 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 8916 -1, 1, 8917 -11, 2, -10, 2, -9, 2, 7, 2, 8, 2, 9, 2, 8918 -10, 3, -9, 3, 7, 3, 8, 3, 8919 -2, 5, -1, 5, 0, 5, 8920 -2, 6, 0, 6, 8921 127 8922 }, 8923 #ifdef LIFE_NAMES 8924 {"hexagon (p9)"}, 8925 #endif 8926 { 8927 -3, -5, 2, -5, 8928 -6, -4, -5, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 2, -4, 5, -4, 8929 -6, -3, -5, -3, 3, -3, 4, -3, 8930 -9, -2, -7, -2, -6, -2, 4, -2, 5, -2, 8931 -7, -1, 5, -1, 6, -1, 7, -1, 8932 -9, 0, -8, 0, -7, 0, 5, 0, 8933 -7, 1, -6, 1, 4, 1, 5, 1, 7, 1, 8934 -6, 2, -5, 2, 3, 2, 4, 2, 8935 -7, 3, -4, 3, -3, 3, -2, 3, -1, 3, 0, 3, 1, 3, 3, 3, 4, 3, 8936 -4, 4, 1, 4, 8937 127 8938 }, 8939 #ifdef LIFE_NAMES 8940 {"hexagon2 (p9)"}, 8941 #endif 8942 { 8943 -5, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 3, -3, 5, -3, 8944 -5, -2, -4, -2, -3, -2, 3, -2, 4, -2, 5, -2, 8945 -7, -1, -6, -1, -3, -1, -1, -1, 1, -1, 3, -1, 6, -1, 7, -1, 8946 -5, 0, -4, 0, -2, 0, -1, 0, 1, 0, 2, 0, 4, 0, 5, 0, 8947 -5, 1, -4, 1, -2, 1, -1, 1, 1, 1, 2, 1, 4, 1, 5, 1, 8948 -7, 2, -6, 2, -3, 2, -1, 2, 1, 2, 3, 2, 6, 2, 7, 2, 8949 -5, 3, -4, 3, -3, 3, 3, 3, 4, 3, 5, 3, 8950 -5, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 5, 4, 8951 127 8952 }, 8953 #ifdef LIFE_NAMES 8954 {"Navajo eagle (p10)"}, 8955 #endif 8956 { 8957 -3, -2, 3, -2, 8958 -6, -1, -5, -1, -4, -1, -2, -1, 2, -1, 4, -1, 5, -1, 6, -1, 8959 -5, 0, -4, 0, -1, 0, 1, 0, 4, 0, 5, 0, 8960 -1, 1, 1, 1, 8961 127 8962 }, 8963 #ifdef LIFE_NAMES 8964 {"Navajo eagle2 (p10)"}, 8965 #endif 8966 { 8967 -1, -2, 0, -2, 1, -2, 8968 -6, -1, -5, -1, -4, -1, -2, -1, 2, -1, 4, -1, 5, -1, 6, -1, 8969 -5, 0, -4, 0, -1, 0, 1, 0, 4, 0, 5, 0, 8970 -1, 1, 1, 1, 8971 127 8972 }, 8973 #ifdef LIFE_NAMES 8974 {"Navajo rug (p10)"}, 8975 #endif 8976 { 8977 -6, -3, -5, -3, -4, -3, -2, -3, 0, -3, 2, -3, 3, -3, 4, -3, 8978 -5, -2, -4, -2, 2, -2, 3, -2, 8979 -3, -1, -2, -1, 0, -1, 1, -1, 8980 -3, 0, -2, 0, 0, 0, 1, 0, 8981 -5, 1, -4, 1, 2, 1, 3, 1, 8982 -6, 2, -5, 2, -4, 2, -2, 2, 0, 2, 2, 2, 3, 2, 4, 2, 8983 127 8984 }, 8985 #ifdef LIFE_NAMES 8986 {"fractal (p10)"}, 8987 #endif 8988 { 8989 -5, -4, -4, -4, 2, -4, 3, -4, 8990 -5, -3, -4, -3, -3, -3, 1, -3, 2, -3, 3, -3, 8991 -6, -2, -3, -2, 1, -2, 4, -2, 8992 -7, -1, -3, -1, -2, -1, 0, -1, 1, -1, 5, -1, 8993 -9, 0, -8, 0, -7, 0, -5, 0, -4, 0, -3, 0, 1, 0, 2, 0, 3, 0, 5, 0, 6, 0, 7, 0, 8994 -9, 1, -7, 1, -2, 1, 0, 1, 5, 1, 7, 1, 8995 -3, 2, -2, 2, 0, 2, 1, 2, 8996 -5, 3, -4, 3, 2, 3, 3, 3, 8997 -6, 4, -5, 4, -4, 4, -2, 4, 0, 4, 2, 4, 3, 4, 4, 4, 8998 127 8999 }, 9000 #ifdef LIFE_NAMES 9001 {"inside (p10)"}, 9002 #endif 9003 { 9004 -5, -4, -3, -4, -2, -4, 9005 -6, -3, -4, -3, -1, -3, 0, -3, 9006 -7, -2, -5, -2, -4, -2, 0, -2, 1, -2, 2, -2, 3, -2, 9007 -8, -1, -5, -1, -3, -1, 1, -1, 4, -1, 9008 -8, 0, -7, 0, -6, 0, -2, 0, 2, 0, 3, 0, 5, 0, 9009 -8, 1, -7, 1, -3, 1, -1, 1, 1, 1, 3, 1, 4, 1, 6, 1, 9010 -8, 2, -4, 2, 5, 2, 9011 -9, 3, -8, 3, -6, 3, -5, 3, -4, 3, -3, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 5, 3, 9012 -7, 4, -5, 4, -3, 4, -1, 4, 0, 4, 9013 127 9014 }, 9015 #ifdef LIFE_NAMES 9016 {"triangular pool table (p11)"}, 9017 #endif 9018 { 9019 -7, -2, -6, -2, -5, -2, -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 4, -2, 5, -2, 9020 -7, -1, -6, -1, -2, -1, 0, -1, 4, -1, 5, -1, 9021 -6, 0, -5, 0, -3, 0, -1, 0, 1, 0, 3, 0, 4, 0, 9022 -5, 1, -4, 1, -2, 1, 0, 1, 2, 1, 3, 1, 9023 -4, 2, -3, 2, 1, 2, 2, 2, 9024 -3, 3, -2, 3, 0, 3, 1, 3, 9025 -2, 4, -1, 4, 0, 4, 9026 127 9027 }, 9028 #ifdef LIFE_NAMES 9029 {"throwing star (p19)"}, 9030 #endif 9031 { 9032 -5, -4, -3, -4, 3, -4, 5, -4, 9033 -5, -3, -3, -3, -1, -3, 0, -3, 1, -3, 3, -3, 5, -3, 9034 -7, -2, -6, -2, -3, -2, -2, -2, 2, -2, 3, -2, 6, -2, 7, -2, 9035 -6, -1, -5, -1, -3, -1, 3, -1, 5, -1, 6, -1, 9036 -4, 0, -3, 0, 3, 0, 4, 0, 9037 -3, 1, -1, 1, 0, 1, 1, 1, 3, 1, 9038 -3, 2, -2, 2, 2, 2, 3, 2, 9039 -2, 3, -1, 3, 1, 3, 2, 3, 9040 127 9041 }, 9042 #ifdef LIFE_NAMES 9043 {"internal gear (p24)"}, 9044 #endif 9045 { 9046 -1, -4, 1, -4, 9047 -4, -3, 0, -3, 1, -3, 3, -3, 9048 -6, -2, -5, -2, -2, -2, 3, -2, 6, -2, 9049 -7, -1, -5, -1, 0, -1, 5, -1, 6, -1, 7, -1, 9050 -5, 0, -2, 0, 2, 0, 7, 0, 9051 -7, 1, -2, 1, 2, 1, 5, 1, 9052 -7, 2, -6, 2, -5, 2, 0, 2, 5, 2, 7, 2, 9053 -6, 3, -3, 3, 2, 3, 5, 3, 6, 3, 9054 -3, 4, -1, 4, 0, 4, 4, 4, 9055 -1, 5, 1, 5, 9056 127 9057 }, 9058 }; 9059 9060 static char patterns_12B45S23[][2 * NUMPTS + 1] = 9061 { 9062 #ifdef LIFE_NAMES 9063 {"eye"}, 9064 #endif 9065 { 9066 -2, -1, -1, -1, 0, -1, 9067 -3, 0, 9068 -3, 1, -2, 1, -1, 1, 9069 127 9070 }, 9071 #ifdef LIFE_NAMES 9072 {"slide"}, 9073 #endif 9074 { 9075 -2, -1, 9076 -3, 0, 0, 0, 9077 -2, 1, -1, 1, 0, 1, 9078 127 9079 }, 9080 #ifdef LIFE_NAMES 9081 {"hex"}, 9082 #endif 9083 { 9084 -3, -2, -2, -2, -1, -2, 9085 -3, -1, 1, -1, 2, -1, 9086 -3, 0, 1, 0, 2, 0, 9087 -3, 1, -2, 1, -1, 1, 9088 127 9089 }, 9090 #ifdef LIFE_NAMES 9091 {"hourglass3 (p3)"}, 9092 #endif 9093 { 9094 -2, -1, -1, -1, 1, -1, 2, -1, 9095 -4, 0, 4, 0, 9096 -4, 1, 4, 1, 9097 -2, 2, -1, 2, 1, 2, 2, 2, 9098 127 9099 }, 9100 #ifdef LIFE_NAMES 9101 {"hourglass4 (p4)"}, 9102 #endif 9103 { 9104 -1, -2, 0, -2, 1, -2, 9105 -3, -1, 3, -1, 9106 -3, 0, 3, 0, 9107 -1, 1, 0, 1, 1, 1, 9108 127 9109 }, 9110 #ifdef LIFE_NAMES 9111 {"inverted triangle (p5)"}, 9112 #endif 9113 { 9114 -4, -5, -3, -5, -1, -5, 1, -5, 3, -5, 4, -5, 9115 -5, -4, -4, -4, 4, -4, 5, -4, 9116 -7, -3, -3, -3, 3, -3, 7, -3, 9117 -7, -2, 0, -2, 7, -2, 9118 -8, -1, -7, -1, -5, -1, 5, -1, 7, -1, 8, -1, 9119 -8, 0, -2, 0, 2, 0, 8, 0, 9120 -7, 1, 7, 1, 9121 -6, 2, -2, 2, 2, 2, 6, 2, 9122 -5, 3, -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 5, 3, 9123 0, 4, 9124 127 9125 }, 9126 #ifdef LIFE_NAMES 9127 {"indecisive (p8)"}, 9128 #endif 9129 { 9130 -2, -2, 2, -2, 9131 -3, -1, 2, -1, 3, -1, 9132 -3, 0, 2, 0, 9133 -2, 1, 0, 1, 1, 1, 9134 127 9135 }, 9136 #ifdef LIFE_NAMES 9137 {"fat tumbler (p22)"}, 9138 #endif 9139 { 9140 -1, -2, 9141 -2, -1, -1, -1, 0, -1, 9142 -4, 0, -3, 0, 1, 0, 2, 0, 9143 -4, 1, 2, 1, 9144 -2, 2, 0, 2, 9145 127 9146 }, 9147 }; 9148 9149 static char patterns_12B45S34[][2 * NUMPTS + 1] = 9150 { 9151 #ifdef LIFE_NAMES 9152 {"switch"}, 9153 #endif 9154 { 9155 0, -1, 1, -1, 2, -1, 9156 -3, 0, 1, 0, 2, 0, 9157 -3, 1, -2, 1, -1, 1, 9158 127 9159 }, 9160 #ifdef LIFE_NAMES 9161 {"bat"}, 9162 #endif 9163 { 9164 -2, -1, -1, -1, 1, -1, 2, -1, 9165 -3, 0, 3, 0, 9166 -3, 1, -2, 1, 2, 1, 3, 1, 9167 0, 2, 9168 127 9169 }, 9170 #ifdef LIFE_NAMES 9171 {"David"}, 9172 #endif 9173 { 9174 0, -1, 9175 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 9176 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 9177 0, 2, 9178 127 9179 }, 9180 #ifdef LIFE_NAMES 9181 {"gear"}, 9182 #endif 9183 { 9184 -1, -2, 9185 -1, -1, 2, -1, 3, -1, 9186 -4, 0, -3, 0, 9187 3, 1, 4, 1, 9188 -3, 2, -2, 2, 1, 2, 9189 1, 3, 9190 127 9191 }, 9192 #ifdef LIFE_NAMES 9193 {"bumpy gear"}, 9194 #endif 9195 { 9196 0, -3, 9197 -4, -2, -3, -2, 0, -2, 3, -2, 4, -2, 9198 -3, 0, -2, 0, 2, 0, 3, 0, 9199 0, 1, 9200 0, 2, 9201 127 9202 }, 9203 #ifdef LIFE_NAMES 9204 {"body"}, 9205 #endif 9206 { 9207 -2, -3, -1, -3, 0, -3, 9208 -3, -2, 1, -2, 9209 -2, -1, 0, -1, 9210 -3, 0, 1, 0, 9211 -4, 1, 2, 1, 9212 -4, 2, -3, 2, 1, 2, 2, 2, 9213 -1, 3, 9214 127 9215 }, 9216 #ifdef LIFE_NAMES 9217 {"big gear"}, 9218 #endif 9219 { 9220 -3, -4, 1, -4, 9221 -3, -3, 1, -3, 4, -3, 5, -3, 9222 -6, -2, -5, -2, 9223 6, -1, 7, -1, 9224 -8, 0, -7, 0, 9225 7, 1, 8, 1, 9226 -7, 2, -6, 2, 9227 5, 3, 6, 3, 9228 -5, 4, -4, 4, -1, 4, 3, 4, 9229 -1, 5, 3, 5, 9230 127 9231 }, 9232 #ifdef LIFE_NAMES 9233 {"eight"}, 9234 #endif 9235 { 9236 0, -3, 9237 -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 9238 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 9239 -3, 0, 3, 0, 9240 -3, 1, 3, 1, 9241 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 9242 -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 9243 0, 4, 9244 127 9245 }, 9246 #ifdef LIFE_NAMES 9247 {"pop"}, 9248 #endif 9249 { 9250 -4, -3, -3, -3, -2, -3, 9251 -5, -2, 0, -2, 9252 -5, -1, 0, -1, 9253 -4, 0, -3, 0, -2, 0, 0, 0, 1, 0, 2, 0, 9254 -4, 1, -3, 1, -2, 1, 0, 1, 1, 1, 2, 1, 9255 -5, 2, 0, 2, 9256 -5, 3, 0, 3, 9257 -4, 4, -3, 4, -2, 4, 9258 127 9259 }, 9260 #ifdef LIFE_NAMES 9261 {"big gear2"}, 9262 #endif 9263 { 9264 -3, -4, 1, -4, 9265 -3, -3, -2, -3, 1, -3, 4, -3, 5, -3, 9266 -6, -2, -5, -2, 4, -2, 9267 6, -1, 7, -1, 9268 -8, 0, -7, 0, -6, 0, 9269 6, 1, 7, 1, 8, 1, 9270 -7, 2, -6, 2, 9271 -4, 3, 5, 3, 6, 3, 9272 -5, 4, -4, 4, -1, 4, 2, 4, 3, 4, 9273 -1, 5, 3, 5, 9274 127 9275 }, 9276 #ifdef LIFE_NAMES 9277 {"hexagon (p3)"}, 9278 #endif 9279 { 9280 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 9281 -3, 0, -2, 0, 2, 0, 3, 0, 9282 -3, 1, -2, 1, 2, 1, 3, 1, 9283 -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 9284 127 9285 }, 9286 #ifdef LIFE_NAMES 9287 {"big hexagon (p3)"}, 9288 #endif 9289 { 9290 -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2, -3, 3, -3, 4, -3, 9291 -5, -2, -4, -2, 4, -2, 5, -2, 9292 -6, -1, -5, -1, 5, -1, 6, -1, 9293 -7, 0, -6, 0, 6, 0, 7, 0, 9294 -7, 1, -6, 1, 6, 1, 7, 1, 9295 -6, 2, -5, 2, 5, 2, 6, 2, 9296 -5, 3, -4, 3, 4, 3, 5, 3, 9297 -4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 9298 127 9299 }, 9300 #ifdef LIFE_NAMES 9301 {"jaws (p4)"}, 9302 #endif 9303 { 9304 -5, -2, -3, -2, -1, -2, 1, -2, 3, -2, 5, -2, 9305 -5, -1, -4, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 9306 -2, 0, 2, 0, 9307 -2, 1, 2, 1, 9308 -5, 2, -4, 2, -3, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 9309 -5, 3, -3, 3, -1, 3, 1, 3, 3, 3, 5, 3, 9310 127 9311 }, 9312 #ifdef LIFE_NAMES 9313 {"flexagon (p5)"}, 9314 #endif 9315 { 9316 -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 9317 -4, -1, -3, -1, 3, -1, 4, -1, 9318 -5, 0, -4, 0, 4, 0, 9319 -5, 1, -4, 1, 4, 1, 9320 -4, 2, -3, 2, 3, 2, 4, 2, 9321 -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 9322 127 9323 }, 9324 #ifdef LIFE_NAMES 9325 {"hook clock (p6)"}, 9326 #endif 9327 { 9328 -2, 0, -1, 0, 0, 0, 1, 0, 9329 -2, 1, 1, 1, 9330 127 9331 }, 9332 #ifdef LIFE_NAMES 9333 {"blooms (p10)"}, 9334 #endif 9335 { 9336 1, -4, 2, -4, 3, -4, 4, -4, 5, -4, 9337 2, -3, 5, -3, 6, -3, 9338 -5, -2, -4, -2, 2, -2, 3, -2, 4, -2, 6, -2, 9339 -6, -1, -5, -1, -3, -1, -2, -1, 9340 -6, 0, -5, 0, -3, 0, -2, 0, 9341 -5, 1, -4, 1, 2, 1, 3, 1, 4, 1, 6, 1, 9342 2, 2, 5, 2, 6, 2, 9343 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 9344 127 9345 }, 9346 }; 9347 9348 static char patterns_12B456S12[][2 * NUMPTS + 1] = 9349 { 9350 #ifdef LIFE_NAMES 9351 {"s (p4)"}, 9352 #endif 9353 { 9354 -1, -1, 0, -1, 9355 -1, 0, 0, 0, 9356 -1, 1, 0, 1, 9357 127 9358 }, 9359 #ifdef LIFE_NAMES 9360 {"twist (p4)"}, 9361 #endif 9362 { 9363 -1, -1, 2, -1, 9364 -2, 0, 1, 0, 9365 127 9366 }, 9367 #ifdef LIFE_NAMES 9368 {"twist and untwist (p4)"}, 9369 #endif 9370 { 9371 -2, -1, 0, -1, 9372 0, 1, 1, 1, 9373 127 9374 }, 9375 #ifdef LIFE_NAMES 9376 {"smirk (p4)"}, 9377 #endif 9378 { 9379 -2, -1, 9380 -2, 0, 1, 0, 9381 0, 1, 9382 127 9383 }, 9384 #ifdef LIFE_NAMES 9385 {"greater and less (p4)"}, 9386 #endif 9387 { 9388 0, -1, 2, -1, 9389 -1, 0, 9390 0, 1, 9391 127 9392 }, 9393 #ifdef LIFE_NAMES 9394 {"breakup (p4)"}, 9395 #endif 9396 { 9397 -1, 0, 0, 0, 2, 0, 9398 2, 1, 9399 127 9400 }, 9401 #ifdef LIFE_NAMES 9402 {"carriage (p4)"}, 9403 #endif 9404 { 9405 -2, -1, -1, -1, 9406 -3, 0, 1, 0, 9407 -2, 1, 9408 127 9409 }, 9410 #ifdef LIFE_NAMES 9411 {"wave (p4)"}, 9412 #endif 9413 { 9414 -3, -1, -1, -1, 1, -1, 3, -1, 9415 -2, 0, 2, 0, 9416 127 9417 }, 9418 #ifdef LIFE_NAMES 9419 {"4556 (p4)"}, 9420 #endif 9421 { 9422 -5, 0, -1, 0, 1, 0, 5, 0, 9423 -5, 1, -1, 1, 1, 1, 5, 1, 9424 127 9425 }, 9426 #ifdef LIFE_NAMES 9427 {"69_84_38_57 (p4)"}, 9428 #endif 9429 { 9430 -3, 0, 1, 0, 3, 0, 9431 -3, 1, 1, 1, 3, 1, 9432 127 9433 }, 9434 #ifdef LIFE_NAMES 9435 {"fishbowl (p4)"}, 9436 #endif 9437 { 9438 -2, -1, 2, -1, 9439 0, 0, 1, 0, 9440 0, 1, 1, 1, 9441 -2, 2, 2, 2, 9442 127 9443 }, 9444 #ifdef LIFE_NAMES 9445 {"asym ring (p4)"}, 9446 #endif 9447 { 9448 -3, -1, -1, -1, 9449 -3, 0, -1, 0, 2, 0, 9450 3, 1, 9451 127 9452 }, 9453 #ifdef LIFE_NAMES 9454 {"wamu (p4)"}, 9455 #endif 9456 { 9457 -5, 0, -2, 0, 2, 0, 5, 0, 9458 -4, 1, -1, 1, 1, 1, 4, 1, 9459 127 9460 }, 9461 #ifdef LIFE_NAMES 9462 {"hiding monster (p4)"}, 9463 #endif 9464 { 9465 -4, 0, -3, 0, -1, 0, 1, 0, 3, 0, 4, 0, 9466 -4, 1, -3, 1, -2, 1, 0, 1, 2, 1, 3, 1, 4, 1, 9467 127 9468 }, 9469 #ifdef LIFE_NAMES 9470 {"inverting star (p4)"}, 9471 #endif 9472 { 9473 1, -2, 9474 -3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 9475 -3, 0, 3, 0, 4, 0, 9476 -4, 1, -3, 1, 3, 1, 9477 -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 9478 -1, 3, 9479 127 9480 }, 9481 #ifdef LIFE_NAMES 9482 {"hexagon and bowties (p4)"}, 9483 #endif 9484 { 9485 1, -2, 9486 3, -1, 9487 -4, 0, -1, 0, 0, 0, 1, 0, 9488 -4, 1, -1, 1, 0, 1, 1, 1, 9489 3, 2, 9490 1, 3, 9491 127 9492 }, 9493 #ifdef LIFE_NAMES 9494 {"3 bows (p4)"}, 9495 #endif 9496 { 9497 -3, -3, -2, -3, 0, -3, 2, -3, 3, -3, 9498 0, -2, 9499 -5, -1, -4, -1, 0, -1, 4, -1, 5, -1, 9500 -3, 0, -2, 0, 2, 0, 3, 0, 9501 -2, 1, 2, 1, 9502 -2, 2, 2, 2, 9503 127 9504 }, 9505 #ifdef LIFE_NAMES 9506 {"compressor (p5)"}, 9507 #endif 9508 { 9509 -3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 3, -1, 9510 -3, 2, -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 9511 127 9512 }, 9513 #ifdef LIFE_NAMES 9514 {"star (p5)"}, 9515 #endif 9516 { 9517 -5, -6, 3, -6, 9518 -7, -5, 5, -5, 9519 -5, -4, -4, -4, 2, -4, 3, -4, 9520 -1, -2, 9521 -11, -1, -8, -1, -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 6, -1, 9, -1, 9522 -11, 0, -8, 0, -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 6, 0, 9, 0, 9523 -1, 1, 9524 -5, 3, -4, 3, 2, 3, 3, 3, 9525 -7, 4, 5, 4, 9526 -5, 5, 3, 5, 9527 127 9528 }, 9529 #ifdef LIFE_NAMES 9530 {"flipping triangle (p6)"}, 9531 #endif 9532 { 9533 -1, -1, 1, -1, 9534 -2, 0, 2, 0, 9535 -2, 2, 0, 2, 2, 2, 9536 127 9537 }, 9538 #ifdef LIFE_NAMES 9539 {"asym flipping triangle (p6)"}, 9540 #endif 9541 { 9542 -1, -2, 0, -2, 9543 -4, -1, 0, -1, 1, -1, 2, -1, 9544 -3, 0, 1, 0, 9545 -2, 1, 9546 127 9547 }, 9548 #ifdef LIFE_NAMES 9549 {"bracelet (p6)"}, 9550 #endif 9551 { 9552 -5, -1, -2, -1, 2, -1, 5, -1, 9553 -5, 0, -2, 0, 2, 0, 5, 0, 9554 127 9555 }, 9556 #ifdef LIFE_NAMES 9557 {"bracelet2 (p6)"}, 9558 #endif 9559 { 9560 -6, -1, -3, -1, -1, -1, 1, -1, 3, -1, 6, -1, 9561 -5, 0, -1, 0, 1, 0, 5, 0, 9562 127 9563 }, 9564 #ifdef LIFE_NAMES 9565 {"batman (p6)"}, 9566 #endif 9567 { 9568 1, -2, 9569 0, -1, 1, -1, 9570 -2, 0, -1, 0, 2, 0, 9571 -2, 1, -1, 1, 2, 1, 9572 0, 2, 1, 2, 9573 1, 3, 9574 127 9575 }, 9576 #ifdef LIFE_NAMES 9577 {"dancing flame (p8)"}, 9578 #endif 9579 { 9580 -2, 0, -1, 0, 0, 0, 2, 0, 9581 2, 1, 9582 127 9583 }, 9584 #ifdef LIFE_NAMES 9585 {"asym burner (p8)"}, 9586 #endif 9587 { 9588 -2, -1, 2, -1, 9589 -2, 0, 2, 0, 9590 -3, 1, -1, 1, 1, 1, 3, 1, 5, 1, 9591 127 9592 }, 9593 #ifdef LIFE_NAMES 9594 {"producer (p8)"}, 9595 #endif 9596 { 9597 3, -2, 9598 -3, -1, 0, -1, 1, -1, 2, -1, 9599 -3, 0, 0, 0, 1, 0, 2, 0, 9600 3, 1, 9601 127 9602 }, 9603 #ifdef LIFE_NAMES 9604 {"monster (p8)"}, 9605 #endif 9606 { 9607 -2, -1, 2, -1, 9608 -5, 0, -3, 0, 3, 0, 5, 0, 9609 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 9610 -2, 2, 2, 2, 9611 127 9612 }, 9613 #ifdef LIFE_NAMES 9614 {"Zoro (p9)"}, 9615 #endif 9616 { 9617 2, -3, 9618 -1, -2, 2, -2, 9619 0, -1, 9620 0, 0, 9621 -2, 1, 1, 1, 9622 -2, 2, 9623 127 9624 }, 9625 }; 9626 9627 static char patterns_12B456S23[][2 * NUMPTS + 1] = 9628 { 9629 #ifdef LIFE_NAMES 9630 {"fish"}, 9631 #endif 9632 { 9633 -1, 0, 0, 0, 2, 0, 9634 -1, 1, 1, 1, 2, 1, 9635 127 9636 }, 9637 #ifdef LIFE_NAMES 9638 {"eye"}, 9639 #endif 9640 { 9641 -2, -1, -1, -1, 0, -1, 9642 -3, 0, 9643 -3, 1, -2, 1, -1, 1, 9644 127 9645 }, 9646 #ifdef LIFE_NAMES 9647 {"radiation fallout"}, 9648 #endif 9649 { 9650 2, -1, 9651 -2, 0, 0, 0, 2, 0, 3, 0, 9652 -1, 1, 1, 1, 9653 127 9654 }, 9655 #ifdef LIFE_NAMES 9656 {"hex"}, 9657 #endif 9658 { 9659 -3, -2, -2, -2, -1, -2, 9660 -3, -1, 1, -1, 2, -1, 9661 -3, 0, 1, 0, 2, 0, 9662 -3, 1, -2, 1, -1, 1, 9663 127 9664 }, 9665 #ifdef LIFE_NAMES 9666 {"cat (p4)"}, 9667 #endif 9668 { 9669 -2, -2, 0, -2, 2, -2, 9670 -1, -1, 1, -1, 9671 -1, 0, 0, 0, 1, 0, 9672 127 9673 }, 9674 #ifdef LIFE_NAMES 9675 {"hourglass4 (p4)"}, 9676 #endif 9677 { 9678 -1, -2, 0, -2, 1, -2, 9679 -3, -1, 3, -1, 9680 -3, 0, 3, 0, 9681 -1, 1, 0, 1, 1, 1, 9682 127 9683 }, 9684 #ifdef LIFE_NAMES 9685 {"big hourglass (p4)"}, 9686 #endif 9687 { 9688 -1, -3, 1, -3, 9689 -1, -2, 0, -2, 1, -2, 9690 -4, -1, -1, -1, 0, -1, 1, -1, 4, -1, 9691 -4, 0, 4, 0, 9692 -4, 1, 4, 1, 9693 -4, 2, -1, 2, 0, 2, 1, 2, 4, 2, 9694 -1, 3, 0, 3, 1, 3, 9695 -1, 4, 1, 4, 9696 127 9697 }, 9698 #ifdef LIFE_NAMES 9699 {"maine coon (p6)"}, 9700 #endif 9701 { 9702 0, -3, 1, -3, 2, -3, 9703 -6, -2, -5, -2, -4, -2, -3, -2, -2, -2, 3, -2, 4, -2, 9704 -5, -1, -4, -1, 9705 -5, 0, -4, 0, 9706 -6, 1, -5, 1, -4, 1, -3, 1, -2, 1, 3, 1, 4, 1, 9707 0, 2, 1, 2, 2, 2, 9708 127 9709 }, 9710 #ifdef LIFE_NAMES 9711 {"chalice (p6)"}, 9712 #endif 9713 { 9714 -4, -5, -1, -5, 2, -5, 9715 -4, -4, 2, -4, 9716 -3, -3, -2, -3, 0, -3, 1, -3, 9717 -7, -2, -1, -2, 5, -2, 9718 -8, -1, -5, -1, -1, -1, 3, -1, 6, -1, 9719 -8, 0, -5, 0, -1, 0, 3, 0, 6, 0, 9720 -7, 1, -1, 1, 5, 1, 9721 -3, 2, -2, 2, 0, 2, 1, 2, 9722 -4, 3, 2, 3, 9723 -4, 4, -1, 4, 2, 4, 9724 127 9725 }, 9726 #ifdef LIFE_NAMES 9727 {"water sprayer (p7)"}, 9728 #endif 9729 { 9730 3, -4, 9731 0, -3, 1, -3, 5, -3, 9732 -3, -2, 5, -2, 9733 -5, -1, 0, -1, 1, -1, 2, -1, 9734 -5, 0, 0, 0, 1, 0, 2, 0, 5, 0, 9735 -3, 1, -2, 1, 5, 1, 9736 1, 2, 5, 2, 9737 3, 3, 9738 127 9739 }, 9740 #ifdef LIFE_NAMES 9741 {"bee (p10)"}, 9742 #endif 9743 { 9744 0, -1, 1, -1, 9745 0, 0, 9746 0, 1, 9747 0, 2, 1, 2, 9748 127 9749 }, 9750 #ifdef LIFE_NAMES 9751 {"grinder (p12)"}, 9752 #endif 9753 { 9754 0, -4, 9755 -5, -3, -4, -3, -2, -3, 0, -3, 1, -3, 2, -3, 9756 -4, -2, -2, -2, 2, -2, 9757 -6, -1, -5, -1, 3, -1, 4, -1, 5, -1, 9758 -6, 0, -5, 0, 2, 0, 3, 0, 9759 -7, 1, -4, 1, -3, 1, 2, 1, 9760 -3, 2, -2, 2, 0, 2, 1, 2, 2, 2, 4, 2, 9761 -3, 3, 9762 127 9763 }, 9764 #ifdef LIFE_NAMES 9765 {"owl (p16)"}, 9766 #endif 9767 { 9768 -4, -2, -2, -2, 0, -2, 2, -2, 4, -2, 9769 -5, -1, -4, -1, -3, -1, 3, -1, 4, -1, 5, -1, 9770 -3, 0, 3, 0, 9771 127 9772 }, 9773 #ifdef LIFE_NAMES 9774 {"prop (p19)"}, 9775 #endif 9776 { 9777 -5, -4, -3, -4, -2, -4, 0, -4, 2, -4, 3, -4, 9778 -6, -3, -4, -3, -2, -3, 5, -3, 6, -3, 9779 -6, -2, 5, -2, 7, -2, 9780 -6, -1, 4, -1, 6, -1, 9781 -6, 0, 6, 0, 9782 -5, 1, -2, 1, 5, 1, 9783 -4, 2, -3, 2, -1, 2, 3, 2, 4, 2, 9784 -2, 3, 0, 3, 1, 3, 9785 127 9786 }, 9787 }; 9788 9789 static char patterns_12B456S34[][2 * NUMPTS + 1] = 9790 { 9791 #ifdef LIFE_NAMES 9792 {"triangle"}, 9793 #endif 9794 { 9795 -2, -1, -1, -1, 1, -1, 2, -1, 9796 -2, 0, 2, 0, 9797 -1, 1, 0, 1, 1, 1, 9798 127 9799 }, 9800 #ifdef LIFE_NAMES 9801 {"bat"}, 9802 #endif 9803 { 9804 -2, -1, -1, -1, 1, -1, 2, -1, 9805 -3, 0, 3, 0, 9806 -3, 1, -2, 1, 2, 1, 3, 1, 9807 0, 2, 9808 127 9809 }, 9810 #ifdef LIFE_NAMES 9811 {"David"}, 9812 #endif 9813 { 9814 0, -1, 9815 -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 9816 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 9817 0, 2, 9818 127 9819 }, 9820 #ifdef LIFE_NAMES 9821 {"gear"}, 9822 #endif 9823 { 9824 -1, -2, 9825 -1, -1, 2, -1, 3, -1, 9826 -4, 0, -3, 0, 9827 3, 1, 4, 1, 9828 -3, 2, -2, 2, 1, 2, 9829 1, 3, 9830 127 9831 }, 9832 #ifdef LIFE_NAMES 9833 {"bumpy gear"}, 9834 #endif 9835 { 9836 0, -3, 9837 -4, -2, -3, -2, 0, -2, 3, -2, 4, -2, 9838 -3, 0, -2, 0, 2, 0, 3, 0, 9839 0, 1, 9840 0, 2, 9841 127 9842 }, 9843 #ifdef LIFE_NAMES 9844 {"star eclipse"}, 9845 #endif 9846 { 9847 1, -2, 9848 -2, -1, -1, -1, 3, -1, 4, -1, 9849 -4, 0, -3, 0, -2, 0, -1, 0, 4, 0, 9850 -4, 1, -3, 1, -2, 1, -1, 1, 0, 1, 2, 1, 3, 1, 9851 -2, 2, 9852 127 9853 }, 9854 #ifdef LIFE_NAMES 9855 {"big gear"}, 9856 #endif 9857 { 9858 -3, -4, 1, -4, 9859 -3, -3, 1, -3, 4, -3, 5, -3, 9860 -6, -2, -5, -2, 9861 6, -1, 7, -1, 9862 -8, 0, -7, 0, 9863 7, 1, 8, 1, 9864 -7, 2, -6, 2, 9865 5, 3, 6, 3, 9866 -5, 4, -4, 4, -1, 4, 3, 4, 9867 -1, 5, 3, 5, 9868 127 9869 }, 9870 #ifdef LIFE_NAMES 9871 {"double eclipse"}, 9872 #endif 9873 { 9874 -3, -2, 3, -2, 9875 -6, -1, -5, -1, -1, -1, 0, -1, 1, -1, 5, -1, 6, -1, 9876 -6, 0, -1, 0, 0, 0, 1, 0, 6, 0, 9877 -5, 1, -4, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4, 1, 5, 1, 9878 0, 2, 9879 127 9880 }, 9881 #ifdef LIFE_NAMES 9882 {"double bat"}, 9883 #endif 9884 { 9885 3, -2, 9886 0, -1, 1, -1, 5, -1, 6, -1, 9887 -5, 0, -4, 0, -2, 0, -1, 0, 0, 0, 1, 0, 6, 0, 9888 -6, 1, -1, 1, 0, 1, 1, 1, 2, 1, 4, 1, 5, 1, 9889 -6, 2, -5, 2, -1, 2, 0, 2, 9890 -3, 3, 9891 127 9892 }, 9893 #ifdef LIFE_NAMES 9894 {"pop"}, 9895 #endif 9896 { 9897 -4, -3, -3, -3, -2, -3, 9898 -5, -2, 0, -2, 9899 -5, -1, 0, -1, 9900 -4, 0, -3, 0, -2, 0, 0, 0, 1, 0, 2, 0, 9901 -4, 1, -3, 1, -2, 1, 0, 1, 1, 1, 2, 1, 9902 -5, 2, 0, 2, 9903 -5, 3, 0, 3, 9904 -4, 4, -3, 4, -2, 4, 9905 127 9906 }, 9907 #ifdef LIFE_NAMES 9908 {"big gear2"}, 9909 #endif 9910 { 9911 -3, -4, 1, -4, 9912 -3, -3, -2, -3, 1, -3, 4, -3, 5, -3, 9913 -6, -2, -5, -2, 4, -2, 9914 6, -1, 7, -1, 9915 -8, 0, -7, 0, -6, 0, 9916 6, 1, 7, 1, 8, 1, 9917 -7, 2, -6, 2, 9918 -4, 3, 5, 3, 6, 3, 9919 -5, 4, -4, 4, -1, 4, 2, 4, 3, 4, 9920 -1, 5, 3, 5, 9921 127 9922 }, 9923 #ifdef LIFE_NAMES 9924 {"Goliath (p3)"}, 9925 #endif 9926 { 9927 -1, -2, 0, -2, 1, -2, 9928 -4, -1, -3, -1, 3, -1, 4, -1, 9929 -4, 0, 4, 0, 9930 -4, 1, 4, 1, 9931 -4, 2, -3, 2, 3, 2, 4, 2, 9932 -1, 3, 0, 3, 1, 3, 9933 127 9934 }, 9935 #ifdef LIFE_NAMES 9936 {"another mouth (p4)"}, 9937 #endif 9938 { 9939 -1, -2, 0, -2, 1, -2, 9940 -2, -1, 1, -1, 9941 -2, 0, 1, 0, 9942 1, 1, 9943 -2, 2, -1, 2, 0, 2, 9944 127 9945 }, 9946 #ifdef LIFE_NAMES 9947 {"mouth (p4)"}, 9948 #endif 9949 { 9950 -4, -1, -3, -1, -1, -1, 0, -1, 9951 -4, 0, 2, 0, 3, 0, 9952 -1, 1, 0, 1, 2, 1, 3, 1, 9953 127 9954 }, 9955 #ifdef LIFE_NAMES 9956 {"double hat (p5)"}, 9957 #endif 9958 { 9959 0, -3, 9960 -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 9961 -1, 0, 0, 0, 1, 0, 9962 -1, 1, 0, 1, 1, 1, 9963 -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 9964 0, 4, 9965 127 9966 }, 9967 #ifdef LIFE_NAMES 9968 {"ellipse (p5)"}, 9969 #endif 9970 { 9971 0, -3, 1, -3, 2, -3, 9972 -2, -2, 4, -2, 9973 -4, -1, -3, -1, 4, -1, 5, -1, 9974 -4, 0, -3, 0, 4, 0, 5, 0, 9975 -4, 1, -3, 1, 4, 1, 5, 1, 9976 -3, 2, 3, 2, 9977 -1, 3, 0, 3, 1, 3, 9978 127 9979 }, 9980 #ifdef LIFE_NAMES 9981 {"triple smile (p5)"}, 9982 #endif 9983 { 9984 -3, -3, -2, -3, 2, -3, 3, -3, 9985 -5, -2, -2, -2, 2, -2, 5, -2, 9986 -6, -1, -2, -1, 2, -1, 6, -1, 9987 -3, 0, -2, 0, 2, 0, 3, 0, 9988 -7, 1, -6, 1, -5, 1, 5, 1, 6, 1, 7, 1, 9989 -1, 2, 0, 2, 1, 2, 9990 -4, 3, -3, 3, 3, 3, 4, 3, 9991 -4, 4, -1, 4, 1, 4, 4, 4, 9992 127 9993 }, 9994 #ifdef LIFE_NAMES 9995 {"fish clock (p6)"}, 9996 #endif 9997 { 9998 0, -2, 9999 -1, -1, 2, -1, 10000 -1, 0, 0, 0, 1, 0, 2, 0, 10001 127 10002 }, 10003 #ifdef LIFE_NAMES 10004 {"big fish clock (p6)"}, 10005 #endif 10006 { 10007 -2, -1, -1, -1, 1, -1, 2, -1, 10008 -2, 0, 1, 0, 2, 0, 10009 -2, 1, 0, 1, 1, 1, 2, 1, 10010 127 10011 }, 10012 #ifdef LIFE_NAMES 10013 {"king snails (p7)"}, 10014 #endif 10015 { 10016 0, -3, 2, -3, 10017 0, -2, 1, -2, 2, -2, 10018 3, -1, 4, -1, 10019 -6, 0, -5, 0, 2, 0, 3, 0, 10020 -7, 1, -6, 1, 10021 -5, 2, -4, 2, -3, 2, 10022 -5, 3, -3, 3, 10023 127 10024 }, 10025 #ifdef LIFE_NAMES 10026 {"bloom (p8)"}, 10027 #endif 10028 { 10029 -5, -4, -4, -4, -2, -4, -1, -4, 10030 -6, -3, -1, -3, 0, -3, 10031 -6, -2, -5, -2, 0, -2, 1, -2, 2, -2, 3, -2, 4, -2, 5, -2, 10032 -5, -1, -4, -1, -2, -1, -1, -1, 0, -1, 6, -1, 10033 -5, 0, -4, 0, -2, 0, -1, 0, 0, 0, 6, 0, 10034 -6, 1, -5, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 10035 -6, 2, -1, 2, 0, 2, 10036 -5, 3, -4, 3, -2, 3, -1, 3, 10037 127 10038 }, 10039 #ifdef LIFE_NAMES 10040 {"AV (p26)"}, 10041 #endif 10042 { 10043 -4, -3, -3, -3, -1, -3, 0, -3, 1, -3, 2, -3, 10044 -5, -2, 3, -2, 4, -2, 10045 -5, -1, 3, -1, 10046 -5, 0, 3, 0, 10047 -6, 1, -5, 1, 3, 1, 10048 -4, 2, -3, 2, -2, 2, -1, 2, 1, 2, 2, 2, 10049 127 10050 }, 10051 }; 10052 10053 static char patterns_12B456S45[][2 * NUMPTS + 1] = 10054 { 10055 #ifdef LIFE_NAMES 10056 {"glider (diagonal c/4, p8)"}, 10057 #endif 10058 { 10059 -1, -2, 1, -2, 10060 -1, -1, 2, -1, 10061 3, 0, 10062 -4, 1, -3, 1, -2, 1, 2, 1, 10063 -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 10064 0, 3, 10065 127 10066 }, 10067 #ifdef LIFE_NAMES 10068 {"double glider (diagonal 2c/11, p11)"}, 10069 #endif 10070 { 10071 -7, -1, -6, -1, 0, -1, 6, -1, 7, -1, 10072 -7, 0, -6, 0, -5, 0, 0, 0, 5, 0, 6, 0, 7, 0, 10073 -7, 1, -3, 1, -1, 1, 1, 1, 3, 1, 7, 1, 10074 127 10075 }, 10076 #ifdef LIFE_NAMES 10077 {"open"}, 10078 #endif 10079 { 10080 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 10081 -4, 0, -3, 0, -2, 0, -1, 0, 0, 0, 10082 127 10083 }, 10084 #ifdef LIFE_NAMES 10085 {"deformed open"}, 10086 #endif 10087 { 10088 -3, -1, -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 10089 -3, 0, -2, 0, -1, 0, 0, 0, 10090 -3, 1, 10091 127 10092 }, 10093 #ifdef LIFE_NAMES 10094 {"pinch (p3)"}, 10095 #endif 10096 { 10097 -1, -1, 0, -1, 1, -1, 10098 -1, 0, 0, 0, 1, 0, 10099 127 10100 }, 10101 #ifdef LIFE_NAMES 10102 {"flipping s (p4)"}, 10103 #endif 10104 { 10105 0, -2, 1, -2, 10106 1, -1, 2, -1, 3, -1, 10107 -1, 0, 0, 0, 1, 0, 2, 0, 10108 -2, 1, -1, 1, 0, 1, 10109 0, 2, 1, 2, 10110 127 10111 }, 10112 #ifdef LIFE_NAMES 10113 {"triangle (p4)"}, 10114 #endif 10115 { 10116 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 10117 -3, 0, 3, 0, 10118 -3, 1, -2, 1, 2, 1, 3, 1, 10119 -2, 2, -1, 2, 1, 2, 2, 2, 10120 127 10121 }, 10122 #ifdef LIFE_NAMES 10123 {"pyramid clock (p6)"}, 10124 #endif 10125 { 10126 -2, -1, -1, -1, 1, -1, 10127 -2, 0, -1, 0, 0, 0, 10128 -1, 1, 10129 127 10130 }, 10131 #ifdef LIFE_NAMES 10132 {"torso (p6)"}, 10133 #endif 10134 { 10135 -1, -2, 1, -2, 10136 -2, -1, -1, -1, 1, -1, 2, -1, 10137 -1, 0, 1, 0, 10138 -2, 1, -1, 1, 1, 1, 2, 1, 10139 127 10140 }, 10141 #ifdef LIFE_NAMES 10142 {"3 toasters (p8)"}, 10143 #endif 10144 { 10145 -4, -7, -2, -7, 2, -7, 4, -7, 10146 -8, -6, -7, -6, -4, -6, 0, -6, 4, -6, 7, -6, 8, -6, 10147 -1, -5, 1, -5, 10148 -10, -4, -9, -4, 9, -4, 10, -4, 10149 -12, -2, -11, -2, 11, -2, 12, -2, 10150 -11, 0, -10, 0, 10, 0, 11, 0, 10151 -10, 1, -7, 1, 7, 1, 10, 1, 10152 -8, 2, -6, 2, 6, 2, 8, 2, 10153 -8, 3, 8, 3, 10154 -7, 4, -6, 4, 6, 4, 7, 4, 10155 -4, 5, 0, 5, 4, 5, 10156 -4, 6, 0, 6, 4, 6, 10157 127 10158 }, 10159 #ifdef LIFE_NAMES 10160 {"dog face (p10)"}, 10161 #endif 10162 { 10163 -2, -3, -1, -3, 0, -3, 10164 -4, -2, -2, -2, -1, -2, 0, -2, 2, -2, 10165 -1, -1, 10166 -5, 0, 3, 0, 10167 -6, 1, -5, 1, -4, 1, -3, 1, -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 10168 -6, 2, -4, 2, 2, 2, 4, 2, 10169 -4, 3, -2, 3, 0, 3, 2, 3, 10170 127 10171 }, 10172 #ifdef LIFE_NAMES 10173 {"trapazoid (p18)"}, 10174 #endif 10175 { 10176 -3, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 3, -2, 10177 -4, -1, 4, -1, 10178 -4, 0, -3, 0, 3, 0, 4, 0, 10179 -3, 1, -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 10180 127 10181 }, 10182 }; 10183 10184 static char patterns_12B46S24[][2 * NUMPTS + 1] = 10185 { 10186 #ifdef LIFE_NAMES 10187 {"diamond (p3)"}, 10188 #endif 10189 { 10190 -3, -1, -1, -1, 1, -1, 10191 -3, 0, -1, 0, 1, 0, 10192 127 10193 }, 10194 #ifdef LIFE_NAMES 10195 {"234 (p3)"}, 10196 #endif 10197 { 10198 -1, -1, 1, -1, 10199 -1, 0, 1, 0, 10200 127 10201 }, 10202 #ifdef LIFE_NAMES 10203 {"344 (p3)"}, 10204 #endif 10205 { 10206 0, -1, 10207 -3, 0, 0, 0, 3, 0, 10208 -3, 1, 0, 1, 3, 1, 10209 0, 2, 10210 127 10211 }, 10212 #ifdef LIFE_NAMES 10213 {"big David (p3)"}, 10214 #endif 10215 { 10216 -2, -3, 0, -3, 2, -3, 10217 -4, -2, -1, -2, 0, -2, 1, -2, 4, -2, 10218 -5, -1, -4, -1, -3, -1, 3, -1, 4, -1, 5, -1, 10219 -6, 0, -4, 0, 4, 0, 6, 0, 10220 -6, 1, -4, 1, 4, 1, 6, 1, 10221 -5, 2, -4, 2, -3, 2, 3, 2, 4, 2, 5, 2, 10222 -4, 3, -1, 3, 0, 3, 1, 3, 4, 3, 10223 -2, 4, 0, 4, 2, 4, 10224 127 10225 }, 10226 #ifdef LIFE_NAMES 10227 {"2 face (p4)"}, 10228 #endif 10229 { 10230 1, -1, 2, -1, 10231 0, 0, 1, 0, 2, 0, 10232 -2, 1, 0, 1, 10233 -2, 2, 10234 127 10235 }, 10236 #ifdef LIFE_NAMES 10237 {"ratchet (p4)"}, 10238 #endif 10239 { 10240 -3, -2, -1, -2, 2, -2, 10241 -1, -1, 0, -1, 2, -1, 3, -1, 10242 -4, 0, -3, 0, -2, 0, 2, 0, 5, 0, 10243 -5, 1, -2, 1, 2, 1, 3, 1, 4, 1, 10244 -3, 2, -2, 2, 0, 2, 1, 2, 10245 -2, 3, 1, 3, 3, 3, 10246 127 10247 }, 10248 #ifdef LIFE_NAMES 10249 {"ties (p5)"}, 10250 #endif 10251 { 10252 -3, -2, -2, -2, 0, -2, 1, -2, 10253 -5, -1, 3, -1, 10254 -5, 0, 3, 0, 10255 -3, 1, -2, 1, 0, 1, 1, 1, 10256 127 10257 }, 10258 #ifdef LIFE_NAMES 10259 {"skewed star (p7)"}, 10260 #endif 10261 { 10262 1, -4, 10263 1, -3, 10264 -6, -2, -5, -2, 1, -2, 10265 -3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 6, -1, 7, -1, 10266 -3, -0, 3, -0, 4, -0, 10267 -4, 1, -3, 1, 3, 1, 10268 -7, 2, -6, 2, -2, 2, -1, 2, 1, 2, 2, 2, 3, 2, 10269 -1, 3, 5, 3, 6, 3, 10270 -1, 4, 10271 -1, 5, 10272 127 10273 }, 10274 #ifdef LIFE_NAMES 10275 {"drum (p8)"}, 10276 #endif 10277 { 10278 -4, -2, -2, -2, -1, -2, 10279 -4, -1, 1, -1, 10280 -4, 0, 2, 0, 10281 -4, 1, 2, 1, 10282 -4, 2, 1, 2, 10283 -4, 3, -2, 3, -1, 3, 10284 127 10285 }, 10286 #ifdef LIFE_NAMES 10287 {"23443 (p10)"}, 10288 #endif 10289 { 10290 -5, -3, 5, -3, 10291 -6, -2, -5, -2, 5, -2, 6, -2, 10292 -1, -1, 1, -1, 10293 -1, 0, 1, 0, 10294 -6, 1, -5, 1, 5, 1, 6, 1, 10295 -5, 2, 5, 2, 10296 127 10297 }, 10298 #ifdef LIFE_NAMES 10299 {"Penrose Triangle (p10)"}, 10300 #endif 10301 { 10302 -3, -4, 10303 -5, -3, -3, -3, -2, -3, 0, -3, 10304 0, -2, 1, -2, 10305 -4, -1, 5, -1, 10306 -5, 0, -4, 0, 3, 0, 4, 0, 5, 0, 10307 -4, 1, 0, 1, 1, 1, 2, 1, 10308 -5, 2, -4, 2, 10309 -3, 3, 10310 127 10311 }, 10312 #ifdef LIFE_NAMES 10313 {"toggle (p14)"}, 10314 #endif 10315 { 10316 -1, -2, 0, -2, 1, -2, 2, -2, 10317 -6, -1, 10318 -6, 0, -4, 0, 5, 0, 7, 0, 10319 7, 1, 10320 -1, 2, 0, 2, 1, 2, 2, 2, 10321 127 10322 }, 10323 #ifdef LIFE_NAMES 10324 {"boats (p16)"}, 10325 #endif 10326 { 10327 -1, -2, 0, -2, 1, -2, 3, -2, 10328 3, -1, 4, -1, 5, -1, 10329 -4, 1, -3, 1, -2, 1, 10330 -2, 2, 0, 2, 1, 2, 2, 2, 10331 127 10332 }, 10333 }; 10334 10335 static char patterns_12B46S246[][2 * NUMPTS + 1] = 10336 { 10337 #ifdef LIFE_NAMES 10338 {"234 (p3)"}, 10339 #endif 10340 { 10341 -1, -1, 1, -1, 10342 -1, 0, 1, 0, 10343 127 10344 }, 10345 #ifdef LIFE_NAMES 10346 {"344 (p3)"}, 10347 #endif 10348 { 10349 0, -1, 10350 -3, 0, 0, 0, 3, 0, 10351 -3, 1, 0, 1, 3, 1, 10352 0, 2, 10353 127 10354 }, 10355 #ifdef LIFE_NAMES 10356 {"2 face (p4)"}, 10357 #endif 10358 { 10359 1, -1, 2, -1, 10360 0, 0, 1, 0, 2, 0, 10361 -2, 1, 0, 1, 10362 -2, 2, 10363 127 10364 }, 10365 #ifdef LIFE_NAMES 10366 {"ratchet (p4)"}, 10367 #endif 10368 { 10369 -3, -2, -1, -2, 2, -2, 10370 -1, -1, 0, -1, 2, -1, 3, -1, 10371 -4, 0, -3, 0, -2, 0, 2, 0, 5, 0, 10372 -5, 1, -2, 1, 2, 1, 3, 1, 4, 1, 10373 -3, 2, -2, 2, 0, 2, 1, 2, 10374 -2, 3, 1, 3, 3, 3, 10375 127 10376 }, 10377 #ifdef LIFE_NAMES 10378 {"shift (p4)"}, 10379 #endif 10380 { 10381 -1, -2, 10382 -2, -1, -1, -1, 0, -1, 1, -1, 10383 -3, 0, -2, 0, 10384 -2, 1, -1, 1, 10385 127 10386 }, 10387 #ifdef LIFE_NAMES 10388 {"234 and friend (p7)"}, 10389 #endif 10390 { 10391 -5, -2, -4, -2, -3, -2, 10392 -1, -1, 2, -1, 10393 0, 0, 3, 0, 10394 1, 1, 10395 127 10396 }, 10397 #ifdef LIFE_NAMES 10398 {"234 and friend2 (p7)"}, 10399 #endif 10400 { 10401 3, -2, 10402 1, -1, 3, -1, 10403 -3, 0, 0, 0, 10404 -4, 1, -1, 1, 10405 -2, 2, 10406 127 10407 }, 10408 #ifdef LIFE_NAMES 10409 {"dracula (p8)"}, 10410 #endif 10411 { 10412 -2, -1, 0, -1, 1, -1, 2, -1, 4, -1, 10413 -3, 0, -1, 0, 0, 0, 2, 0, 3, 0, 5, 0, 10414 1, 1, 10415 127 10416 }, 10417 #ifdef LIFE_NAMES 10418 {"3 birds (p9)"}, 10419 #endif 10420 { 10421 -6, -3, -4, -3, -3, -3, 3, -3, 4, -3, 6, -3, 10422 -7, -2, -2, -2, 2, -2, 7, -2, 10423 -6, -1, -2, -1, 2, -1, 6, -1, 10424 -6, 0, -4, 0, 4, 0, 6, 0, 10425 0, 1, 10426 -2, 2, 2, 2, 10427 -3, 3, -2, 3, 2, 3, 3, 3, 10428 -1, 4, 1, 4, 10429 127 10430 }, 10431 #ifdef LIFE_NAMES 10432 {"sailboat (p10)"}, 10433 #endif 10434 { 10435 -1, -1, 0, -1, 1, -1, 2, -1, 10436 -2, 0, 10437 1, 1, 10438 127 10439 }, 10440 #ifdef LIFE_NAMES 10441 {"23443 (p10)"}, 10442 #endif 10443 { 10444 -5, -3, 5, -3, 10445 -6, -2, -5, -2, 5, -2, 6, -2, 10446 -1, -1, 1, -1, 10447 -1, 0, 1, 0, 10448 -6, 1, -5, 1, 5, 1, 6, 1, 10449 -5, 2, 5, 2, 10450 127 10451 }, 10452 #ifdef LIFE_NAMES 10453 {"toggle (p14)"}, 10454 #endif 10455 { 10456 -1, -2, 0, -2, 1, -2, 2, -2, 10457 -6, -1, 10458 -6, 0, -4, 0, 5, 0, 7, 0, 10459 7, 1, 10460 -1, 2, 0, 2, 1, 2, 2, 2, 10461 127 10462 }, 10463 #ifdef LIFE_NAMES 10464 {"triangle (p17)"}, 10465 #endif 10466 { 10467 -2, -3, 2, -3, 3, -3, 5, -3, 10468 -2, -2, -1, -2, 10469 -5, -1, 4, -1, 5, -1, 6, -1, 10470 -4, 0, -3, 0, 10471 0, 1, 4, 1, 10472 -1, 2, 0, 2, 4, 2, 10473 3, 3, 10474 127 10475 }, 10476 }; 10477 10478 static char patterns_12B46S35[][2 * NUMPTS + 1] = 10479 { 10480 #ifdef LIFE_NAMES 10481 {"toggle"}, 10482 #endif 10483 { 10484 -1, -2, 0, -2, 1, -2, 10485 -1, -1, 10486 -1, 0, 10487 -1, 1, 0, 1, 1, 1, 10488 127 10489 }, 10490 #ifdef LIFE_NAMES 10491 {"batman"}, 10492 #endif 10493 { 10494 0, -2, 10495 -3, -1, -1, -1, 1, -1, 3, -1, 10496 -2, 0, -1, 0, 1, 0, 2, 0, 10497 -1, 1, 1, 1, 10498 127 10499 }, 10500 #ifdef LIFE_NAMES 10501 {"greater and less (p3)"}, 10502 #endif 10503 { 10504 -2, 0, -1, 0, 1, 0, 2, 0, 10505 -2, 1, -1, 1, 1, 1, 2, 1, 10506 127 10507 }, 10508 #ifdef LIFE_NAMES 10509 {"123 (p3)"}, 10510 #endif 10511 { 10512 -4, -1, -3, -1, 0, -1, 3, -1, 4, -1, 10513 -4, 0, -3, 0, 0, 0, 3, 0, 4, 0, 10514 127 10515 }, 10516 #ifdef LIFE_NAMES 10517 {"teamwork (p3)"}, 10518 #endif 10519 { 10520 -3, -4, -2, -4, -1, -4, 10521 -3, -3, 10522 -1, -2, 0, -2, 10523 2, -1, 10524 2, 0, 10525 -1, 1, 0, 1, 10526 -3, 2, 10527 -3, 3, -2, 3, -1, 3, 10528 127 10529 }, 10530 #ifdef LIFE_NAMES 10531 {"doily (p3)"}, 10532 #endif 10533 { 10534 -2, -3, 2, -3, 10535 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 10536 -6, 0, -5, 0, 5, 0, 6, 0, 10537 -6, 1, -5, 1, 5, 1, 6, 1, 10538 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 10539 -2, 4, 2, 4, 10540 127 10541 }, 10542 #ifdef LIFE_NAMES 10543 {"bear trap (p4)"}, 10544 #endif 10545 { 10546 -1, -1, 0, -1, 1, -1, 10547 -1, 0, 0, 0, 1, 0, 10548 127 10549 }, 10550 #ifdef LIFE_NAMES 10551 {"2 butterflies (p4)"}, 10552 #endif 10553 { 10554 -2, -2, -1, -2, 10555 -3, -1, -2, -1, 10556 2, 0, 3, 0, 10557 1, 1, 2, 1, 10558 127 10559 }, 10560 #ifdef LIFE_NAMES 10561 {"asym shift (p4)"}, 10562 #endif 10563 { 10564 -2, -1, 0, -1, 10565 -3, 0, 0, 0, 1, 0, 10566 0, 1, 1, 1, 10567 127 10568 }, 10569 #ifdef LIFE_NAMES 10570 {"necklace (p5)"}, 10571 #endif 10572 { 10573 -1, -6, 1, -6, 10574 -3, -5, 3, -5, 10575 -7, -4, -5, -4, -4, -4, -3, -4, 0, -4, 3, -4, 4, -4, 5, -4, 7, -4, 10576 -9, -3, -5, -3, 5, -3, 9, -3, 10577 -10, -2, -7, -2, 7, -2, 10, -2, 10578 -10, -1, 10, -1, 10579 -9, 0, -8, 0, 8, 0, 9, 0, 10580 -9, 1, -8, 1, 8, 1, 9, 1, 10581 -10, 2, 10, 2, 10582 -10, 3, -7, 3, 7, 3, 10, 3, 10583 -9, 4, -5, 4, 5, 4, 9, 4, 10584 -7, 5, -5, 5, -4, 5, -3, 5, 0, 5, 3, 5, 4, 5, 5, 5, 7, 5, 10585 -3, 6, 3, 6, 10586 -1, 7, 1, 7, 10587 127 10588 }, 10589 #ifdef LIFE_NAMES 10590 {"ship reverser (p9)"}, 10591 #endif 10592 { 10593 -1, -4, 0, -4, 10594 -3, -3, -1, -3, 10595 -1, -2, 0, -2, 10596 -3, -1, -1, -1, 0, -1, 10597 -3, 0, -1, 0, 0, 0, 10598 -1, 1, 0, 1, 10599 -3, 2, -1, 2, 10600 -1, 3, 0, 3, 10601 127 10602 }, 10603 }; 10604 10605 static char patterns_12B46S356[][2 * NUMPTS + 1] = 10606 { 10607 #ifdef LIFE_NAMES 10608 {"glider in tow (c/2 p2)"}, 10609 #endif 10610 { 10611 -4, -1, -2, -1, 4, -1, 5, -1, 10612 -6, 0, -2, 0, -1, 0, 1, 0, 2, 0, 5, 0, 6, 0, 10613 -6, 1, -2, 1, -1, 1, 1, 1, 2, 1, 5, 1, 6, 1, 10614 -4, 2, -2, 2, 4, 2, 5, 2, 10615 127 10616 }, 10617 #ifdef LIFE_NAMES 10618 {"swallow tail (c/2 p2)"}, 10619 #endif 10620 { 10621 -7, -2, -6, -2, -5, -2, -3, -2, -1, -2, 5, -2, 6, -2, 10622 -1, -1, 0, -1, 2, -1, 3, -1, 6, -1, 7, -1, 10623 -1, 0, 0, 0, 2, 0, 3, 0, 6, 0, 7, 0, 10624 -7, 1, -6, 1, -5, 1, -3, 1, -1, 1, 5, 1, 6, 1, 10625 127 10626 }, 10627 #ifdef LIFE_NAMES 10628 {"ship (c/3 p3)"}, 10629 #endif 10630 { 10631 2, 0, 6, 0, 10632 0, 1, 3, 1, 5, 1, 8, 1, 9, 1, 10633 0, 2, 3, 2, 5, 2, 8, 2, 9, 2, 10634 2, 3, 6, 3, 10635 127 10636 }, 10637 #ifdef LIFE_NAMES 10638 {"toggle"}, 10639 #endif 10640 { 10641 -1, -2, 0, -2, 1, -2, 10642 -1, -1, 10643 -1, 0, 10644 -1, 1, 0, 1, 1, 1, 10645 127 10646 }, 10647 #ifdef LIFE_NAMES 10648 {"batman"}, 10649 #endif 10650 { 10651 0, -2, 10652 -3, -1, -1, -1, 1, -1, 3, -1, 10653 -2, 0, -1, 0, 1, 0, 2, 0, 10654 -1, 1, 1, 1, 10655 127 10656 }, 10657 #ifdef LIFE_NAMES 10658 {"greater and less (p3)"}, 10659 #endif 10660 { 10661 -2, 0, -1, 0, 1, 0, 2, 0, 10662 -2, 1, -1, 1, 1, 1, 2, 1, 10663 127 10664 }, 10665 #ifdef LIFE_NAMES 10666 {"123 (p3)"}, 10667 #endif 10668 { 10669 -4, -1, -3, -1, 0, -1, 3, -1, 4, -1, 10670 -4, 0, -3, 0, 0, 0, 3, 0, 4, 0, 10671 127 10672 }, 10673 #ifdef LIFE_NAMES 10674 {"teamwork (p3)"}, 10675 #endif 10676 { 10677 -3, -4, -2, -4, -1, -4, 10678 -3, -3, 10679 -1, -2, 0, -2, 10680 2, -1, 10681 2, 0, 10682 -1, 1, 0, 1, 10683 -3, 2, 10684 -3, 3, -2, 3, -1, 3, 10685 127 10686 }, 10687 #ifdef LIFE_NAMES 10688 {"doily (p3)"}, 10689 #endif 10690 { 10691 -2, -3, 2, -3, 10692 -4, -2, -3, -2, -2, -2, 2, -2, 3, -2, 4, -2, 10693 -6, 0, -5, 0, 5, 0, 6, 0, 10694 -6, 1, -5, 1, 5, 1, 6, 1, 10695 -4, 3, -3, 3, -2, 3, 2, 3, 3, 3, 4, 3, 10696 -2, 4, 2, 4, 10697 127 10698 }, 10699 #ifdef LIFE_NAMES 10700 {"hexagon (p3)"}, 10701 #endif 10702 { 10703 -2, -3, 2, -3, 10704 -4, -2, 4, -2, 10705 -2, -1, -1, -1, 1, -1, 2, -1, 10706 -6, 0, -3, 0, 3, 0, 6, 0, 10707 -6, 1, -3, 1, 3, 1, 6, 1, 10708 -2, 2, -1, 2, 1, 2, 2, 2, 10709 -4, 3, 4, 3, 10710 -2, 4, 2, 4, 10711 127 10712 }, 10713 #ifdef LIFE_NAMES 10714 {"2 triangles (p4)"}, 10715 #endif 10716 { 10717 -2, -1, 10718 -3, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 10719 1, 1, 10720 127 10721 }, 10722 #ifdef LIFE_NAMES 10723 {"bear trap (p6)"}, 10724 #endif 10725 { 10726 -1, -1, 0, -1, 1, -1, 10727 -1, 0, 0, 0, 1, 0, 10728 127 10729 }, 10730 #ifdef LIFE_NAMES 10731 {"two sheets (p8)"}, 10732 #endif 10733 { 10734 -2, -1, -1, -1, 0, -1, 1, -1, 2, -1, 10735 -2, 1, -1, 1, 0, 1, 1, 1, 2, 1, 10736 127 10737 }, 10738 }; 10739 /* Above generated from java Life2DForms | dos2unix */ 10740 /* https://www.sillycycle.com/life.html */ 10741 10742 #ifdef LIFE_NAMES 10743 #define PAT_SPACE 2 10744 #else 10745 #define PAT_SPACE 1 10746 #endif 10747 10748 static int patterns_5rules[] = 10749 { 10750 (sizeof patterns_5B2S24 / sizeof patterns_5B2S24[0]) / PAT_SPACE, 10751 /* no glider */ 10752 (sizeof patterns_5B24S2 / sizeof patterns_5B24S2[0]) / PAT_SPACE, 10753 }; 10754 10755 static int patterns_6rules[] = 10756 { 10757 (sizeof patterns_6B2S35 / sizeof patterns_6B2S35[0]) / PAT_SPACE, 10758 (sizeof patterns_6B2oS2m34 / sizeof patterns_6B2oS2m34[0]) / PAT_SPACE, 10759 (sizeof patterns_6B2o3o4mS2om4o / sizeof patterns_6B2o3o4mS2om4o[0]) /PAT_SPACE, 10760 /* non qualify */ 10761 (sizeof patterns_6B245S3 / sizeof patterns_6B245S3[0]) / PAT_SPACE, 10762 /* no glider */ 10763 (sizeof patterns_6B2S34 / sizeof patterns_6B2S34[0]) / PAT_SPACE, 10764 }; 10765 10766 static int patterns_7rules[] = 10767 { 10768 (sizeof patterns_7B346S23 / sizeof patterns_7B346S23[0]) / PAT_SPACE, 10769 }; 10770 10771 #define common_8size ((sizeof patterns_8B3_6S23 / sizeof patterns_8B3_6S23[0]) / PAT_SPACE) 10772 10773 static int patterns_8rules[] = 10774 { 10775 (sizeof patterns_8B3S2ckan3 / sizeof patterns_8B3S2ckan3[0]) / PAT_SPACE, 10776 (common_8size + (sizeof patterns_8B3S23 / sizeof patterns_8B3S23[0]) / PAT_SPACE), 10777 (common_8size + (sizeof patterns_8B36S23 / sizeof patterns_8B36S23[0]) / PAT_SPACE), 10778 (sizeof patterns_8B3S245 / sizeof patterns_8B3S245[0]) / PAT_SPACE, 10779 (sizeof patterns_8B36S245 / sizeof patterns_8B36S245[0]) / PAT_SPACE, 10780 (sizeof patterns_8B3678S34678 / sizeof patterns_8B3678S34678[0]) / PAT_SPACE, 10781 }; 10782 10783 static int patterns_9rules[] = 10784 { 10785 (sizeof patterns_9B34S3 / sizeof patterns_9B34S3[0]) / PAT_SPACE, 10786 /* non qualify */ 10787 (sizeof patterns_9B3S34 / sizeof patterns_9B3S34[0]) / PAT_SPACE, 10788 }; 10789 10790 static int patterns_12rules[] = 10791 { 10792 (sizeof patterns_12B3S2 / sizeof patterns_12B3S2[0]) / PAT_SPACE, 10793 (sizeof patterns_12B3S27 / sizeof patterns_12B3S27[0]) / PAT_SPACE, 10794 (sizeof patterns_12B3S278 / sizeof patterns_12B3S278[0]) / PAT_SPACE, 10795 (sizeof patterns_12B4S35 / sizeof patterns_12B4S35[0]) / PAT_SPACE, 10796 (sizeof patterns_12B4S356 / sizeof patterns_12B4S356[0]) / PAT_SPACE, 10797 (sizeof patterns_12B4S456 / sizeof patterns_12B4S456[0]) / PAT_SPACE, 10798 (sizeof patterns_12B45S23 / sizeof patterns_12B45S23[0]) / PAT_SPACE, 10799 (sizeof patterns_12B45S34 / sizeof patterns_12B45S34[0]) / PAT_SPACE, 10800 (sizeof patterns_12B456S12 / sizeof patterns_12B456S12[0]) / PAT_SPACE, 10801 (sizeof patterns_12B456S23 / sizeof patterns_12B456S23[0]) / PAT_SPACE, 10802 (sizeof patterns_12B456S34 / sizeof patterns_12B456S34[0]) / PAT_SPACE, 10803 (sizeof patterns_12B456S45 / sizeof patterns_12B456S45[0]) / PAT_SPACE, 10804 (sizeof patterns_12B46S24 / sizeof patterns_12B46S24[0]) / PAT_SPACE, 10805 (sizeof patterns_12B46S246 / sizeof patterns_12B46S246[0]) / PAT_SPACE, 10806 (sizeof patterns_12B46S35 / sizeof patterns_12B46S35[0]) / PAT_SPACE, 10807 (sizeof patterns_12B46S356 / sizeof patterns_12B46S356[0]) / PAT_SPACE, 10808 /* no glider */ 10809 (sizeof patterns_12B3S23 / sizeof patterns_12B3S23[0]) / PAT_SPACE, 10810 (sizeof patterns_12B4S345 / sizeof patterns_12B4S345[0]) / PAT_SPACE, 10811 }; 10812 10813 /*static paramstruct param_3rules[] = 10814 { 10815 }; 10816 10817 static paramstruct param_4rules[] = 10818 { 10819 };*/ 10820 10821 static paramstruct param_5rules[] = 10822 { 10823 { /* LIFE_5B2S24 */ 10824 0x4, 0x14, 10825 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10826 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10827 }, 10828 /* no glider */ 10829 { /* LIFE_5B24S2 */ 10830 0x14, 0x4, 10831 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10832 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10833 }, 10834 }; 10835 10836 static paramstruct param_6rules[] = 10837 { 10838 { /* LIFE_6B2S35 */ 10839 0x4, 0x28, 10840 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10841 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10842 }, 10843 { /* LIFE_6B2oS2m34 */ 10844 0x0, 0x18, 10845 {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0}, 10846 {0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0} 10847 }, 10848 { /* LIFE_6B2o3o4mS2om4o */ 10849 0x0, 0x0, 10850 {0x0, 0x1, 0x1, 0x2, 0x0, 0x0, 0x0}, 10851 {0x0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0} 10852 }, 10853 /* non qualify */ 10854 { /* LIFE_6B245S3 */ 10855 0x34, 0x8, 10856 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10857 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10858 }, 10859 /* no glider */ 10860 { /* LIFE_6B2S34 */ 10861 0x4, 0x18, 10862 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10863 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10864 }, 10865 }; 10866 10867 static paramstruct param_7rules[] = 10868 { 10869 { /* LIFE_7B346S23 */ 10870 0x58, 0xC, 10871 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10872 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10873 }, 10874 }; 10875 10876 static paramstruct param_8rules[] = 10877 { 10878 { /* LIFE_8B3S2ckan3 */ 10879 0x8, 0x8, 10880 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10881 {0x0, 0x2D, 0x0, 0x0, 0x0, 0x0, 0x0} 10882 }, 10883 { /* LIFE_8B3S23 */ 10884 0x8, 0xC, 10885 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10886 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10887 }, 10888 { /* LIFE_8B36S23 */ 10889 0x48, 0xC, 10890 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10891 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10892 }, 10893 { /* LIFE_8B3S245 */ 10894 0x8, 0x34, 10895 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10896 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10897 }, 10898 { /* LIFE_8B36S245 */ 10899 0x48, 0x34, 10900 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10901 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10902 }, 10903 { /* LIFE_8B3678S34678 */ 10904 0x1C8, 0x1D8, 10905 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10906 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10907 }, 10908 }; 10909 10910 static paramstruct param_9rules[] = 10911 { 10912 { /* LIFE_9B34S3 */ 10913 0x18, 0x8, 10914 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10915 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10916 }, 10917 /* non qualify */ 10918 { /* LIFE_9B3S34 */ 10919 0x8, 0x18, 10920 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10921 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10922 }, 10923 }; 10924 10925 static paramstruct param_12rules[] = 10926 { 10927 { /* LIFE_12B3S2 */ 10928 0x8, 0x4, 10929 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10930 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10931 }, 10932 { /* LIFE_12B3S27 */ 10933 0x8, 0x84, 10934 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10935 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10936 }, 10937 { /* LIFE_12B3S278 */ 10938 0x8, 0x184, 10939 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10940 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10941 }, 10942 { /* LIFE_12B4S35 */ 10943 0x10, 0x28, 10944 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10945 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10946 }, 10947 { /* LIFE_12B4S356 */ 10948 0x10, 0x68, 10949 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10950 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10951 }, 10952 { /* LIFE_12B4S456 */ 10953 0x10, 0x70, 10954 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10955 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10956 }, 10957 { /* LIFE_12B45S23 */ 10958 0x30, 0xC, 10959 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10960 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10961 }, 10962 { /* LIFE_12B45S34 */ 10963 0x30, 0x18, 10964 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10965 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10966 }, 10967 { /* LIFE_12B456S12 */ 10968 0x70, 0x6, 10969 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10970 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10971 }, 10972 { /* LIFE_12B456S23 */ 10973 0x70, 0xC, 10974 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10975 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10976 }, 10977 { /* LIFE_12B456S34 */ 10978 0x70, 0x18, 10979 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10980 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10981 }, 10982 { /* LIFE_12B456S45 */ 10983 0x70, 0x30, 10984 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10985 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10986 }, 10987 { /* LIFE_12B46S24 */ 10988 0x50, 0x14, 10989 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10990 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10991 }, 10992 { /* LIFE_12B46S246 */ 10993 0x50, 0x54, 10994 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 10995 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 10996 }, 10997 { /* LIFE_12B46S35 */ 10998 0x50, 0x28, 10999 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 11000 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 11001 }, 11002 { /* LIFE_12B46S356 */ 11003 0x50, 0x68, 11004 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 11005 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 11006 }, 11007 /* no glider */ 11008 { /* LIFE_12B3S23 */ 11009 0x8, 0xC, 11010 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 11011 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 11012 }, 11013 { /* LIFE_12B4S345 */ 11014 0x10, 0x38, 11015 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 11016 {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 11017 }, 11018 }; 11019 11020 #define LIFE_5B2S24 0 /* BAGLEY */ 11021 #define LIFE_5GLIDERS 1 11022 #define LIFE_5RULES (sizeof param_5rules / sizeof param_5rules[0]) 11023 #define LIFE_5B24S2 1 11024 #define LIFE_6B2S35 0 /* BAYS */ 11025 #define LIFE_6B2oS2m34 1 /* CALLAHAN */ 11026 #define LIFE_6B2o3o4mS2om4o 2 /* ANDREEN */ 11027 #define LIFE_6B245S3 3 /* BAYSNONQUALIFY glider but not GL */ 11028 #define LIFE_6GLIDERS 4 /* GLIDER first in param_6rules */ 11029 #define LIFE_6B2S34 4 /* WIKIPEDIA */ 11030 #define LIFE_6RULES (sizeof param_6rules / sizeof param_6rules[0]) 11031 #define LIFE_7B346S23 0 /* BAYS */ 11032 #define LIFE_7GLIDERS 1 11033 #define LIFE_7RULES (sizeof param_7rules / sizeof param_7rules[0]) 11034 #define LIFE_8B3S2ckan3 0 /* Rule 3/2ab3, MAYDWELL */ 11035 #define LIFE_8B3S23 1 /* LIFE, CONWAY */ 11036 #define LIFE_8B36S23 2 /* HIGHLIFE, BELL */ 11037 #define LIFE_8B3S245 3 /* BAYS */ 11038 #define LIFE_8B36S245 4 /* WIKIPEDIA */ 11039 #define LIFE_8B3678S34678 5 /* DAY_NIGHT, THOMPSON */ 11040 #define LIFE_8GLIDERS 6 /* GLIDER rules are first in param_8rules */ 11041 #define LIFE_8RULES (sizeof param_8rules / sizeof param_8rules[0]) 11042 #define LIFE_9B34S3 0 /* BAGLEY */ 11043 #define LIFE_9GLIDERS 1 11044 #define LIFE_9B3S34 1 /* replicator but too prolific */ 11045 #define LIFE_9RULES (sizeof param_9rules / sizeof param_9rules[0]) 11046 #define LIFE_12B3S2 0 /* sparse */ 11047 #define LIFE_12B3S27 1 11048 #define LIFE_12B3S278 2 11049 #define LIFE_12B4S35 3 11050 #define LIFE_12B4S356 4 11051 #define LIFE_12B4S456 5 11052 #define LIFE_12B45S23 6 11053 #define LIFE_12B45S34 7 /* trilife */ 11054 #define LIFE_12B456S12 8 11055 #define LIFE_12B456S23 9 /* trilife2 */ 11056 #define LIFE_12B456S34 10 11057 #define LIFE_12B456S45 11 /* trilife1 */ 11058 #define LIFE_12B46S24 12 11059 #define LIFE_12B46S246 13 11060 #define LIFE_12B46S35 14 11061 #define LIFE_12B46S356 15 11062 #define LIFE_12GLIDERS 16 /* GLIDER rules are first in param_12rules */ 11063 #define LIFE_12B3S23 16 11064 #define LIFE_12B4S345 17 11065 #define LIFE_12RULES (sizeof param_12rules / sizeof param_12rules[0]) 11066