this repo has no description
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 2/* 3 * Main authors: 4 * Christian Schulte <schulte@gecode.org> 5 * 6 * Copyright: 7 * Christian Schulte, 2009 8 * 9 * This file is part of Gecode, the generic constraint 10 * development environment: 11 * http://www.gecode.org 12 * 13 * Permission is hereby granted, free of charge, to any person obtaining 14 * a copy of this software and associated documentation files (the 15 * "Software"), to deal in the Software without restriction, including 16 * without limitation the rights to use, copy, modify, merge, publish, 17 * distribute, sublicense, and/or sell copies of the Software, and to 18 * permit persons to whom the Software is furnished to do so, subject to 19 * the following conditions: 20 * 21 * The above copyright notice and this permission notice shall be 22 * included in all copies or substantial portions of the Software. 23 * 24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 28 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 29 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 30 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 31 * 32 */ 33 34#include <gecode/driver.hh> 35 36#include <gecode/int.hh> 37#include <gecode/minimodel.hh> 38 39#include "examples/scowl.hpp" 40 41using namespace Gecode; 42 43 44// Grid data 45namespace { 46 // Grid data 47 extern const int* grids[]; 48 // Number of grids 49 extern const unsigned int n_grids; 50} 51 52 53/** 54 * \brief %Example: %Crossword puzzle 55 * 56 * Fill crossword grids with words, that is construct a crossword 57 * puzzle. For a recent paper on this classical problem, see: 58 * Crossword Puzzles as a Constraint Problem, Anbulagan and Adi Botea, 59 * CP 2008, pages 550-554, Springer Verlag. 60 * 61 * Note that "Modeling and Programming with Gecode" uses this example 62 * as a case study. 63 * 64 * \ingroup Example 65 */ 66class Crossword : public Script { 67protected: 68 /// Width of crossword grid 69 const int w; 70 /// Height of crossword grid 71 const int h; 72 /// Letters for grid 73 IntVarArray letters; 74public: 75 /// Which model to use 76 enum { 77 MODEL_ELEMENT, ///< Use element constraints per letter 78 MODEL_TUPLESET ///< Use one tuple-set per word 79 }; 80 /// Branching to use for model 81 enum { 82 BRANCH_WORDS_AFC, ///< Branch on the words 83 BRANCH_LETTERS_AFC, ///< Branch on the letters 84 BRANCH_LETTERS_AFC_ALL, ///< Branch on the letters (try all values) 85 BRANCH_WORDS_ACTION, ///< Branch on the words 86 BRANCH_LETTERS_ACTION, ///< Branch on the letters 87 BRANCH_LETTERS_ACTION_ALL, ///< Branch on the letters (try all values) 88 BRANCH_WORDS_CHB, ///< Branch on the words 89 BRANCH_LETTERS_CHB, ///< Branch on the letters 90 BRANCH_LETTERS_CHB_ALL ///< Branch on the letters (try all values) 91 }; 92 /// Actual model 93 Crossword(const SizeOptions& opt) 94 : Script(opt), 95 w(grids[opt.size()][0]), h(grids[opt.size()][1]), 96 letters(*this,w*h,'a','z') { 97 // Pointer into the grid specification (width and height already skipped) 98 const int* g = &grids[opt.size()][2]; 99 100 // Matrix for letters 101 Matrix<IntVarArray> ml(letters, w, h); 102 103 // Set black fields to 0 104 { 105 IntVar z(*this,0,0); 106 for (int n = *g++; n--; ) { 107 int x=*g++, y=*g++; 108 ml(x,y)=z; 109 } 110 } 111 112 // Array of all words 113 IntVarArgs allwords; 114 115 switch (opt.model()) { 116 case MODEL_ELEMENT: 117 // While words of length w_l to process 118 while (int w_l=*g++) { 119 // Number of words of that length in the dictionary 120 int n_w = dict.words(w_l); 121 // Number of words of that length in the puzzle 122 int n=*g++; 123 124 if (n > n_w) { 125 fail(); 126 } else { 127 // Array of all words of length w_l 128 IntVarArgs words(*this,n,0,n_w-1); 129 allwords << words; 130 131 // All words of same length must be different 132 distinct(*this, words, opt.ipl()); 133 134 for (int d=0; d<w_l; d++) { 135 // Array that maps words to a letter at a certain position (shared among all element constraints) 136 IntSharedArray w2l(n_w); 137 // Initialize word to letter map 138 for (int i=n_w; i--; ) 139 w2l[i] = dict.word(w_l,i)[d]; 140 // Link word to letter variable 141 for (int i=0; i<n; i++) { 142 // Get (x,y) coordinate where word begins 143 int x=g[3*i+0], y=g[3*i+1]; 144 // Whether word is horizontal 145 bool h=(g[3*i+2] == 0); 146 // Constrain the letters to the words' letters 147 element(*this, w2l, words[i], h ? ml(x+d,y) : ml(x,y+d)); 148 } 149 } 150 // Skip word coordinates 151 g += 3*n; 152 } 153 } 154 break; 155 case MODEL_TUPLESET: 156 // While words of length w_l to process 157 while (int w_l=*g++) { 158 // Number of words of that length in the dictionary 159 int n_w = dict.words(w_l); 160 // Number of words of that length in the puzzle 161 int n=*g++; 162 163 if (n > n_w) { 164 fail(); 165 } else { 166 // Setup tuple-set 167 TupleSet ts(w_l+1); 168 { 169 IntArgs w(w_l+1); 170 for (int i=0; i<n_w; i++) { 171 for (int d=0; d<w_l; d++) 172 w[d] = dict.word(w_l,i)[d]; 173 w[w_l]=i; 174 ts.add(w); 175 } 176 } 177 ts.finalize(); 178 179 // Array of all words of length w_l 180 IntVarArgs words(*this,n,0,n_w-1); 181 allwords << words; 182 183 // All words of same length must be different 184 distinct(*this, words, opt.ipl()); 185 186 // Constraint all words in puzzle 187 for (int i=0; i<n; i++) { 188 // Get (x,y) coordinate where word begins 189 int x=*g++, y=*g++; 190 // Whether word is horizontal 191 bool h=(*g++ == 0); 192 // Letters in word plus word number 193 IntVarArgs w(w_l+1); w[w_l]=words[i]; 194 if (h) 195 for (int d=0; d<w_l; d++) 196 w[d] = ml(x+d,y); 197 else 198 for (int d=0; d<w_l; d++) 199 w[d] = ml(x,y+d); 200 // Constrain word 201 extensional(*this, w, ts); 202 } 203 } 204 } 205 break; 206 } 207 switch (opt.branching()) { 208 case BRANCH_WORDS_AFC: 209 // Branch by assigning words 210 branch(*this, allwords, 211 INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VAL_SPLIT_MIN(), 212 nullptr, &printwords); 213 break; 214 case BRANCH_LETTERS_AFC: 215 // Branch by assigning letters 216 branch(*this, letters, 217 INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VAL_MIN(), 218 nullptr, &printletters); 219 break; 220 case BRANCH_LETTERS_AFC_ALL: 221 // Branch by assigning letters (try all letters) 222 branch(*this, letters, 223 INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VALUES_MIN(), 224 nullptr, &printletters); 225 break; 226 case BRANCH_WORDS_ACTION: 227 // Branch by assigning words 228 branch(*this, allwords, 229 INT_VAR_ACTION_SIZE_MAX(opt.decay()), INT_VAL_SPLIT_MIN(), 230 nullptr, &printwords); 231 break; 232 case BRANCH_LETTERS_ACTION: 233 // Branch by assigning letters 234 branch(*this, letters, 235 INT_VAR_ACTION_SIZE_MAX(opt.decay()), INT_VAL_MIN(), 236 nullptr, &printletters); 237 break; 238 case BRANCH_LETTERS_ACTION_ALL: 239 // Branch by assigning letters (try all letters) 240 branch(*this, letters, 241 INT_VAR_ACTION_SIZE_MAX(opt.decay()), INT_VALUES_MIN(), 242 nullptr, &printletters); 243 break; 244 case BRANCH_WORDS_CHB: 245 // Branch by assigning words 246 branch(*this, allwords, 247 INT_VAR_CHB_SIZE_MAX(), INT_VAL_SPLIT_MIN(), 248 nullptr, &printwords); 249 break; 250 case BRANCH_LETTERS_CHB: 251 // Branch by assigning letters 252 branch(*this, letters, 253 INT_VAR_CHB_SIZE_MAX(), INT_VAL_MIN(), 254 nullptr, &printletters); 255 break; 256 case BRANCH_LETTERS_CHB_ALL: 257 // Branch by assigning letters (try all letters) 258 branch(*this, letters, 259 INT_VAR_CHB_SIZE_MAX(), INT_VALUES_MIN(), 260 nullptr, &printletters); 261 break; 262 } 263 } 264 /// Print brancher information when branching on letters 265 static void printletters(const Space& home, const Brancher&, 266 unsigned int a, 267 IntVar, int i, const int& n, 268 std::ostream& os) { 269 const Crossword& c = static_cast<const Crossword&>(home); 270 int x = i % c.w, y = i / c.w; 271 os << "letters[" << x << "," << y << "] " 272 << ((a == 0) ? "=" : "!=") << " " 273 << static_cast<char>(n); 274 } 275 /// Print brancher information when branching on words 276 static void printwords(const Space&, const Brancher&, 277 unsigned int a, 278 IntVar, int i, const int& n, 279 std::ostream& os) { 280 os << "allwords[" << i << "] " 281 << ((a == 0) ? "<=" : ">") << " " 282 << n; 283 } 284 /// Do not perform a restart when a solution is found 285 bool master(const MetaInfo& mi) { 286 if (mi.type() == MetaInfo::RESTART) 287 // Post no-goods 288 mi.nogoods().post(*this); 289 // Do not perform a restart if a solution has been found 290 return false; 291 } 292 293 /// Constructor for cloning \a s 294 Crossword(Crossword& s) 295 : Script(s), w(s.w), h(s.h) { 296 letters.update(*this, s.letters); 297 } 298 /// Copy during cloning 299 virtual Space* 300 copy(void) { 301 return new Crossword(*this); 302 } 303 /// Print solution 304 virtual void 305 print(std::ostream& os) const { 306 // Matrix for letters 307 Matrix<IntVarArray> ml(letters, w, h); 308 for (int i=0; i<h; i++) { 309 os << '\t'; 310 for (int j=0; j<w; j++) 311 if (ml(j,i).assigned()) 312 if (ml(j,i).val() == 0) 313 os << '*'; 314 else 315 os << static_cast<char>(ml(j,i).val()); 316 else 317 os << '?'; 318 os << std::endl; 319 } 320 os << std::endl << std::endl; 321 } 322}; 323 324 325/** \brief Main-function 326 * \relates Crossword 327 */ 328int 329main(int argc, char* argv[]) { 330 FileSizeOptions opt("Crossword"); 331 opt.size(10); 332 opt.ipl(IPL_VAL); 333 opt.model(Crossword::MODEL_ELEMENT); 334 opt.model(Crossword::MODEL_ELEMENT,"element"); 335 opt.model(Crossword::MODEL_TUPLESET,"tuple-set"); 336 opt.branching(Crossword::BRANCH_LETTERS_AFC); 337 opt.branching(Crossword::BRANCH_WORDS_AFC, 338 "words-afc"); 339 opt.branching(Crossword::BRANCH_LETTERS_AFC, 340 "letters-afc"); 341 opt.branching(Crossword::BRANCH_LETTERS_AFC_ALL, 342 "letters-afc-all"); 343 opt.branching(Crossword::BRANCH_WORDS_ACTION, 344 "words-action"); 345 opt.branching(Crossword::BRANCH_LETTERS_ACTION, 346 "letters-action"); 347 opt.branching(Crossword::BRANCH_LETTERS_ACTION_ALL, 348 "letters-action-all"); 349 opt.branching(Crossword::BRANCH_WORDS_CHB, 350 "words-chb"); 351 opt.branching(Crossword::BRANCH_LETTERS_CHB, 352 "letters-chb"); 353 opt.branching(Crossword::BRANCH_LETTERS_CHB_ALL, 354 "letters-chb-all"); 355 opt.parse(argc,argv); 356 dict.init(opt.file()); 357 if (opt.size() >= n_grids) { 358 std::cerr << "Error: size must be between 0 and " 359 << n_grids-1 << std::endl; 360 return 1; 361 } 362 Script::run<Crossword,DFS,SizeOptions>(opt); 363 return 0; 364} 365 366namespace { 367 368 /* 369 * The Grid data has been provided by Peter Van Beek, to 370 * quote the original README.txt: 371 * 372 * The files in this directory contain templates for crossword 373 * puzzles. Each is a two-dimensional array. A _ indicates 374 * that the associated square in the crossword template is 375 * blank, and a * indicates that it is a black square that 376 * does not need to have a letter inserted. 377 * 378 * The crossword puzzles templates came from the following 379 * sources: 380 * 381 * 15.01, ..., 15.10 382 * 19.01, ..., 19.10 383 * 21.01, ..., 21.10 384 * 23.01, ..., 23.10 385 * 386 * Herald Tribune Crosswords, Spring, 1999 387 * 388 * 05.01, ..., 05.10 389 * 390 * All legal 5 x 5 puzzles. 391 * 392 * puzzle01, ..., puzzle19 393 * 394 * Ginsberg, M.L., "Dynamic Backtracking," 395 * Journal of Artificial Intelligence Researc (JAIR) 396 * Volume 1, pages 25-46, 1993. 397 * 398 * puzzle20, ..., puzzle22 399 * 400 * Ginsberg, M.L. et al., "Search Lessons Learned 401 * from Crossword Puzzles," AAAI-90, pages 210-215. 402 * 403 */ 404 405 /* 406 * Name: 05.01, 5 x 5 407 * (_ _ _ _ _) 408 * (_ _ _ _ _) 409 * (_ _ _ _ _) 410 * (_ _ _ _ _) 411 * (_ _ _ _ _) 412 */ 413 const int g0[] = { 414 // Width and height of crossword grid 415 5, 5, 416 // Number of black fields 417 0, 418 // Black field coordinates 419 420 // Length and number of words of that length 421 5, 10, 422 // Coordinates where words start and direction (0 = horizontal) 423 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,3,0, 0,4,0, 1,0,1, 2,0,1, 3,0,1, 4,0,1, 424 // End marker 425 0 426 }; 427 428 429 /* 430 * Name: 05.02, 5 x 5 431 * (_ _ _ _ *) 432 * (_ _ _ _ _) 433 * (_ _ _ _ _) 434 * (_ _ _ _ _) 435 * (* _ _ _ _) 436 */ 437 const int g1[] = { 438 // Width and height of crossword grid 439 5, 5, 440 // Number of black fields 441 2, 442 // Black field coordinates 443 0,4, 4,0, 444 // Length and number of words of that length 445 5, 6, 446 // Coordinates where words start and direction (0 = horizontal) 447 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 448 // Length and number of words of that length 449 4, 4, 450 // Coordinates where words start and direction (0 = horizontal) 451 0,0,0, 0,0,1, 1,4,0, 4,1,1, 452 // End marker 453 0 454 }; 455 456 457 /* 458 * Name: 05.03, 5 x 5 459 * (_ _ _ _ *) 460 * (_ _ _ _ *) 461 * (_ _ _ _ _) 462 * (* _ _ _ _) 463 * (* _ _ _ _) 464 */ 465 const int g2[] = { 466 // Width and height of crossword grid 467 5, 5, 468 // Number of black fields 469 4, 470 // Black field coordinates 471 0,3, 0,4, 4,0, 4,1, 472 // Length and number of words of that length 473 5, 4, 474 // Coordinates where words start and direction (0 = horizontal) 475 0,2,0, 1,0,1, 2,0,1, 3,0,1, 476 // Length and number of words of that length 477 4, 4, 478 // Coordinates where words start and direction (0 = horizontal) 479 0,0,0, 0,1,0, 1,3,0, 1,4,0, 480 // Length and number of words of that length 481 3, 2, 482 // Coordinates where words start and direction (0 = horizontal) 483 0,0,1, 4,2,1, 484 // End marker 485 0 486 }; 487 488 489 /* 490 * Name: 05.04, 5 x 5 491 * (_ _ _ * *) 492 * (_ _ _ _ *) 493 * (_ _ _ _ _) 494 * (* _ _ _ _) 495 * (* * _ _ _) 496 */ 497 const int g3[] = { 498 // Width and height of crossword grid 499 5, 5, 500 // Number of black fields 501 6, 502 // Black field coordinates 503 0,3, 0,4, 1,4, 3,0, 4,0, 4,1, 504 // Length and number of words of that length 505 5, 2, 506 // Coordinates where words start and direction (0 = horizontal) 507 0,2,0, 2,0,1, 508 // Length and number of words of that length 509 4, 4, 510 // Coordinates where words start and direction (0 = horizontal) 511 0,1,0, 1,0,1, 1,3,0, 3,1,1, 512 // Length and number of words of that length 513 3, 4, 514 // Coordinates where words start and direction (0 = horizontal) 515 0,0,0, 0,0,1, 2,4,0, 4,2,1, 516 // End marker 517 0 518 }; 519 520 521 /* 522 * Name: 05.05, 5 x 5 523 * (_ _ _ * *) 524 * (_ _ _ * *) 525 * (_ _ _ _ _) 526 * (* * _ _ _) 527 * (* * _ _ _) 528 */ 529 const int g4[] = { 530 // Width and height of crossword grid 531 5, 5, 532 // Number of black fields 533 8, 534 // Black field coordinates 535 0,3, 0,4, 1,3, 1,4, 3,0, 3,1, 4,0, 4,1, 536 // Length and number of words of that length 537 5, 2, 538 // Coordinates where words start and direction (0 = horizontal) 539 0,2,0, 2,0,1, 540 // Length and number of words of that length 541 3, 8, 542 // Coordinates where words start and direction (0 = horizontal) 543 0,0,0, 0,0,1, 0,1,0, 1,0,1, 2,3,0, 2,4,0, 3,2,1, 4,2,1, 544 // End marker 545 0 546 }; 547 548 549 /* 550 * Name: 05.06, 5 x 5 551 * (* _ _ _ _) 552 * (_ _ _ _ _) 553 * (_ _ _ _ _) 554 * (_ _ _ _ _) 555 * (_ _ _ _ *) 556 */ 557 const int g5[] = { 558 // Width and height of crossword grid 559 5, 5, 560 // Number of black fields 561 2, 562 // Black field coordinates 563 0,0, 4,4, 564 // Length and number of words of that length 565 5, 6, 566 // Coordinates where words start and direction (0 = horizontal) 567 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 568 // Length and number of words of that length 569 4, 4, 570 // Coordinates where words start and direction (0 = horizontal) 571 0,1,1, 0,4,0, 1,0,0, 4,0,1, 572 // End marker 573 0 574 }; 575 576 577 /* 578 * Name: 05.07, 5 x 5 579 * (* _ _ _ _) 580 * (* _ _ _ _) 581 * (_ _ _ _ _) 582 * (_ _ _ _ *) 583 * (_ _ _ _ *) 584 */ 585 const int g6[] = { 586 // Width and height of crossword grid 587 5, 5, 588 // Number of black fields 589 4, 590 // Black field coordinates 591 0,0, 0,1, 4,3, 4,4, 592 // Length and number of words of that length 593 5, 4, 594 // Coordinates where words start and direction (0 = horizontal) 595 0,2,0, 1,0,1, 2,0,1, 3,0,1, 596 // Length and number of words of that length 597 4, 4, 598 // Coordinates where words start and direction (0 = horizontal) 599 0,3,0, 0,4,0, 1,0,0, 1,1,0, 600 // Length and number of words of that length 601 3, 2, 602 // Coordinates where words start and direction (0 = horizontal) 603 0,2,1, 4,0,1, 604 // End marker 605 0 606 }; 607 608 609 /* 610 * Name: 05.08, 5 x 5 611 * (* _ _ _ *) 612 * (_ _ _ _ _) 613 * (_ _ _ _ _) 614 * (_ _ _ _ _) 615 * (* _ _ _ *) 616 */ 617 const int g7[] = { 618 // Width and height of crossword grid 619 5, 5, 620 // Number of black fields 621 4, 622 // Black field coordinates 623 0,0, 0,4, 4,0, 4,4, 624 // Length and number of words of that length 625 5, 6, 626 // Coordinates where words start and direction (0 = horizontal) 627 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 628 // Length and number of words of that length 629 3, 4, 630 // Coordinates where words start and direction (0 = horizontal) 631 0,1,1, 1,0,0, 1,4,0, 4,1,1, 632 // End marker 633 0 634 }; 635 636 637 /* 638 * Name: 05.09, 5 x 5 639 * (* * _ _ _) 640 * (* _ _ _ _) 641 * (_ _ _ _ _) 642 * (_ _ _ _ *) 643 * (_ _ _ * *) 644 */ 645 const int g8[] = { 646 // Width and height of crossword grid 647 5, 5, 648 // Number of black fields 649 6, 650 // Black field coordinates 651 0,0, 0,1, 1,0, 3,4, 4,3, 4,4, 652 // Length and number of words of that length 653 5, 2, 654 // Coordinates where words start and direction (0 = horizontal) 655 0,2,0, 2,0,1, 656 // Length and number of words of that length 657 4, 4, 658 // Coordinates where words start and direction (0 = horizontal) 659 0,3,0, 1,1,0, 1,1,1, 3,0,1, 660 // Length and number of words of that length 661 3, 4, 662 // Coordinates where words start and direction (0 = horizontal) 663 0,2,1, 0,4,0, 2,0,0, 4,0,1, 664 // End marker 665 0 666 }; 667 668 669 /* 670 * Name: 05.10, 5 x 5 671 * (* * _ _ _) 672 * (* * _ _ _) 673 * (_ _ _ _ _) 674 * (_ _ _ * *) 675 * (_ _ _ * *) 676 */ 677 const int g9[] = { 678 // Width and height of crossword grid 679 5, 5, 680 // Number of black fields 681 8, 682 // Black field coordinates 683 0,0, 0,1, 1,0, 1,1, 3,3, 3,4, 4,3, 4,4, 684 // Length and number of words of that length 685 5, 2, 686 // Coordinates where words start and direction (0 = horizontal) 687 0,2,0, 2,0,1, 688 // Length and number of words of that length 689 3, 8, 690 // Coordinates where words start and direction (0 = horizontal) 691 0,2,1, 0,3,0, 0,4,0, 1,2,1, 2,0,0, 2,1,0, 3,0,1, 4,0,1, 692 // End marker 693 0 694 }; 695 696 697 /* 698 * Name: 15.01, 15 x 15 699 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 700 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 701 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 702 * (_ _ _ _ _ _ _ * * _ _ _ _ _ _) 703 * (* * * _ _ _ * _ _ _ _ _ _ * *) 704 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 705 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _) 706 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 707 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _) 708 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 709 * (* * _ _ _ _ _ _ * _ _ _ * * *) 710 * (_ _ _ _ _ _ * * _ _ _ _ _ _ _) 711 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 712 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 713 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 714 */ 715 const int g10[] = { 716 // Width and height of crossword grid 717 15, 15, 718 // Number of black fields 719 36, 720 // Black field coordinates 721 0,4, 0,10, 1,4, 1,10, 2,4, 3,6, 3,7, 4,0, 4,1, 4,8, 4,12, 4,13, 4,14, 5,5, 5,9, 6,4, 6,11, 7,3, 7,11, 8,3, 8,10, 9,5, 9,9, 10,0, 10,1, 10,2, 10,6, 10,13, 10,14, 11,7, 11,8, 12,10, 13,4, 13,10, 14,4, 14,10, 722 // Length and number of words of that length 723 10, 4, 724 // Coordinates where words start and direction (0 = horizontal) 725 0,2,0, 2,5,1, 5,12,0, 12,0,1, 726 // Length and number of words of that length 727 7, 6, 728 // Coordinates where words start and direction (0 = horizontal) 729 0,3,0, 3,8,1, 4,7,0, 7,4,1, 8,11,0, 11,0,1, 730 // Length and number of words of that length 731 6, 12, 732 // Coordinates where words start and direction (0 = horizontal) 733 0,11,0, 2,10,0, 3,0,1, 4,2,1, 4,6,0, 5,8,0, 6,5,1, 7,4,0, 8,4,1, 9,3,0, 10,7,1, 11,9,1, 734 // Length and number of words of that length 735 5, 16, 736 // Coordinates where words start and direction (0 = horizontal) 737 0,5,0, 0,5,1, 0,9,0, 1,5,1, 5,0,0, 5,0,1, 5,1,0, 5,10,1, 5,13,0, 5,14,0, 9,0,1, 9,10,1, 10,5,0, 10,9,0, 13,5,1, 14,5,1, 738 // Length and number of words of that length 739 4, 24, 740 // Coordinates where words start and direction (0 = horizontal) 741 0,0,0, 0,0,1, 0,1,0, 0,8,0, 0,11,1, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,11,1, 2,0,1, 6,0,1, 8,11,1, 11,0,0, 11,1,0, 11,2,0, 11,6,0, 11,13,0, 11,14,0, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 742 // Length and number of words of that length 743 3, 16, 744 // Coordinates where words start and direction (0 = horizontal) 745 0,6,0, 0,7,0, 3,4,0, 4,9,1, 5,6,1, 6,5,0, 6,9,0, 6,12,1, 7,0,1, 7,12,1, 8,0,1, 9,6,1, 9,10,0, 10,3,1, 12,7,0, 12,8,0, 746 // End marker 747 0 748 }; 749 750 751 /* 752 * Name: 15.02, 15 x 15 753 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 754 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 755 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 756 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 757 * (_ _ _ * _ _ _ _ * _ _ _ * * *) 758 * (* * * _ _ _ _ * _ _ _ * _ _ _) 759 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 760 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 761 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 762 * (_ _ _ * _ _ _ * _ _ _ _ * * *) 763 * (* * * _ _ _ * _ _ _ _ * _ _ _) 764 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 765 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 766 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 767 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 768 */ 769 const int g11[] = { 770 // Width and height of crossword grid 771 15, 15, 772 // Number of black fields 773 34, 774 // Black field coordinates 775 0,5, 0,10, 1,5, 1,10, 2,5, 2,10, 3,4, 3,9, 4,3, 4,8, 4,13, 4,14, 5,0, 5,7, 6,6, 6,10, 7,5, 7,9, 8,4, 8,8, 9,7, 9,14, 10,0, 10,1, 10,6, 10,11, 11,5, 11,10, 12,4, 12,9, 13,4, 13,9, 14,4, 14,9, 776 // Length and number of words of that length 777 15, 2, 778 // Coordinates where words start and direction (0 = horizontal) 779 0,2,0, 0,12,0, 780 // Length and number of words of that length 781 10, 4, 782 // Coordinates where words start and direction (0 = horizontal) 783 0,1,0, 0,11,0, 5,3,0, 5,13,0, 784 // Length and number of words of that length 785 7, 2, 786 // Coordinates where words start and direction (0 = horizontal) 787 5,8,1, 9,0,1, 788 // Length and number of words of that length 789 6, 6, 790 // Coordinates where words start and direction (0 = horizontal) 791 0,6,0, 5,1,1, 6,0,1, 8,9,1, 9,8,0, 9,8,1, 792 // Length and number of words of that length 793 5, 14, 794 // Coordinates where words start and direction (0 = horizontal) 795 0,0,0, 0,0,1, 0,7,0, 1,0,1, 2,0,1, 3,10,1, 7,0,1, 7,10,1, 10,7,0, 10,14,0, 11,0,1, 12,10,1, 13,10,1, 14,10,1, 796 // Length and number of words of that length 797 4, 36, 798 // Coordinates where words start and direction (0 = horizontal) 799 0,3,0, 0,6,1, 0,8,0, 0,11,1, 0,13,0, 0,14,0, 1,6,1, 1,11,1, 2,6,1, 2,11,1, 3,0,1, 3,5,0, 3,5,1, 4,4,0, 4,4,1, 4,9,1, 5,14,0, 6,0,0, 6,11,1, 7,10,0, 8,0,1, 8,9,0, 10,2,1, 10,7,1, 11,0,0, 11,1,0, 11,6,0, 11,6,1, 11,11,0, 11,11,1, 12,0,1, 12,5,1, 13,0,1, 13,5,1, 14,0,1, 14,5,1, 800 // Length and number of words of that length 801 3, 16, 802 // Coordinates where words start and direction (0 = horizontal) 803 0,4,0, 0,9,0, 3,10,0, 4,0,1, 4,9,0, 5,8,0, 6,7,0, 6,7,1, 7,6,0, 7,6,1, 8,5,0, 8,5,1, 9,4,0, 10,12,1, 12,5,0, 12,10,0, 804 // End marker 805 0 806 }; 807 808 809 /* 810 * Name: 15.03, 15 x 15 811 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 812 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 813 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 814 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 815 * (* * * _ _ _ _ * _ _ _ _ * * *) 816 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 817 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 818 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 819 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 820 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 821 * (* * * _ _ _ _ * _ _ _ _ * * *) 822 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 823 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 824 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 825 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 826 */ 827 const int g12[] = { 828 // Width and height of crossword grid 829 15, 15, 830 // Number of black fields 831 36, 832 // Black field coordinates 833 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,8, 4,0, 4,1, 4,2, 4,7, 4,12, 4,13, 4,14, 5,6, 6,5, 6,11, 7,4, 7,10, 8,3, 8,9, 9,8, 10,0, 10,1, 10,2, 10,7, 10,12, 10,13, 10,14, 11,6, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 834 // Length and number of words of that length 835 8, 8, 836 // Coordinates where words start and direction (0 = horizontal) 837 0,3,0, 0,9,0, 3,0,1, 5,7,1, 7,5,0, 7,11,0, 9,0,1, 11,7,1, 838 // Length and number of words of that length 839 6, 8, 840 // Coordinates where words start and direction (0 = horizontal) 841 0,5,0, 0,11,0, 3,9,1, 5,0,1, 9,3,0, 9,9,0, 9,9,1, 11,0,1, 842 // Length and number of words of that length 843 5, 22, 844 // Coordinates where words start and direction (0 = horizontal) 845 0,5,1, 0,6,0, 1,5,1, 2,5,1, 4,8,0, 5,0,0, 5,1,0, 5,2,0, 5,7,0, 5,12,0, 5,13,0, 5,14,0, 6,0,1, 6,6,0, 6,6,1, 7,5,1, 8,4,1, 8,10,1, 10,8,0, 12,5,1, 13,5,1, 14,5,1, 846 // Length and number of words of that length 847 4, 36, 848 // Coordinates where words start and direction (0 = horizontal) 849 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,7,0, 0,11,1, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 3,4,0, 3,10,0, 4,3,1, 4,8,1, 7,0,1, 7,11,1, 8,4,0, 8,10,0, 10,3,1, 10,8,1, 11,0,0, 11,1,0, 11,2,0, 11,7,0, 11,12,0, 11,13,0, 11,14,0, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 850 // Length and number of words of that length 851 3, 4, 852 // Coordinates where words start and direction (0 = horizontal) 853 0,8,0, 6,12,1, 8,0,1, 12,6,0, 854 // End marker 855 0 856 }; 857 858 859 /* 860 * Name: 15.04, 15 x 15 861 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _) 862 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 863 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 864 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 865 * (* * * _ _ _ * _ _ _ _ _ * * *) 866 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 867 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 868 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 869 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 870 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 871 * (* * * _ _ _ _ _ * _ _ _ * * *) 872 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 873 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 874 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 875 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _) 876 */ 877 const int g13[] = { 878 // Width and height of crossword grid 879 15, 15, 880 // Number of black fields 881 32, 882 // Black field coordinates 883 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,0, 3,5, 3,11, 4,6, 5,3, 5,9, 6,4, 6,8, 6,13, 6,14, 8,0, 8,1, 8,6, 8,10, 9,5, 9,11, 10,8, 11,3, 11,9, 11,14, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 884 // Length and number of words of that length 885 15, 4, 886 // Coordinates where words start and direction (0 = horizontal) 887 0,2,0, 0,7,0, 0,12,0, 7,0,1, 888 // Length and number of words of that length 889 8, 4, 890 // Coordinates where words start and direction (0 = horizontal) 891 0,1,0, 4,7,1, 7,13,0, 10,0,1, 892 // Length and number of words of that length 893 6, 8, 894 // Coordinates where words start and direction (0 = horizontal) 895 0,8,0, 0,13,0, 0,14,0, 4,0,1, 9,0,0, 9,1,0, 9,6,0, 10,9,1, 896 // Length and number of words of that length 897 5, 22, 898 // Coordinates where words start and direction (0 = horizontal) 899 0,3,0, 0,5,1, 0,9,0, 1,5,1, 2,5,1, 3,6,1, 3,10,0, 4,5,0, 4,11,0, 5,4,1, 5,10,1, 6,3,0, 6,9,0, 7,4,0, 9,0,1, 9,6,1, 10,5,0, 10,11,0, 11,4,1, 12,5,1, 13,5,1, 14,5,1, 900 // Length and number of words of that length 901 4, 22, 902 // Coordinates where words start and direction (0 = horizontal) 903 0,0,1, 0,6,0, 0,11,1, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 3,1,1, 4,0,0, 6,0,1, 6,9,1, 7,14,0, 8,2,1, 8,11,1, 11,8,0, 11,10,1, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 904 // Length and number of words of that length 905 3, 16, 906 // Coordinates where words start and direction (0 = horizontal) 907 0,0,0, 0,5,0, 0,11,0, 3,4,0, 3,12,1, 5,0,1, 5,6,0, 6,5,1, 7,8,0, 8,7,1, 9,10,0, 9,12,1, 11,0,1, 12,3,0, 12,9,0, 12,14,0, 908 // End marker 909 0 910 }; 911 912 913 /* 914 * Name: 15.05, 15 x 15 915 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 916 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 917 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 918 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 919 * (* * * * _ _ _ * * * _ _ _ _ _) 920 * (_ _ _ _ _ _ * _ _ _ _ * * * *) 921 * (_ _ _ _ _ * * _ _ _ _ _ _ _ *) 922 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 923 * (* _ _ _ _ _ _ _ * * _ _ _ _ _) 924 * (* * * * _ _ _ _ * _ _ _ _ _ _) 925 * (_ _ _ _ _ * * * _ _ _ * * * *) 926 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 927 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 928 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 929 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 930 */ 931 const int g14[] = { 932 // Width and height of crossword grid 933 15, 15, 934 // Number of black fields 935 44, 936 // Black field coordinates 937 0,4, 0,8, 0,9, 1,4, 1,9, 2,4, 2,9, 3,4, 3,9, 4,3, 4,11, 4,12, 4,13, 4,14, 5,0, 5,1, 5,6, 5,10, 6,5, 6,6, 6,10, 7,4, 7,10, 8,4, 8,8, 8,9, 9,4, 9,8, 9,13, 9,14, 10,0, 10,1, 10,2, 10,3, 10,11, 11,5, 11,10, 12,5, 12,10, 13,5, 13,10, 14,5, 14,6, 14,10, 938 // Length and number of words of that length 939 15, 1, 940 // Coordinates where words start and direction (0 = horizontal) 941 0,7,0, 942 // Length and number of words of that length 943 10, 2, 944 // Coordinates where words start and direction (0 = horizontal) 945 0,2,0, 5,12,0, 946 // Length and number of words of that length 947 7, 4, 948 // Coordinates where words start and direction (0 = horizontal) 949 1,8,0, 4,4,1, 7,6,0, 10,4,1, 950 // Length and number of words of that length 951 6, 2, 952 // Coordinates where words start and direction (0 = horizontal) 953 0,5,0, 9,9,0, 954 // Length and number of words of that length 955 5, 21, 956 // Coordinates where words start and direction (0 = horizontal) 957 0,0,0, 0,1,0, 0,6,0, 0,10,0, 0,10,1, 1,10,1, 2,10,1, 3,10,1, 5,3,0, 5,11,0, 6,0,1, 7,5,1, 8,10,1, 10,4,0, 10,8,0, 10,13,0, 10,14,0, 11,0,1, 12,0,1, 13,0,1, 14,0,1, 958 // Length and number of words of that length 959 4, 38, 960 // Coordinates where words start and direction (0 = horizontal) 961 0,0,1, 0,3,0, 0,11,0, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,5,1, 2,0,1, 2,5,1, 3,0,1, 3,5,1, 4,9,0, 5,2,1, 5,11,1, 5,13,0, 5,14,0, 6,0,0, 6,1,0, 6,11,1, 7,0,1, 7,5,0, 7,11,1, 8,0,1, 9,0,1, 9,9,1, 11,0,0, 11,1,0, 11,2,0, 11,3,0, 11,6,1, 11,11,0, 11,11,1, 12,6,1, 12,11,1, 13,6,1, 13,11,1, 14,11,1, 962 // Length and number of words of that length 963 3, 10, 964 // Coordinates where words start and direction (0 = horizontal) 965 0,5,1, 4,0,1, 4,4,0, 5,7,1, 6,7,1, 8,5,1, 8,10,0, 9,5,1, 10,12,1, 14,7,1, 966 // End marker 967 0 968 }; 969 970 971 /* 972 * Name: 15.06, 15 x 15 973 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 974 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 975 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 976 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 977 * (* * * _ _ _ * _ _ _ _ _ * * *) 978 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 979 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _) 980 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 981 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _) 982 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 983 * (* * * _ _ _ _ _ * _ _ _ * * *) 984 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 985 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 986 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 987 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 988 */ 989 const int g15[] = { 990 // Width and height of crossword grid 991 15, 15, 992 // Number of black fields 993 30, 994 // Black field coordinates 995 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,7, 4,3, 4,11, 5,8, 6,4, 6,9, 7,0, 7,1, 7,2, 7,12, 7,13, 7,14, 8,5, 8,10, 9,6, 10,3, 10,11, 11,7, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 996 // Length and number of words of that length 997 9, 3, 998 // Coordinates where words start and direction (0 = horizontal) 999 0,6,0, 6,8,0, 7,3,1, 1000 // Length and number of words of that length 1001 8, 4, 1002 // Coordinates where words start and direction (0 = horizontal) 1003 0,5,0, 5,0,1, 7,9,0, 9,7,1, 1004 // Length and number of words of that length 1005 7, 19, 1006 // Coordinates where words start and direction (0 = horizontal) 1007 0,0,0, 0,1,0, 0,2,0, 0,12,0, 0,13,0, 0,14,0, 3,0,1, 3,8,1, 4,4,1, 4,7,0, 8,0,0, 8,1,0, 8,2,0, 8,12,0, 8,13,0, 8,14,0, 10,4,1, 11,0,1, 11,8,1, 1008 // Length and number of words of that length 1009 6, 4, 1010 // Coordinates where words start and direction (0 = horizontal) 1011 0,9,0, 5,9,1, 9,0,1, 9,5,0, 1012 // Length and number of words of that length 1013 5, 14, 1014 // Coordinates where words start and direction (0 = horizontal) 1015 0,5,1, 0,8,0, 1,5,1, 2,5,1, 3,10,0, 5,3,0, 5,11,0, 6,10,1, 7,4,0, 8,0,1, 10,6,0, 12,5,1, 13,5,1, 14,5,1, 1016 // Length and number of words of that length 1017 4, 20, 1018 // Coordinates where words start and direction (0 = horizontal) 1019 0,0,1, 0,3,0, 0,11,0, 0,11,1, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 6,0,1, 6,5,1, 8,6,1, 8,11,1, 11,3,0, 11,11,0, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 1020 // Length and number of words of that length 1021 3, 8, 1022 // Coordinates where words start and direction (0 = horizontal) 1023 0,7,0, 3,4,0, 4,0,1, 4,12,1, 9,10,0, 10,0,1, 10,12,1, 12,7,0, 1024 // End marker 1025 0 1026 }; 1027 1028 1029 /* 1030 * Name: 15.07, 15 x 15 1031 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 1032 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 1033 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _) 1034 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1035 * (* * _ _ _ _ * _ _ _ * _ _ _ _) 1036 * (_ _ _ _ _ * _ _ _ _ _ _ * * *) 1037 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1038 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 1039 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 1040 * (* * * _ _ _ _ _ _ * _ _ _ _ _) 1041 * (_ _ _ _ * _ _ _ * _ _ _ _ * *) 1042 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1043 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _) 1044 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 1045 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 1046 */ 1047 const int g16[] = { 1048 // Width and height of crossword grid 1049 15, 15, 1050 // Number of black fields 1051 32, 1052 // Black field coordinates 1053 0,4, 0,9, 1,4, 1,9, 2,9, 3,7, 4,0, 4,1, 4,6, 4,10, 5,5, 5,12, 5,13, 5,14, 6,4, 7,3, 7,11, 8,10, 9,0, 9,1, 9,2, 9,9, 10,4, 10,8, 10,13, 10,14, 11,7, 12,5, 13,5, 13,10, 14,5, 14,10, 1054 // Length and number of words of that length 1055 10, 4, 1056 // Coordinates where words start and direction (0 = horizontal) 1057 0,8,0, 5,6,0, 6,5,1, 8,0,1, 1058 // Length and number of words of that length 1059 9, 4, 1060 // Coordinates where words start and direction (0 = horizontal) 1061 0,2,0, 2,0,1, 6,12,0, 12,6,1, 1062 // Length and number of words of that length 1063 7, 10, 1064 // Coordinates where words start and direction (0 = horizontal) 1065 0,3,0, 0,11,0, 3,0,1, 3,8,1, 4,7,0, 7,4,1, 8,3,0, 8,11,0, 11,0,1, 11,8,1, 1066 // Length and number of words of that length 1067 6, 4, 1068 // Coordinates where words start and direction (0 = horizontal) 1069 3,9,0, 5,6,1, 6,5,0, 9,3,1, 1070 // Length and number of words of that length 1071 5, 16, 1072 // Coordinates where words start and direction (0 = horizontal) 1073 0,5,0, 0,10,1, 0,12,0, 0,13,0, 0,14,0, 1,10,1, 2,10,1, 5,0,1, 9,10,1, 10,0,0, 10,1,0, 10,2,0, 10,9,0, 12,0,1, 13,0,1, 14,0,1, 1074 // Length and number of words of that length 1075 4, 28, 1076 // Coordinates where words start and direction (0 = horizontal) 1077 0,0,0, 0,0,1, 0,1,0, 0,5,1, 0,6,0, 0,10,0, 1,0,1, 1,5,1, 2,4,0, 4,2,1, 4,11,1, 5,0,0, 5,1,0, 6,0,1, 6,13,0, 6,14,0, 8,11,1, 9,10,0, 10,0,1, 10,9,1, 11,4,0, 11,8,0, 11,13,0, 11,14,0, 13,6,1, 13,11,1, 14,6,1, 14,11,1, 1078 // Length and number of words of that length 1079 3, 8, 1080 // Coordinates where words start and direction (0 = horizontal) 1081 0,7,0, 4,7,1, 5,10,0, 7,0,1, 7,4,0, 7,12,1, 10,5,1, 12,7,0, 1082 // End marker 1083 0 1084 }; 1085 1086 1087 /* 1088 * Name: 15.08, 15 x 15 1089 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 1090 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 1091 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 1092 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 1093 * (* * * _ _ _ * _ _ _ * _ _ _ _) 1094 * (_ _ _ * _ _ _ _ _ _ _ _ * * *) 1095 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 1096 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1097 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 1098 * (* * * _ _ _ _ _ _ _ _ * _ _ _) 1099 * (_ _ _ _ * _ _ _ * _ _ _ * * *) 1100 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 1101 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 1102 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 1103 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 1104 */ 1105 const int g17[] = { 1106 // Width and height of crossword grid 1107 15, 15, 1108 // Number of black fields 1109 39, 1110 // Black field coordinates 1111 0,4, 0,9, 1,4, 1,9, 2,4, 2,9, 3,5, 3,11, 4,0, 4,1, 4,2, 4,6, 4,10, 5,3, 5,12, 5,13, 5,14, 6,4, 6,8, 7,7, 8,6, 8,10, 9,0, 9,1, 9,2, 9,11, 10,4, 10,8, 10,12, 10,13, 10,14, 11,3, 11,9, 12,5, 12,10, 13,5, 13,10, 14,5, 14,10, 1112 // Length and number of words of that length 1113 8, 4, 1114 // Coordinates where words start and direction (0 = horizontal) 1115 3,9,0, 4,5,0, 5,4,1, 9,3,1, 1116 // Length and number of words of that length 1117 7, 4, 1118 // Coordinates where words start and direction (0 = horizontal) 1119 0,7,0, 7,0,1, 7,8,1, 8,7,0, 1120 // Length and number of words of that length 1121 6, 4, 1122 // Coordinates where words start and direction (0 = horizontal) 1123 0,8,0, 6,9,1, 8,0,1, 9,6,0, 1124 // Length and number of words of that length 1125 5, 20, 1126 // Coordinates where words start and direction (0 = horizontal) 1127 0,3,0, 0,10,1, 0,12,0, 0,13,0, 0,14,0, 1,10,1, 2,10,1, 3,0,1, 3,6,1, 4,11,0, 6,3,0, 10,0,0, 10,1,0, 10,2,0, 10,11,0, 11,4,1, 11,10,1, 12,0,1, 13,0,1, 14,0,1, 1128 // Length and number of words of that length 1129 4, 32, 1130 // Coordinates where words start and direction (0 = horizontal) 1131 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,5,1, 0,6,0, 0,10,0, 1,0,1, 1,5,1, 2,0,1, 2,5,1, 4,11,1, 5,0,0, 5,1,0, 5,2,0, 6,0,1, 6,12,0, 6,13,0, 6,14,0, 8,11,1, 10,0,1, 11,4,0, 11,8,0, 11,12,0, 11,13,0, 11,14,0, 12,6,1, 12,11,1, 13,6,1, 13,11,1, 14,6,1, 14,11,1, 1132 // Length and number of words of that length 1133 3, 20, 1134 // Coordinates where words start and direction (0 = horizontal) 1135 0,5,0, 0,11,0, 3,4,0, 3,12,1, 4,3,1, 4,7,1, 5,0,1, 5,6,0, 5,10,0, 6,5,1, 7,4,0, 7,8,0, 8,7,1, 9,10,0, 9,12,1, 10,5,1, 10,9,1, 11,0,1, 12,3,0, 12,9,0, 1136 // End marker 1137 0 1138 }; 1139 1140 1141 /* 1142 * Name: 15.09, 15 x 15 1143 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1144 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1145 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1146 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1147 * (* * * _ _ _ * _ _ _ _ _ * * *) 1148 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 1149 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 1150 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 1151 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 1152 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 1153 * (* * * _ _ _ _ _ * _ _ _ * * *) 1154 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1155 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1156 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1157 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1158 */ 1159 const int g18[] = { 1160 // Width and height of crossword grid 1161 15, 15, 1162 // Number of black fields 1163 38, 1164 // Black field coordinates 1165 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,7, 4,0, 4,1, 4,2, 4,6, 4,12, 4,13, 4,14, 5,5, 5,9, 6,4, 6,8, 7,3, 7,11, 8,6, 8,10, 9,5, 9,9, 10,0, 10,1, 10,2, 10,8, 10,12, 10,13, 10,14, 11,7, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 1166 // Length and number of words of that length 1167 7, 10, 1168 // Coordinates where words start and direction (0 = horizontal) 1169 0,3,0, 0,11,0, 3,0,1, 3,8,1, 4,7,0, 7,4,1, 8,3,0, 8,11,0, 11,0,1, 11,8,1, 1170 // Length and number of words of that length 1171 6, 4, 1172 // Coordinates where words start and direction (0 = horizontal) 1173 0,8,0, 6,9,1, 8,0,1, 9,6,0, 1174 // Length and number of words of that length 1175 5, 24, 1176 // Coordinates where words start and direction (0 = horizontal) 1177 0,5,0, 0,5,1, 0,9,0, 1,5,1, 2,5,1, 3,10,0, 4,7,1, 5,0,0, 5,0,1, 5,1,0, 5,2,0, 5,10,1, 5,12,0, 5,13,0, 5,14,0, 7,4,0, 9,0,1, 9,10,1, 10,3,1, 10,5,0, 10,9,0, 12,5,1, 13,5,1, 14,5,1, 1178 // Length and number of words of that length 1179 4, 28, 1180 // Coordinates where words start and direction (0 = horizontal) 1181 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,6,0, 0,11,1, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 6,0,1, 8,11,1, 11,0,0, 11,1,0, 11,2,0, 11,8,0, 11,12,0, 11,13,0, 11,14,0, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 1182 // Length and number of words of that length 1183 3, 16, 1184 // Coordinates where words start and direction (0 = horizontal) 1185 0,7,0, 3,4,0, 4,3,1, 5,6,0, 5,6,1, 6,5,0, 6,5,1, 6,9,0, 7,0,1, 7,8,0, 7,12,1, 8,7,1, 9,6,1, 9,10,0, 10,9,1, 12,7,0, 1186 // End marker 1187 0 1188 }; 1189 1190 1191 /* 1192 * Name: 15.10, 15 x 15 1193 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1194 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1195 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 1196 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 1197 * (* * * * _ _ _ _ * _ _ _ _ _ _) 1198 * (_ _ _ _ _ * * _ _ _ _ _ * * *) 1199 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1200 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1201 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 1202 * (* * * _ _ _ _ _ * * _ _ _ _ _) 1203 * (_ _ _ _ _ _ * _ _ _ _ * * * *) 1204 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1205 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1206 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1207 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 1208 */ 1209 const int g19[] = { 1210 // Width and height of crossword grid 1211 15, 15, 1212 // Number of black fields 1213 35, 1214 // Black field coordinates 1215 0,4, 0,9, 1,4, 1,9, 2,4, 2,9, 3,4, 4,0, 4,1, 4,6, 4,11, 4,12, 4,13, 4,14, 5,5, 6,5, 6,10, 7,7, 8,4, 8,9, 9,9, 10,0, 10,1, 10,2, 10,3, 10,8, 10,13, 10,14, 11,10, 12,5, 12,10, 13,5, 13,10, 14,5, 14,10, 1216 // Length and number of words of that length 1217 10, 8, 1218 // Coordinates where words start and direction (0 = horizontal) 1219 0,2,0, 0,3,0, 0,8,0, 3,5,1, 5,6,0, 5,11,0, 5,12,0, 11,0,1, 1220 // Length and number of words of that length 1221 9, 2, 1222 // Coordinates where words start and direction (0 = horizontal) 1223 5,6,1, 9,0,1, 1224 // Length and number of words of that length 1225 7, 4, 1226 // Coordinates where words start and direction (0 = horizontal) 1227 0,7,0, 7,0,1, 7,8,1, 8,7,0, 1228 // Length and number of words of that length 1229 6, 2, 1230 // Coordinates where words start and direction (0 = horizontal) 1231 0,10,0, 9,4,0, 1232 // Length and number of words of that length 1233 5, 18, 1234 // Coordinates where words start and direction (0 = horizontal) 1235 0,5,0, 0,10,1, 1,10,1, 2,10,1, 3,9,0, 5,0,0, 5,0,1, 5,1,0, 5,13,0, 5,14,0, 6,0,1, 7,5,0, 8,10,1, 9,10,1, 10,9,0, 12,0,1, 13,0,1, 14,0,1, 1236 // Length and number of words of that length 1237 4, 38, 1238 // Coordinates where words start and direction (0 = horizontal) 1239 0,0,0, 0,0,1, 0,1,0, 0,5,1, 0,6,0, 0,11,0, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,5,1, 2,0,1, 2,5,1, 3,0,1, 4,2,1, 4,4,0, 4,7,1, 6,6,1, 6,11,1, 7,10,0, 8,0,1, 8,5,1, 10,4,1, 10,9,1, 11,0,0, 11,1,0, 11,2,0, 11,3,0, 11,8,0, 11,11,1, 11,13,0, 11,14,0, 12,6,1, 12,11,1, 13,6,1, 13,11,1, 14,6,1, 14,11,1, 1240 // End marker 1241 0 1242 }; 1243 1244 1245 /* 1246 * Name: 19.01, 19 x 19 1247 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1248 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1249 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 1250 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 1251 * (* * * _ _ _ * _ _ _ _ * _ _ _ _ * * *) 1252 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 1253 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 1254 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1255 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 1256 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 1257 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 1258 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 1259 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 1260 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1261 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ * * *) 1262 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 1263 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 1264 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1265 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1266 */ 1267 const int g20[] = { 1268 // Width and height of crossword grid 1269 19, 19, 1270 // Number of black fields 1271 60, 1272 // Black field coordinates 1273 0,4, 0,9, 0,14, 1,4, 1,9, 1,14, 2,4, 2,14, 3,7, 3,12, 4,0, 4,1, 4,6, 4,11, 4,17, 4,18, 5,5, 5,10, 6,4, 6,9, 6,15, 7,3, 7,8, 7,14, 8,7, 8,13, 9,0, 9,1, 9,2, 9,6, 9,12, 9,16, 9,17, 9,18, 10,5, 10,11, 11,4, 11,10, 11,15, 12,3, 12,9, 12,14, 13,8, 13,13, 14,0, 14,1, 14,7, 14,12, 14,17, 14,18, 15,6, 15,11, 16,4, 16,14, 17,4, 17,9, 17,14, 18,4, 18,9, 18,14, 1274 // Length and number of words of that length 1275 9, 6, 1276 // Coordinates where words start and direction (0 = horizontal) 1277 0,2,0, 0,16,0, 2,5,1, 10,2,0, 10,16,0, 16,5,1, 1278 // Length and number of words of that length 1279 8, 4, 1280 // Coordinates where words start and direction (0 = horizontal) 1281 0,13,0, 5,11,1, 11,5,0, 13,0,1, 1282 // Length and number of words of that length 1283 7, 8, 1284 // Coordinates where words start and direction (0 = horizontal) 1285 0,3,0, 0,8,0, 3,0,1, 8,0,1, 10,12,1, 12,10,0, 12,15,0, 15,12,1, 1286 // Length and number of words of that length 1287 6, 4, 1288 // Coordinates where words start and direction (0 = horizontal) 1289 0,15,0, 3,13,1, 13,3,0, 15,0,1, 1290 // Length and number of words of that length 1291 5, 24, 1292 // Coordinates where words start and direction (0 = horizontal) 1293 0,5,0, 0,10,0, 4,12,0, 4,12,1, 5,0,1, 5,11,0, 6,10,0, 6,10,1, 7,9,0, 7,9,1, 8,8,0, 8,8,1, 8,14,1, 9,7,0, 9,7,1, 10,0,1, 10,6,0, 10,6,1, 11,5,1, 12,4,1, 13,14,1, 14,2,1, 14,8,0, 14,13,0, 1294 // Length and number of words of that length 1295 4, 70, 1296 // Coordinates where words start and direction (0 = horizontal) 1297 0,0,0, 0,0,1, 0,1,0, 0,5,1, 0,6,0, 0,10,1, 0,11,0, 0,15,1, 0,17,0, 0,18,0, 1,0,1, 1,5,1, 1,10,1, 1,15,1, 2,0,1, 2,9,0, 2,15,1, 3,8,1, 3,14,0, 4,2,1, 4,7,0, 4,7,1, 5,0,0, 5,1,0, 5,6,0, 5,6,1, 5,17,0, 5,18,0, 6,0,1, 6,5,0, 6,5,1, 7,4,0, 7,4,1, 7,15,0, 7,15,1, 8,3,0, 8,14,0, 9,13,0, 10,0,0, 10,1,0, 10,12,0, 10,17,0, 10,18,0, 11,0,1, 11,11,0, 11,11,1, 12,4,0, 12,10,1, 12,15,1, 13,9,0, 13,9,1, 14,8,1, 14,13,1, 15,0,0, 15,1,0, 15,7,0, 15,7,1, 15,12,0, 15,17,0, 15,18,0, 16,0,1, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,0,1, 18,5,1, 18,10,1, 18,15,1, 1298 // Length and number of words of that length 1299 3, 12, 1300 // Coordinates where words start and direction (0 = horizontal) 1301 0,7,0, 0,12,0, 3,4,0, 6,16,1, 7,0,1, 9,3,1, 9,13,1, 11,16,1, 12,0,1, 13,14,0, 16,6,0, 16,11,0, 1302 // End marker 1303 0 1304 }; 1305 1306 1307 /* 1308 * Name: 19.02, 19 x 19 1309 * (_ _ _ _ _ * * _ _ _ _ _ * * _ _ _ _ _) 1310 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1311 * (_ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 1312 * (_ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _) 1313 * (* * * _ _ _ _ _ _ * _ _ _ _ _ _ _ * *) 1314 * (_ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _) 1315 * (_ _ _ _ _ * * _ _ _ _ _ _ _ * * _ _ _) 1316 * (_ _ _ * * _ _ _ _ _ _ _ _ * _ _ _ _ _) 1317 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ _ _ _) 1318 * (* * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * *) 1319 * (_ _ _ _ _ _ * * * _ _ _ _ _ * _ _ _ _) 1320 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ * * _ _ _) 1321 * (_ _ _ * * _ _ _ _ _ _ _ * * _ _ _ _ _) 1322 * (_ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _) 1323 * (* * _ _ _ _ _ _ _ * _ _ _ _ _ _ * * *) 1324 * (_ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _) 1325 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _) 1326 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1327 * (_ _ _ _ _ * * _ _ _ _ _ * * _ _ _ _ _) 1328 */ 1329 const int g21[] = { 1330 // Width and height of crossword grid 1331 19, 19, 1332 // Number of black fields 1333 65, 1334 // Black field coordinates 1335 0,4, 0,9, 0,14, 1,4, 1,9, 1,14, 2,4, 3,7, 3,12, 4,3, 4,7, 4,8, 4,12, 4,13, 5,0, 5,1, 5,6, 5,11, 5,16, 5,17, 5,18, 6,0, 6,6, 6,10, 6,18, 7,5, 7,10, 7,15, 8,5, 8,10, 8,15, 9,4, 9,9, 9,14, 10,3, 10,8, 10,13, 11,3, 11,8, 11,13, 12,0, 12,8, 12,12, 12,18, 13,0, 13,1, 13,2, 13,7, 13,12, 13,17, 13,18, 14,5, 14,6, 14,10, 14,11, 14,15, 15,6, 15,11, 16,14, 17,4, 17,9, 17,14, 18,4, 18,9, 18,14, 1336 // Length and number of words of that length 1337 14, 2, 1338 // Coordinates where words start and direction (0 = horizontal) 1339 2,5,1, 16,0,1, 1340 // Length and number of words of that length 1341 13, 2, 1342 // Coordinates where words start and direction (0 = horizontal) 1343 0,2,0, 6,16,0, 1344 // Length and number of words of that length 1345 8, 2, 1346 // Coordinates where words start and direction (0 = horizontal) 1347 5,7,0, 6,11,0, 1348 // Length and number of words of that length 1349 7, 16, 1350 // Coordinates where words start and direction (0 = horizontal) 1351 0,5,0, 0,15,0, 2,9,0, 2,14,0, 3,0,1, 5,12,0, 6,1,0, 6,11,1, 6,17,0, 7,6,0, 10,4,0, 10,9,0, 12,1,1, 12,3,0, 12,13,0, 15,12,1, 1352 // Length and number of words of that length 1353 6, 6, 1354 // Coordinates where words start and direction (0 = horizontal) 1355 0,10,0, 3,4,0, 3,13,1, 10,14,0, 13,8,0, 15,0,1, 1356 // Length and number of words of that length 1357 5, 30, 1358 // Coordinates where words start and direction (0 = horizontal) 1359 0,0,0, 0,1,0, 0,6,0, 0,11,0, 0,16,0, 0,17,0, 0,18,0, 4,14,1, 5,3,0, 5,8,0, 5,13,0, 6,1,1, 7,0,0, 7,0,1, 7,18,0, 8,0,1, 9,5,0, 9,10,0, 9,15,0, 10,14,1, 11,14,1, 12,13,1, 14,0,0, 14,0,1, 14,1,0, 14,2,0, 14,7,0, 14,12,0, 14,17,0, 14,18,0, 1360 // Length and number of words of that length 1361 4, 44, 1362 // Coordinates where words start and direction (0 = horizontal) 1363 0,0,1, 0,3,0, 0,5,1, 0,8,0, 0,10,1, 0,13,0, 0,15,1, 1,0,1, 1,5,1, 1,10,1, 1,15,1, 2,0,1, 3,8,1, 5,2,1, 5,7,1, 5,12,1, 7,6,1, 7,11,1, 8,6,1, 8,11,1, 9,0,1, 9,5,1, 9,10,1, 9,15,1, 10,4,1, 10,9,1, 11,4,1, 11,9,1, 13,3,1, 13,8,1, 13,13,1, 15,5,0, 15,7,1, 15,10,0, 15,15,0, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,0,1, 18,5,1, 18,10,1, 18,15,1, 1364 // Length and number of words of that length 1365 3, 16, 1366 // Coordinates where words start and direction (0 = horizontal) 1367 0,7,0, 0,12,0, 4,0,1, 4,4,1, 4,9,1, 6,7,1, 7,16,1, 8,16,1, 10,0,1, 11,0,1, 12,9,1, 14,7,1, 14,12,1, 14,16,1, 16,6,0, 16,11,0, 1368 // End marker 1369 0 1370 }; 1371 1372 1373 /* 1374 * Name: 19.03, 19 x 19 1375 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1376 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1377 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1378 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 1379 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1380 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1381 * (* * * _ _ _ _ _ * _ _ _ _ _ _ _ * * *) 1382 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 1383 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 1384 * (_ _ _ * * _ _ _ _ _ _ _ _ _ * * _ _ _) 1385 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 1386 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 1387 * (* * * _ _ _ _ _ _ _ * _ _ _ _ _ * * *) 1388 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1389 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1390 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 1391 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1392 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1393 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1394 */ 1395 const int g22[] = { 1396 // Width and height of crossword grid 1397 19, 19, 1398 // Number of black fields 1399 54, 1400 // Black field coordinates 1401 0,6, 0,12, 1,6, 1,12, 2,6, 2,12, 3,3, 3,9, 3,15, 4,4, 4,9, 4,14, 5,5, 5,13, 6,0, 6,1, 6,2, 6,8, 6,16, 6,17, 6,18, 7,7, 7,11, 8,6, 8,10, 9,3, 9,4, 9,14, 9,15, 10,8, 10,12, 11,7, 11,11, 12,0, 12,1, 12,2, 12,10, 12,16, 12,17, 12,18, 13,5, 13,13, 14,4, 14,9, 14,14, 15,3, 15,9, 15,15, 16,6, 16,12, 17,6, 17,12, 18,6, 18,12, 1402 // Length and number of words of that length 1403 9, 2, 1404 // Coordinates where words start and direction (0 = horizontal) 1405 5,9,0, 9,5,1, 1406 // Length and number of words of that length 1407 8, 4, 1408 // Coordinates where words start and direction (0 = horizontal) 1409 0,10,0, 8,11,1, 10,0,1, 11,8,0, 1410 // Length and number of words of that length 1411 7, 16, 1412 // Coordinates where words start and direction (0 = horizontal) 1413 0,7,0, 0,11,0, 3,12,0, 5,6,1, 6,5,0, 6,9,1, 6,13,0, 7,0,1, 7,12,1, 9,6,0, 11,0,1, 11,12,1, 12,3,1, 12,7,0, 12,11,0, 13,6,1, 1414 // Length and number of words of that length 1415 6, 28, 1416 // Coordinates where words start and direction (0 = horizontal) 1417 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,8,0, 0,13,1, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,13,1, 2,0,1, 2,13,1, 8,0,1, 10,13,1, 13,0,0, 13,1,0, 13,2,0, 13,10,0, 13,16,0, 13,17,0, 13,18,0, 16,0,1, 16,13,1, 17,0,1, 17,13,1, 18,0,1, 18,13,1, 1418 // Length and number of words of that length 1419 5, 32, 1420 // Coordinates where words start and direction (0 = horizontal) 1421 0,5,0, 0,7,1, 0,13,0, 1,7,1, 2,7,1, 3,4,1, 3,6,0, 3,10,1, 4,3,0, 4,15,0, 5,0,1, 5,14,1, 6,3,1, 7,0,0, 7,1,0, 7,2,0, 7,16,0, 7,17,0, 7,18,0, 10,3,0, 10,15,0, 11,12,0, 12,11,1, 13,0,1, 13,14,1, 14,5,0, 14,13,0, 15,4,1, 15,10,1, 16,7,1, 17,7,1, 18,7,1, 1422 // Length and number of words of that length 1423 4, 16, 1424 // Coordinates where words start and direction (0 = horizontal) 1425 0,4,0, 0,14,0, 4,0,1, 4,5,1, 4,10,1, 4,15,1, 5,4,0, 5,14,0, 10,4,0, 10,14,0, 14,0,1, 14,5,1, 14,10,1, 14,15,1, 15,4,0, 15,14,0, 1426 // Length and number of words of that length 1427 3, 20, 1428 // Coordinates where words start and direction (0 = horizontal) 1429 0,3,0, 0,9,0, 0,15,0, 3,0,1, 3,16,1, 7,8,0, 7,8,1, 8,7,0, 8,7,1, 8,11,0, 9,0,1, 9,10,0, 9,16,1, 10,9,1, 11,8,1, 15,0,1, 15,16,1, 16,3,0, 16,9,0, 16,15,0, 1430 // End marker 1431 0 1432 }; 1433 1434 1435 /* 1436 * Name: 19.04, 19 x 19 1437 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1438 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1439 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1440 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 1441 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 1442 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 1443 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1444 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 1445 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1446 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 1447 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1448 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 1449 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1450 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 1451 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 1452 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 1453 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1454 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1455 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 1456 */ 1457 const int g23[] = { 1458 // Width and height of crossword grid 1459 19, 19, 1460 // Number of black fields 1461 65, 1462 // Black field coordinates 1463 0,5, 0,13, 1,5, 1,13, 2,5, 2,13, 3,3, 3,7, 3,11, 3,15, 4,4, 4,8, 4,9, 4,10, 4,14, 5,0, 5,1, 5,2, 5,16, 5,17, 5,18, 6,6, 6,12, 7,3, 7,7, 7,11, 7,15, 8,4, 8,9, 8,14, 9,4, 9,8, 9,9, 9,10, 9,14, 10,4, 10,9, 10,14, 11,3, 11,7, 11,11, 11,15, 12,6, 12,12, 13,0, 13,1, 13,2, 13,16, 13,17, 13,18, 14,4, 14,8, 14,9, 14,10, 14,14, 15,3, 15,7, 15,11, 15,15, 16,5, 16,13, 17,5, 17,13, 18,5, 18,13, 1464 // Length and number of words of that length 1465 13, 4, 1466 // Coordinates where words start and direction (0 = horizontal) 1467 3,5,0, 3,13,0, 5,3,1, 13,3,1, 1468 // Length and number of words of that length 1469 7, 12, 1470 // Coordinates where words start and direction (0 = horizontal) 1471 0,6,1, 1,6,1, 2,6,1, 6,0,0, 6,1,0, 6,2,0, 6,16,0, 6,17,0, 6,18,0, 16,6,1, 17,6,1, 18,6,1, 1472 // Length and number of words of that length 1473 6, 8, 1474 // Coordinates where words start and direction (0 = horizontal) 1475 0,6,0, 0,12,0, 6,0,1, 6,13,1, 12,0,1, 12,13,1, 13,6,0, 13,12,0, 1476 // Length and number of words of that length 1477 5, 28, 1478 // Coordinates where words start and direction (0 = horizontal) 1479 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,14,1, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,14,1, 2,0,1, 2,14,1, 6,7,1, 7,6,0, 7,12,0, 12,7,1, 14,0,0, 14,1,0, 14,2,0, 14,16,0, 14,17,0, 14,18,0, 16,0,1, 16,14,1, 17,0,1, 17,14,1, 18,0,1, 18,14,1, 1480 // Length and number of words of that length 1481 4, 28, 1482 // Coordinates where words start and direction (0 = horizontal) 1483 0,4,0, 0,8,0, 0,9,0, 0,10,0, 0,14,0, 4,0,1, 4,15,1, 5,8,0, 5,10,0, 8,0,1, 8,5,1, 8,10,1, 8,15,1, 9,0,1, 9,15,1, 10,0,1, 10,5,1, 10,8,0, 10,10,0, 10,10,1, 10,15,1, 14,0,1, 14,15,1, 15,4,0, 15,8,0, 15,9,0, 15,10,0, 15,14,0, 1484 // Length and number of words of that length 1485 3, 52, 1486 // Coordinates where words start and direction (0 = horizontal) 1487 0,3,0, 0,7,0, 0,11,0, 0,15,0, 3,0,1, 3,4,1, 3,8,1, 3,12,1, 3,16,1, 4,3,0, 4,5,1, 4,7,0, 4,11,0, 4,11,1, 4,15,0, 5,4,0, 5,9,0, 5,14,0, 7,0,1, 7,4,1, 7,8,1, 7,12,1, 7,16,1, 8,3,0, 8,7,0, 8,11,0, 8,15,0, 9,5,1, 9,11,1, 11,0,1, 11,4,0, 11,4,1, 11,8,1, 11,9,0, 11,12,1, 11,14,0, 11,16,1, 12,3,0, 12,7,0, 12,11,0, 12,15,0, 14,5,1, 14,11,1, 15,0,1, 15,4,1, 15,8,1, 15,12,1, 15,16,1, 16,3,0, 16,7,0, 16,11,0, 16,15,0, 1488 // End marker 1489 0 1490 }; 1491 1492 1493 /* 1494 * Name: 19.05, 19 x 19 1495 * (_ _ _ _ * * _ _ _ * _ _ _ _ * _ _ _ _) 1496 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1497 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1498 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ * * *) 1499 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1500 * (_ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _) 1501 * (_ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _) 1502 * (_ _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _) 1503 * (_ _ _ _ * * _ _ _ _ _ * _ _ _ _ * * *) 1504 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1505 * (* * * _ _ _ _ * _ _ _ _ _ * * _ _ _ _) 1506 * (_ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ _) 1507 * (_ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _) 1508 * (_ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _) 1509 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 1510 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 1511 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1512 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1513 * (_ _ _ _ * _ _ _ _ * _ _ _ * * _ _ _ _) 1514 */ 1515 const int g24[] = { 1516 // Width and height of crossword grid 1517 19, 19, 1518 // Number of black fields 1519 70, 1520 // Black field coordinates 1521 0,4, 0,10, 0,15, 1,4, 1,10, 1,15, 2,4, 2,10, 2,15, 3,6, 3,11, 4,0, 4,1, 4,2, 4,7, 4,8, 4,12, 4,16, 4,17, 4,18, 5,0, 5,8, 5,12, 5,13, 6,5, 6,13, 7,3, 7,10, 7,15, 8,6, 8,11, 9,0, 9,1, 9,2, 9,7, 9,11, 9,16, 9,17, 9,18, 10,7, 10,12, 11,3, 11,8, 11,15, 12,5, 12,13, 13,5, 13,6, 13,10, 13,18, 14,0, 14,1, 14,2, 14,6, 14,10, 14,11, 14,16, 14,17, 14,18, 15,7, 15,12, 16,3, 16,8, 16,14, 17,3, 17,8, 17,14, 18,3, 18,8, 18,14, 1522 // Length and number of words of that length 1523 19, 1, 1524 // Coordinates where words start and direction (0 = horizontal) 1525 0,9,0, 1526 // Length and number of words of that length 1527 16, 2, 1528 // Coordinates where words start and direction (0 = horizontal) 1529 0,14,0, 3,4,0, 1530 // Length and number of words of that length 1531 7, 10, 1532 // Coordinates where words start and direction (0 = horizontal) 1533 0,3,0, 3,12,1, 5,1,1, 6,6,1, 8,12,1, 10,0,1, 12,6,1, 12,15,0, 13,11,1, 15,0,1, 1534 // Length and number of words of that length 1535 6, 8, 1536 // Coordinates where words start and direction (0 = horizontal) 1537 0,5,0, 3,0,1, 7,4,1, 8,0,1, 10,13,1, 11,9,1, 13,13,0, 15,13,1, 1538 // Length and number of words of that length 1539 5, 18, 1540 // Coordinates where words start and direction (0 = horizontal) 1541 0,5,1, 0,13,0, 1,5,1, 2,5,1, 5,14,1, 6,0,1, 6,8,0, 6,14,1, 7,5,0, 7,13,0, 8,10,0, 12,0,1, 12,14,1, 13,0,1, 14,5,0, 16,9,1, 17,9,1, 18,9,1, 1542 // Length and number of words of that length 1543 4, 62, 1544 // Coordinates where words start and direction (0 = horizontal) 1545 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,7,0, 0,8,0, 0,11,1, 0,12,0, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 3,7,1, 3,10,0, 3,15,0, 4,3,1, 4,6,0, 4,11,0, 5,1,0, 5,2,0, 5,7,0, 5,16,0, 5,17,0, 5,18,0, 6,12,0, 7,11,1, 8,7,1, 9,3,1, 9,6,0, 9,12,1, 10,0,0, 10,1,0, 10,2,0, 10,8,1, 10,11,0, 10,16,0, 10,17,0, 11,4,1, 11,7,0, 11,12,0, 12,3,0, 12,8,0, 14,12,1, 15,0,0, 15,1,0, 15,2,0, 15,6,0, 15,8,1, 15,10,0, 15,11,0, 15,16,0, 15,17,0, 15,18,0, 16,4,1, 16,15,1, 17,4,1, 17,15,1, 18,4,1, 18,15,1, 1546 // Length and number of words of that length 1547 3, 25, 1548 // Coordinates where words start and direction (0 = horizontal) 1549 0,6,0, 0,11,0, 0,16,1, 1,16,1, 2,16,1, 4,9,1, 4,13,1, 5,9,1, 6,0,0, 7,0,1, 7,16,1, 8,3,0, 8,15,0, 9,8,1, 10,18,0, 11,0,1, 11,16,1, 13,7,1, 14,3,1, 14,7,1, 16,0,1, 16,7,0, 16,12,0, 17,0,1, 18,0,1, 1550 // End marker 1551 0 1552 }; 1553 1554 1555 /* 1556 * Name: 19.06, 19 x 19 1557 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1558 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1559 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1560 * (* _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * * *) 1561 * (* * * _ _ _ * * _ _ _ * * _ _ _ _ * *) 1562 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 1563 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 1564 * (_ _ _ _ * _ _ _ * _ _ _ _ _ * * _ _ _) 1565 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 1566 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 1567 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 1568 * (_ _ _ * * _ _ _ _ _ * _ _ _ * _ _ _ _) 1569 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 1570 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1571 * (* * _ _ _ _ * * _ _ _ * * _ _ _ * * *) 1572 * (* * * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ *) 1573 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1574 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1575 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1576 */ 1577 const int g25[] = { 1578 // Width and height of crossword grid 1579 19, 19, 1580 // Number of black fields 1581 74, 1582 // Black field coordinates 1583 0,3, 0,4, 0,9, 0,14, 0,15, 1,4, 1,9, 1,14, 1,15, 2,4, 2,15, 3,11, 3,12, 4,0, 4,1, 4,2, 4,3, 4,7, 4,11, 4,16, 4,17, 4,18, 5,5, 5,6, 5,10, 6,4, 6,9, 6,14, 7,4, 7,8, 7,14, 8,7, 8,13, 9,0, 9,1, 9,2, 9,6, 9,12, 9,16, 9,17, 9,18, 10,5, 10,11, 11,4, 11,10, 11,14, 12,4, 12,9, 12,14, 13,8, 13,12, 13,13, 14,0, 14,1, 14,2, 14,7, 14,11, 14,15, 14,16, 14,17, 14,18, 15,6, 15,7, 16,3, 16,14, 17,3, 17,4, 17,9, 17,14, 18,3, 18,4, 18,9, 18,14, 18,15, 1584 // Length and number of words of that length 1585 11, 4, 1586 // Coordinates where words start and direction (0 = horizontal) 1587 3,0,1, 3,15,0, 5,3,0, 15,8,1, 1588 // Length and number of words of that length 1589 10, 2, 1590 // Coordinates where words start and direction (0 = horizontal) 1591 2,5,1, 16,4,1, 1592 // Length and number of words of that length 1593 8, 4, 1594 // Coordinates where words start and direction (0 = horizontal) 1595 0,13,0, 5,11,1, 11,5,0, 13,0,1, 1596 // Length and number of words of that length 1597 7, 4, 1598 // Coordinates where words start and direction (0 = horizontal) 1599 0,8,0, 8,0,1, 10,12,1, 12,10,0, 1600 // Length and number of words of that length 1601 6, 2, 1602 // Coordinates where words start and direction (0 = horizontal) 1603 3,13,1, 15,0,1, 1604 // Length and number of words of that length 1605 5, 22, 1606 // Coordinates where words start and direction (0 = horizontal) 1607 0,5,0, 0,6,0, 0,10,0, 4,12,0, 5,0,1, 5,11,0, 6,10,0, 7,9,0, 7,9,1, 8,8,0, 8,8,1, 8,14,1, 9,7,0, 9,7,1, 10,0,1, 10,6,0, 10,6,1, 11,5,1, 13,14,1, 14,8,0, 14,12,0, 14,13,0, 1608 // Length and number of words of that length 1609 4, 58, 1610 // Coordinates where words start and direction (0 = horizontal) 1611 0,0,0, 0,1,0, 0,2,0, 0,5,1, 0,7,0, 0,10,1, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,5,1, 1,10,1, 2,0,1, 2,9,0, 2,14,0, 4,12,1, 5,0,0, 5,1,0, 5,2,0, 5,16,0, 5,17,0, 5,18,0, 6,0,1, 6,5,0, 6,5,1, 6,10,1, 6,15,1, 7,0,1, 7,15,1, 9,13,0, 10,0,0, 10,1,0, 10,2,0, 10,16,0, 10,17,0, 10,18,0, 11,0,1, 11,15,1, 12,0,1, 12,5,1, 12,10,1, 12,15,1, 13,4,0, 13,9,0, 14,3,1, 15,0,0, 15,1,0, 15,2,0, 15,11,0, 15,16,0, 15,17,0, 15,18,0, 16,15,1, 17,5,1, 17,10,1, 17,15,1, 18,5,1, 18,10,1, 1612 // Length and number of words of that length 1613 3, 32, 1614 // Coordinates where words start and direction (0 = horizontal) 1615 0,0,1, 0,11,0, 0,12,0, 0,16,1, 1,3,0, 1,16,1, 2,16,1, 3,4,0, 4,4,1, 4,8,1, 5,7,0, 5,7,1, 6,6,0, 7,5,1, 8,4,0, 8,14,0, 9,3,1, 9,13,1, 10,12,0, 11,11,0, 11,11,1, 13,9,1, 13,14,0, 14,8,1, 14,12,1, 15,15,0, 16,0,1, 16,6,0, 16,7,0, 17,0,1, 18,0,1, 18,16,1, 1616 // End marker 1617 0 1618 }; 1619 1620 1621 /* 1622 * Name: 19.07, 19 x 19 1623 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 1624 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 1625 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 1626 * (_ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _) 1627 * (* * * * _ _ _ * _ _ _ _ * _ _ _ * * *) 1628 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 1629 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 1630 * (_ _ _ _ * _ _ _ * * _ _ _ * * _ _ _ _) 1631 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 1632 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ * * *) 1633 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 1634 * (_ _ _ _ * * _ _ _ * * _ _ _ * _ _ _ _) 1635 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1636 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 1637 * (* * * _ _ _ * _ _ _ _ * _ _ _ * * * *) 1638 * (_ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _) 1639 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1640 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1641 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1642 */ 1643 const int g26[] = { 1644 // Width and height of crossword grid 1645 19, 19, 1646 // Number of black fields 1647 70, 1648 // Black field coordinates 1649 0,4, 0,9, 0,14, 1,4, 1,9, 1,14, 2,4, 2,9, 2,14, 3,3, 3,4, 3,16, 3,17, 3,18, 4,7, 4,11, 4,15, 5,0, 5,1, 5,6, 5,11, 5,15, 6,5, 6,10, 6,14, 7,4, 7,8, 7,9, 7,13, 8,3, 8,7, 8,12, 8,17, 8,18, 9,7, 9,11, 10,0, 10,1, 10,6, 10,11, 10,15, 11,5, 11,9, 11,10, 11,14, 12,4, 12,8, 12,13, 13,3, 13,7, 13,12, 13,17, 13,18, 14,3, 14,7, 14,11, 15,0, 15,1, 15,2, 15,14, 15,15, 16,4, 16,9, 16,14, 17,4, 17,9, 17,14, 18,4, 18,9, 18,14, 1650 // Length and number of words of that length 1651 15, 2, 1652 // Coordinates where words start and direction (0 = horizontal) 1653 0,2,0, 4,16,0, 1654 // Length and number of words of that length 1655 11, 2, 1656 // Coordinates where words start and direction (0 = horizontal) 1657 3,5,1, 15,3,1, 1658 // Length and number of words of that length 1659 8, 2, 1660 // Coordinates where words start and direction (0 = horizontal) 1661 0,12,0, 11,6,0, 1662 // Length and number of words of that length 1663 7, 8, 1664 // Coordinates where words start and direction (0 = horizontal) 1665 0,8,0, 0,13,0, 4,0,1, 9,0,1, 9,12,1, 12,5,0, 12,10,0, 14,12,1, 1666 // Length and number of words of that length 1667 6, 4, 1668 // Coordinates where words start and direction (0 = horizontal) 1669 0,5,0, 0,10,0, 13,8,0, 13,13,0, 1670 // Length and number of words of that length 1671 5, 10, 1672 // Coordinates where words start and direction (0 = horizontal) 1673 0,0,0, 0,1,0, 0,6,0, 6,0,1, 7,14,1, 11,0,1, 12,14,1, 14,12,0, 14,17,0, 14,18,0, 1674 // Length and number of words of that length 1675 4, 66, 1676 // Coordinates where words start and direction (0 = horizontal) 1677 0,0,1, 0,5,1, 0,7,0, 0,10,1, 0,11,0, 0,15,0, 0,15,1, 1,0,1, 1,5,1, 1,10,1, 1,15,1, 2,0,1, 2,5,1, 2,10,1, 2,15,1, 3,9,0, 4,3,0, 4,17,0, 4,18,0, 5,2,1, 5,7,1, 6,0,0, 6,1,0, 6,6,0, 6,6,1, 6,15,0, 6,15,1, 7,0,1, 7,5,0, 7,10,0, 7,14,0, 8,4,0, 8,8,0, 8,8,1, 8,13,0, 8,13,1, 9,3,0, 9,12,0, 9,17,0, 9,18,0, 10,2,1, 10,7,1, 11,0,0, 11,1,0, 11,15,0, 11,15,1, 12,0,1, 12,9,0, 12,9,1, 13,8,1, 13,13,1, 15,3,0, 15,7,0, 15,11,0, 16,0,1, 16,5,1, 16,10,1, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,0,1, 18,5,1, 18,10,1, 18,15,1, 1678 // Length and number of words of that length 1679 3, 40, 1680 // Coordinates where words start and direction (0 = horizontal) 1681 0,3,0, 0,16,0, 0,17,0, 0,18,0, 3,0,1, 3,14,0, 4,4,0, 4,8,1, 4,12,1, 4,16,1, 5,7,0, 5,12,1, 5,16,1, 6,11,0, 6,11,1, 7,5,1, 7,10,1, 8,0,1, 8,4,1, 8,9,0, 9,8,1, 10,7,0, 10,12,1, 10,16,1, 11,6,1, 11,11,0, 11,11,1, 12,5,1, 12,14,0, 13,0,1, 13,4,0, 13,4,1, 14,0,1, 14,4,1, 14,8,1, 15,16,1, 16,0,0, 16,1,0, 16,2,0, 16,15,0, 1682 // End marker 1683 0 1684 }; 1685 1686 1687 /* 1688 * Name: 19.08, 19 x 19 1689 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1690 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1691 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1692 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 1693 * (* * * _ _ _ * * _ _ _ _ * _ _ _ * * *) 1694 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1695 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 1696 * (_ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _) 1697 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 1698 * (* * * _ _ _ * _ _ _ _ _ * _ _ _ * * *) 1699 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 1700 * (_ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _) 1701 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 1702 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 1703 * (* * * _ _ _ * _ _ _ _ * * _ _ _ * * *) 1704 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1705 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1706 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1707 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1708 */ 1709 const int g27[] = { 1710 // Width and height of crossword grid 1711 19, 19, 1712 // Number of black fields 1713 66, 1714 // Black field coordinates 1715 0,4, 0,9, 0,14, 1,4, 1,9, 1,14, 2,4, 2,9, 2,14, 3,6, 4,0, 4,1, 4,2, 4,7, 4,11, 4,12, 4,16, 4,17, 4,18, 5,8, 5,13, 6,4, 6,9, 6,14, 7,4, 7,10, 8,5, 8,11, 8,15, 9,0, 9,1, 9,2, 9,6, 9,12, 9,16, 9,17, 9,18, 10,3, 10,7, 10,13, 11,8, 11,14, 12,4, 12,9, 12,14, 13,5, 13,10, 14,0, 14,1, 14,2, 14,6, 14,7, 14,11, 14,16, 14,17, 14,18, 15,12, 16,4, 16,9, 16,14, 17,4, 17,9, 17,14, 18,4, 18,9, 18,14, 1716 // Length and number of words of that length 1717 12, 2, 1718 // Coordinates where words start and direction (0 = horizontal) 1719 3,7,1, 15,0,1, 1720 // Length and number of words of that length 1721 10, 2, 1722 // Coordinates where words start and direction (0 = horizontal) 1723 0,3,0, 9,15,0, 1724 // Length and number of words of that length 1725 8, 8, 1726 // Coordinates where words start and direction (0 = horizontal) 1727 0,5,0, 0,15,0, 5,0,1, 7,11,1, 11,0,1, 11,3,0, 11,13,0, 13,11,1, 1728 // Length and number of words of that length 1729 7, 2, 1730 // Coordinates where words start and direction (0 = horizontal) 1731 0,10,0, 12,8,0, 1732 // Length and number of words of that length 1733 6, 2, 1734 // Coordinates where words start and direction (0 = horizontal) 1735 3,0,1, 15,13,1, 1736 // Length and number of words of that length 1737 5, 20, 1738 // Coordinates where words start and direction (0 = horizontal) 1739 0,8,0, 0,13,0, 4,6,0, 5,7,0, 5,14,1, 6,8,0, 7,5,1, 7,9,0, 8,0,1, 8,6,1, 8,10,0, 9,7,1, 9,11,0, 10,8,1, 10,12,0, 10,14,1, 11,9,1, 13,0,1, 14,5,0, 14,10,0, 1740 // Length and number of words of that length 1741 4, 74, 1742 // Coordinates where words start and direction (0 = horizontal) 1743 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,5,1, 0,7,0, 0,10,1, 0,11,0, 0,12,0, 0,15,1, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,5,1, 1,10,1, 1,15,1, 2,0,1, 2,5,1, 2,10,1, 2,15,1, 4,3,1, 5,0,0, 5,1,0, 5,2,0, 5,9,1, 5,12,0, 5,16,0, 5,17,0, 5,18,0, 6,0,1, 6,5,1, 6,10,1, 6,13,0, 6,15,1, 7,0,1, 7,14,0, 8,4,0, 9,5,0, 10,0,0, 10,1,0, 10,2,0, 10,6,0, 10,16,0, 10,17,0, 10,18,0, 11,15,1, 12,0,1, 12,5,1, 12,10,1, 12,15,1, 13,6,1, 14,12,1, 15,0,0, 15,1,0, 15,2,0, 15,6,0, 15,7,0, 15,11,0, 15,16,0, 15,17,0, 15,18,0, 16,0,1, 16,5,1, 16,10,1, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,0,1, 18,5,1, 18,10,1, 18,15,1, 1744 // Length and number of words of that length 1745 3, 20, 1746 // Coordinates where words start and direction (0 = horizontal) 1747 0,6,0, 3,4,0, 3,9,0, 3,14,0, 4,8,1, 4,13,1, 5,11,0, 8,12,1, 8,16,1, 9,3,1, 9,13,1, 10,0,1, 10,4,1, 11,7,0, 13,4,0, 13,9,0, 13,14,0, 14,3,1, 14,8,1, 16,12,0, 1748 // End marker 1749 0 1750 }; 1751 1752 1753 /* 1754 * Name: 19.09, 19 x 19 1755 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1756 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1757 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1758 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 1759 * (* * * _ _ _ _ * _ _ _ * * _ _ _ _ * *) 1760 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 1761 * (_ _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _) 1762 * (_ _ _ * * _ _ _ * _ _ _ _ _ * * _ _ _) 1763 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 1764 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 1765 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 1766 * (_ _ _ * * _ _ _ _ _ * _ _ _ * * _ _ _) 1767 * (_ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ _) 1768 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 1769 * (* * _ _ _ _ * * _ _ _ * _ _ _ _ * * *) 1770 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1771 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1772 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1773 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1774 */ 1775 const int g28[] = { 1776 // Width and height of crossword grid 1777 19, 19, 1778 // Number of black fields 1779 66, 1780 // Black field coordinates 1781 0,4, 0,9, 0,14, 1,4, 1,9, 1,14, 2,4, 3,7, 3,11, 3,15, 4,0, 4,1, 4,2, 4,7, 4,11, 4,12, 4,16, 4,17, 4,18, 5,6, 5,10, 6,5, 6,9, 6,14, 7,4, 7,8, 7,14, 8,7, 8,13, 9,0, 9,1, 9,2, 9,6, 9,12, 9,16, 9,17, 9,18, 10,5, 10,11, 11,4, 11,10, 11,14, 12,4, 12,9, 12,13, 13,8, 13,12, 14,0, 14,1, 14,2, 14,6, 14,7, 14,11, 14,16, 14,17, 14,18, 15,3, 15,7, 15,11, 16,14, 17,4, 17,9, 17,14, 18,4, 18,9, 18,14, 1782 // Length and number of words of that length 1783 15, 2, 1784 // Coordinates where words start and direction (0 = horizontal) 1785 0,3,0, 4,15,0, 1786 // Length and number of words of that length 1787 14, 2, 1788 // Coordinates where words start and direction (0 = horizontal) 1789 2,5,1, 16,0,1, 1790 // Length and number of words of that length 1791 8, 4, 1792 // Coordinates where words start and direction (0 = horizontal) 1793 0,13,0, 5,11,1, 11,5,0, 13,0,1, 1794 // Length and number of words of that length 1795 7, 6, 1796 // Coordinates where words start and direction (0 = horizontal) 1797 0,8,0, 3,0,1, 8,0,1, 10,12,1, 12,10,0, 15,12,1, 1798 // Length and number of words of that length 1799 6, 4, 1800 // Coordinates where words start and direction (0 = horizontal) 1801 0,5,0, 5,0,1, 13,13,0, 13,13,1, 1802 // Length and number of words of that length 1803 5, 18, 1804 // Coordinates where words start and direction (0 = horizontal) 1805 0,6,0, 0,10,0, 5,11,0, 6,0,1, 6,10,0, 7,9,0, 7,9,1, 8,8,0, 8,8,1, 8,14,1, 9,7,0, 9,7,1, 10,0,1, 10,6,1, 11,5,1, 12,14,1, 14,8,0, 14,12,0, 1806 // Length and number of words of that length 1807 4, 62, 1808 // Coordinates where words start and direction (0 = horizontal) 1809 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,5,1, 0,10,1, 0,12,0, 0,15,1, 0,16,0, 0,17,0, 0,18,0, 1,0,1, 1,5,1, 1,10,1, 1,15,1, 2,0,1, 2,9,0, 2,14,0, 3,4,0, 4,3,1, 5,0,0, 5,1,0, 5,2,0, 5,12,0, 5,16,0, 5,17,0, 5,18,0, 6,10,1, 6,15,1, 7,0,1, 7,15,1, 10,0,0, 10,1,0, 10,2,0, 10,6,0, 10,16,0, 10,17,0, 10,18,0, 11,0,1, 11,15,1, 12,0,1, 12,5,1, 12,14,0, 13,4,0, 13,9,0, 14,12,1, 15,0,0, 15,1,0, 15,2,0, 15,6,0, 15,16,0, 15,17,0, 15,18,0, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,0,1, 18,5,1, 18,10,1, 18,15,1, 1810 // Length and number of words of that length 1811 3, 32, 1812 // Coordinates where words start and direction (0 = horizontal) 1813 0,7,0, 0,11,0, 0,15,0, 3,8,1, 3,12,1, 3,16,1, 4,8,1, 4,13,1, 5,7,0, 5,7,1, 6,6,0, 6,6,1, 7,5,0, 7,5,1, 8,4,0, 8,14,0, 9,3,1, 9,13,0, 9,13,1, 10,12,0, 11,11,0, 11,11,1, 12,10,1, 13,9,1, 14,3,1, 14,8,1, 15,0,1, 15,4,1, 15,8,1, 16,3,0, 16,7,0, 16,11,0, 1814 // End marker 1815 0 1816 }; 1817 1818 1819 /* 1820 * Name: 19.10, 19 x 19 1821 * (_ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 1822 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1823 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1824 * (_ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ *) 1825 * (* * * _ _ _ * _ _ _ _ * _ _ _ _ * * *) 1826 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 1827 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _) 1828 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1829 * (* _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _) 1830 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 1831 * (_ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ *) 1832 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 1833 * (_ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 1834 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1835 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ * * *) 1836 * (* _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _) 1837 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 1838 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 1839 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _) 1840 */ 1841 const int g29[] = { 1842 // Width and height of crossword grid 1843 19, 19, 1844 // Number of black fields 1845 70, 1846 // Black field coordinates 1847 0,4, 0,8, 0,9, 0,14, 0,15, 1,4, 1,9, 1,14, 2,4, 2,9, 2,14, 3,0, 3,7, 3,12, 4,0, 4,1, 4,6, 4,11, 4,12, 4,17, 4,18, 5,5, 5,10, 5,15, 6,4, 6,10, 6,15, 7,3, 7,8, 7,14, 8,7, 8,13, 9,0, 9,1, 9,6, 9,12, 9,17, 9,18, 10,5, 10,11, 11,4, 11,10, 11,15, 12,3, 12,8, 12,14, 13,3, 13,8, 13,13, 14,0, 14,1, 14,6, 14,7, 14,12, 14,17, 14,18, 15,6, 15,11, 15,18, 16,4, 16,9, 16,14, 17,4, 17,9, 17,14, 18,3, 18,4, 18,9, 18,10, 18,14, 1848 // Length and number of words of that length 1849 19, 2, 1850 // Coordinates where words start and direction (0 = horizontal) 1851 0,2,0, 0,16,0, 1852 // Length and number of words of that length 1853 13, 1, 1854 // Coordinates where words start and direction (0 = horizontal) 1855 3,9,0, 1856 // Length and number of words of that length 1857 8, 2, 1858 // Coordinates where words start and direction (0 = horizontal) 1859 0,13,0, 11,5,0, 1860 // Length and number of words of that length 1861 7, 4, 1862 // Coordinates where words start and direction (0 = horizontal) 1863 0,3,0, 8,0,1, 10,12,1, 12,15,0, 1864 // Length and number of words of that length 1865 6, 6, 1866 // Coordinates where words start and direction (0 = horizontal) 1867 1,8,0, 3,1,1, 3,13,1, 12,10,0, 15,0,1, 15,12,1, 1868 // Length and number of words of that length 1869 5, 17, 1870 // Coordinates where words start and direction (0 = horizontal) 1871 0,5,0, 0,10,0, 5,0,1, 5,11,0, 6,5,1, 7,9,1, 8,8,1, 8,14,1, 9,7,0, 9,7,1, 10,0,1, 10,6,1, 11,5,1, 12,9,1, 13,14,1, 14,8,0, 14,13,0, 1872 // Length and number of words of that length 1873 4, 78, 1874 // Coordinates where words start and direction (0 = horizontal) 1875 0,0,1, 0,1,0, 0,6,0, 0,10,1, 0,11,0, 0,17,0, 0,18,0, 1,0,1, 1,5,1, 1,10,1, 1,15,0, 1,15,1, 2,0,1, 2,5,1, 2,10,1, 2,15,1, 3,8,1, 3,14,0, 4,2,1, 4,7,0, 4,7,1, 4,13,1, 5,0,0, 5,1,0, 5,6,0, 5,6,1, 5,11,1, 5,12,0, 5,17,0, 5,18,0, 6,0,1, 6,5,0, 6,11,1, 7,4,0, 7,4,1, 7,10,0, 7,15,0, 7,15,1, 8,3,0, 8,8,0, 8,14,0, 9,2,1, 9,13,0, 9,13,1, 10,0,0, 10,1,0, 10,6,0, 10,12,0, 10,17,0, 10,18,0, 11,0,1, 11,11,0, 11,11,1, 12,4,0, 12,4,1, 12,15,1, 13,4,1, 13,9,1, 14,2,1, 14,3,0, 14,8,1, 14,13,1, 15,0,0, 15,1,0, 15,7,0, 15,7,1, 15,12,0, 15,17,0, 16,0,1, 16,5,1, 16,10,1, 16,15,1, 17,0,1, 17,5,1, 17,10,1, 17,15,1, 18,5,1, 18,15,1, 1876 // Length and number of words of that length 1877 3, 18, 1878 // Coordinates where words start and direction (0 = horizontal) 1879 0,0,0, 0,5,1, 0,7,0, 0,12,0, 0,16,1, 3,4,0, 5,16,1, 6,16,1, 7,0,1, 11,16,1, 12,0,1, 13,0,1, 13,14,0, 16,6,0, 16,11,0, 16,18,0, 18,0,1, 18,11,1, 1880 // End marker 1881 0 1882 }; 1883 1884 1885 /* 1886 * Name: 21.01, 21 x 21 1887 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1888 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1889 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1890 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1891 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 1892 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 1893 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 1894 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 1895 * (_ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 1896 * (_ _ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _ _) 1897 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 1898 * (_ _ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _ _) 1899 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _) 1900 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 1901 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 1902 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 1903 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 1904 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 1905 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 1906 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1907 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1908 */ 1909 const int g30[] = { 1910 // Width and height of crossword grid 1911 21, 21, 1912 // Number of black fields 1913 68, 1914 // Black field coordinates 1915 0,4, 0,10, 0,16, 1,4, 1,10, 1,16, 2,4, 2,16, 3,8, 3,14, 4,0, 4,1, 4,7, 4,13, 5,6, 5,19, 5,20, 6,5, 6,11, 6,17, 7,4, 7,10, 7,11, 7,12, 7,16, 8,3, 8,9, 8,15, 9,7, 9,13, 10,0, 10,1, 10,2, 10,7, 10,13, 10,18, 10,19, 10,20, 11,7, 11,13, 12,5, 12,11, 12,17, 13,4, 13,8, 13,9, 13,10, 13,16, 14,3, 14,9, 14,15, 15,0, 15,1, 15,14, 16,7, 16,13, 16,19, 16,20, 17,6, 17,12, 18,4, 18,16, 19,4, 19,10, 19,16, 20,4, 20,10, 20,16, 1916 // Length and number of words of that length 1917 12, 2, 1918 // Coordinates where words start and direction (0 = horizontal) 1919 5,7,1, 15,2,1, 1920 // Length and number of words of that length 1921 11, 4, 1922 // Coordinates where words start and direction (0 = horizontal) 1923 2,5,1, 4,14,0, 6,6,0, 18,5,1, 1924 // Length and number of words of that length 1925 10, 4, 1926 // Coordinates where words start and direction (0 = horizontal) 1927 0,2,0, 0,18,0, 11,2,0, 11,18,0, 1928 // Length and number of words of that length 1929 9, 2, 1930 // Coordinates where words start and direction (0 = horizontal) 1931 4,8,0, 8,12,0, 1932 // Length and number of words of that length 1933 8, 8, 1934 // Coordinates where words start and direction (0 = horizontal) 1935 0,3,0, 0,9,0, 0,15,0, 3,0,1, 13,5,0, 13,11,0, 13,17,0, 17,13,1, 1936 // Length and number of words of that length 1937 7, 8, 1938 // Coordinates where words start and direction (0 = horizontal) 1939 0,12,0, 4,14,1, 9,0,1, 9,14,1, 11,0,1, 11,14,1, 14,8,0, 16,0,1, 1940 // Length and number of words of that length 1941 6, 10, 1942 // Coordinates where words start and direction (0 = horizontal) 1943 0,5,0, 0,11,0, 0,17,0, 3,15,1, 5,0,1, 15,3,0, 15,9,0, 15,15,0, 15,15,1, 17,0,1, 1944 // Length and number of words of that length 1945 5, 50, 1946 // Coordinates where words start and direction (0 = horizontal) 1947 0,5,1, 0,6,0, 0,11,1, 0,19,0, 0,20,0, 1,5,1, 1,11,1, 2,10,0, 3,9,1, 4,2,1, 4,8,1, 5,0,0, 5,1,0, 6,0,1, 6,6,1, 6,12,1, 7,5,0, 7,5,1, 7,17,0, 8,4,0, 8,4,1, 8,10,0, 8,10,1, 8,16,0, 8,16,1, 9,3,0, 9,8,1, 9,15,0, 10,8,1, 11,8,1, 11,19,0, 11,20,0, 12,0,1, 12,6,1, 12,12,1, 13,11,1, 14,4,1, 14,10,0, 14,10,1, 14,16,1, 16,0,0, 16,1,0, 16,8,1, 16,14,0, 16,14,1, 17,7,1, 19,5,1, 19,11,1, 20,5,1, 20,11,1, 1948 // Length and number of words of that length 1949 4, 40, 1950 // Coordinates where words start and direction (0 = horizontal) 1951 0,0,0, 0,0,1, 0,1,0, 0,7,0, 0,13,0, 0,17,1, 1,0,1, 1,17,1, 2,0,1, 2,17,1, 3,4,0, 3,16,0, 5,7,0, 5,13,0, 6,19,0, 6,20,0, 7,0,1, 7,17,1, 8,11,0, 9,9,0, 10,3,1, 10,14,1, 11,0,0, 11,1,0, 12,7,0, 12,13,0, 13,0,1, 13,17,1, 14,4,0, 14,16,0, 17,7,0, 17,13,0, 17,19,0, 17,20,0, 18,0,1, 18,17,1, 19,0,1, 19,17,1, 20,0,1, 20,17,1, 1952 // Length and number of words of that length 1953 3, 10, 1954 // Coordinates where words start and direction (0 = horizontal) 1955 0,8,0, 0,14,0, 6,18,1, 7,13,1, 8,0,1, 12,18,1, 13,5,1, 14,0,1, 18,6,0, 18,12,0, 1956 // End marker 1957 0 1958 }; 1959 1960 1961 /* 1962 * Name: 21.02, 21 x 21 1963 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1964 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1965 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1966 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 1967 * (* * * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * * *) 1968 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _) 1969 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 1970 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1971 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 1972 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 1973 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 1974 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _) 1975 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 1976 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 1977 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 1978 * (_ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 1979 * (* * * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * * *) 1980 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 1981 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1982 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1983 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 1984 */ 1985 const int g31[] = { 1986 // Width and height of crossword grid 1987 21, 21, 1988 // Number of black fields 1989 72, 1990 // Black field coordinates 1991 0,4, 0,10, 0,16, 1,4, 1,10, 1,16, 2,4, 2,10, 2,16, 3,9, 3,15, 4,0, 4,1, 4,2, 4,8, 4,12, 4,18, 4,19, 4,20, 5,3, 5,7, 5,13, 6,6, 6,14, 7,5, 7,10, 7,15, 8,4, 8,9, 8,16, 9,8, 9,17, 10,0, 10,1, 10,2, 10,7, 10,13, 10,18, 10,19, 10,20, 11,3, 11,12, 12,4, 12,11, 12,16, 13,5, 13,10, 13,15, 14,6, 14,14, 15,7, 15,13, 15,17, 16,0, 16,1, 16,2, 16,8, 16,12, 16,18, 16,19, 16,20, 17,5, 17,11, 18,4, 18,10, 18,16, 19,4, 19,10, 19,16, 20,4, 20,10, 20,16, 1992 // Length and number of words of that length 1993 12, 2, 1994 // Coordinates where words start and direction (0 = horizontal) 1995 0,11,0, 9,9,0, 1996 // Length and number of words of that length 1997 9, 4, 1998 // Coordinates where words start and direction (0 = horizontal) 1999 0,17,0, 3,0,1, 12,3,0, 17,12,1, 2000 // Length and number of words of that length 2001 8, 4, 2002 // Coordinates where words start and direction (0 = horizontal) 2003 9,0,1, 9,9,1, 11,4,1, 11,13,1, 2004 // Length and number of words of that length 2005 7, 8, 2006 // Coordinates where words start and direction (0 = horizontal) 2007 0,5,0, 5,14,1, 6,7,1, 7,6,0, 7,14,0, 14,7,1, 14,15,0, 15,0,1, 2008 // Length and number of words of that length 2009 6, 12, 2010 // Coordinates where words start and direction (0 = horizontal) 2011 0,6,0, 0,14,0, 5,12,0, 6,0,1, 6,15,1, 8,10,1, 10,8,0, 12,5,1, 14,0,1, 14,15,1, 15,6,0, 15,14,0, 2012 // Length and number of words of that length 2013 5, 54, 2014 // Coordinates where words start and direction (0 = horizontal) 2015 0,3,0, 0,5,1, 0,7,0, 0,11,1, 0,13,0, 1,5,1, 1,11,1, 2,5,1, 2,11,1, 3,4,0, 3,10,1, 3,16,0, 3,16,1, 4,3,1, 4,13,1, 5,0,0, 5,1,0, 5,2,0, 5,8,1, 5,18,0, 5,19,0, 5,20,0, 6,3,0, 7,0,1, 7,16,1, 8,5,0, 8,10,0, 8,15,0, 10,8,1, 10,17,0, 11,0,0, 11,1,0, 11,2,0, 11,18,0, 11,19,0, 11,20,0, 13,0,1, 13,4,0, 13,16,0, 13,16,1, 15,8,1, 16,3,1, 16,7,0, 16,13,0, 16,13,1, 16,17,0, 17,0,1, 17,6,1, 18,5,1, 18,11,1, 19,5,1, 19,11,1, 20,5,1, 20,11,1, 2016 // Length and number of words of that length 2017 4, 50, 2018 // Coordinates where words start and direction (0 = horizontal) 2019 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,8,0, 0,12,0, 0,17,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,17,1, 2,0,1, 2,17,1, 3,10,0, 4,9,0, 5,8,0, 6,7,0, 6,13,0, 7,6,1, 7,11,1, 8,0,1, 8,5,1, 8,17,1, 10,3,1, 10,14,1, 11,7,0, 11,13,0, 12,0,1, 12,12,0, 12,12,1, 12,17,1, 13,6,1, 13,11,0, 13,11,1, 14,10,0, 17,0,0, 17,1,0, 17,2,0, 17,8,0, 17,12,0, 17,18,0, 17,19,0, 17,20,0, 18,0,1, 18,17,1, 19,0,1, 19,17,1, 20,0,1, 20,17,1, 2020 // Length and number of words of that length 2021 3, 16, 2022 // Coordinates where words start and direction (0 = horizontal) 2023 0,9,0, 0,15,0, 4,9,1, 4,15,0, 5,0,1, 5,4,1, 9,4,0, 9,16,0, 9,18,1, 11,0,1, 14,5,0, 15,14,1, 15,18,1, 16,9,1, 18,5,0, 18,11,0, 2024 // End marker 2025 0 2026 }; 2027 2028 2029 /* 2030 * Name: 21.03, 21 x 21 2031 * (_ _ _ _ * * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2032 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2033 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2034 * (_ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _ _ * *) 2035 * (_ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ * _ _ _) 2036 * (* * _ _ _ * _ _ _ _ _ * _ _ _ _ * * _ _ _) 2037 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _) 2038 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 2039 * (_ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _ _ _ *) 2040 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ * * *) 2041 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 2042 * (* * * _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2043 * (* _ _ _ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _) 2044 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _) 2045 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 2046 * (_ _ _ * * _ _ _ _ * _ _ _ _ _ * _ _ _ * *) 2047 * (_ _ _ * _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _) 2048 * (* * _ _ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _) 2049 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2050 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2051 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * * _ _ _ _) 2052 */ 2053 const int g32[] = { 2054 // Width and height of crossword grid 2055 21, 21, 2056 // Number of black fields 2057 79, 2058 // Black field coordinates 2059 0,5, 0,11, 0,12, 0,17, 1,5, 1,11, 1,17, 2,11, 3,3, 3,10, 3,15, 3,16, 4,0, 4,1, 4,2, 4,8, 4,9, 4,15, 5,0, 5,4, 5,5, 5,14, 5,18, 5,19, 5,20, 6,6, 6,13, 7,7, 7,12, 8,8, 8,16, 9,0, 9,1, 9,2, 9,3, 9,9, 9,15, 9,16, 10,3, 10,10, 10,17, 11,4, 11,5, 11,11, 11,17, 11,18, 11,19, 11,20, 12,4, 12,12, 13,8, 13,13, 14,7, 14,14, 15,0, 15,1, 15,2, 15,6, 15,15, 15,16, 15,20, 16,5, 16,11, 16,12, 16,18, 16,19, 16,20, 17,4, 17,5, 17,10, 17,17, 18,9, 19,3, 19,9, 19,15, 20,3, 20,8, 20,9, 20,15, 2060 // Length and number of words of that length 2061 11, 2, 2062 // Coordinates where words start and direction (0 = horizontal) 2063 2,0,1, 18,10,1, 2064 // Length and number of words of that length 2065 9, 2, 2066 // Coordinates where words start and direction (0 = horizontal) 2067 2,12,1, 18,0,1, 2068 // Length and number of words of that length 2069 8, 12, 2070 // Coordinates where words start and direction (0 = horizontal) 2071 2,17,0, 3,11,0, 5,6,1, 6,14,0, 7,6,0, 7,13,1, 8,0,1, 10,9,0, 11,3,0, 12,13,1, 13,0,1, 15,7,1, 2072 // Length and number of words of that length 2073 7, 8, 2074 // Coordinates where words start and direction (0 = horizontal) 2075 0,7,0, 6,14,1, 7,0,1, 8,9,1, 12,5,1, 13,14,1, 14,0,1, 14,13,0, 2076 // Length and number of words of that length 2077 6, 18, 2078 // Coordinates where words start and direction (0 = horizontal) 2079 0,6,0, 0,13,0, 1,12,0, 3,4,1, 4,10,0, 6,0,1, 6,7,1, 7,13,0, 8,7,0, 10,4,1, 10,11,1, 11,10,0, 14,8,0, 14,8,1, 14,15,1, 15,7,0, 15,14,0, 17,11,1, 2080 // Length and number of words of that length 2081 5, 42, 2082 // Coordinates where words start and direction (0 = horizontal) 2083 0,0,1, 0,4,0, 0,6,1, 0,14,0, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,6,1, 1,12,1, 4,3,0, 4,3,1, 4,10,1, 4,16,1, 6,4,0, 6,5,0, 6,18,0, 6,19,0, 6,20,0, 9,4,1, 9,10,1, 10,0,0, 10,1,0, 10,2,0, 10,15,0, 10,16,0, 11,6,1, 11,12,1, 12,17,0, 16,0,0, 16,0,1, 16,1,0, 16,2,0, 16,6,0, 16,6,1, 16,13,1, 16,16,0, 19,4,1, 19,10,1, 19,16,1, 20,10,1, 20,16,1, 2084 // Length and number of words of that length 2085 4, 34, 2086 // Coordinates where words start and direction (0 = horizontal) 2087 0,0,0, 0,1,0, 0,2,0, 0,8,0, 0,9,0, 0,13,1, 3,11,1, 3,17,1, 4,16,0, 5,1,0, 5,2,0, 5,9,0, 5,15,0, 7,8,1, 8,12,0, 8,17,1, 9,8,0, 9,17,1, 11,0,1, 12,0,1, 12,5,0, 12,11,0, 12,18,0, 12,19,0, 13,4,0, 13,9,1, 17,0,1, 17,6,1, 17,11,0, 17,12,0, 17,18,0, 17,19,0, 17,20,0, 20,4,1, 2088 // Length and number of words of that length 2089 3, 26, 2090 // Coordinates where words start and direction (0 = horizontal) 2091 0,3,0, 0,10,0, 0,15,0, 0,16,0, 0,18,1, 1,18,1, 2,5,0, 3,0,1, 5,1,1, 5,8,0, 5,15,1, 6,0,0, 10,0,1, 10,18,1, 12,20,0, 13,12,0, 15,3,1, 15,17,1, 16,15,0, 17,18,1, 18,4,0, 18,5,0, 18,10,0, 18,17,0, 19,0,1, 20,0,1, 2092 // End marker 2093 0 2094 }; 2095 2096 2097 /* 2098 * Name: 21.04, 21 x 21 2099 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2100 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2101 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2102 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2103 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2104 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2105 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 2106 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2107 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2108 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2109 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2110 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2111 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2112 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2113 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 2114 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2115 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2116 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2117 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2118 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2119 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2120 */ 2121 const int g33[] = { 2122 // Width and height of crossword grid 2123 21, 21, 2124 // Number of black fields 2125 63, 2126 // Black field coordinates 2127 0,7, 0,13, 1,7, 1,13, 2,7, 2,13, 3,3, 3,11, 3,17, 4,4, 4,10, 4,16, 5,5, 5,9, 5,15, 6,8, 6,12, 7,0, 7,1, 7,2, 7,7, 7,13, 7,18, 7,19, 7,20, 8,6, 8,14, 9,5, 9,11, 9,17, 10,4, 10,10, 10,16, 11,3, 11,9, 11,15, 12,6, 12,14, 13,0, 13,1, 13,2, 13,7, 13,13, 13,18, 13,19, 13,20, 14,8, 14,12, 15,5, 15,11, 15,15, 16,4, 16,10, 16,16, 17,3, 17,9, 17,17, 18,7, 18,13, 19,7, 19,13, 20,7, 20,13, 2128 // Length and number of words of that length 2129 8, 8, 2130 // Coordinates where words start and direction (0 = horizontal) 2131 0,6,0, 0,14,0, 6,0,1, 6,13,1, 13,6,0, 13,14,0, 14,0,1, 14,13,1, 2132 // Length and number of words of that length 2133 7, 32, 2134 // Coordinates where words start and direction (0 = horizontal) 2135 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,14,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,14,1, 2,0,1, 2,14,1, 3,4,1, 4,3,0, 7,8,0, 7,12,0, 8,7,1, 10,17,0, 12,7,1, 14,0,0, 14,1,0, 14,2,0, 14,18,0, 14,19,0, 14,20,0, 17,10,1, 18,0,1, 18,14,1, 19,0,1, 19,14,1, 20,0,1, 20,14,1, 2136 // Length and number of words of that length 2137 6, 8, 2138 // Coordinates where words start and direction (0 = horizontal) 2139 0,8,0, 0,12,0, 8,0,1, 8,15,1, 12,0,1, 12,15,1, 15,8,0, 15,12,0, 2140 // Length and number of words of that length 2141 5, 56, 2142 // Coordinates where words start and direction (0 = horizontal) 2143 0,5,0, 0,8,1, 0,9,0, 0,15,0, 1,8,1, 2,8,1, 3,12,1, 4,5,1, 4,11,0, 4,11,1, 4,17,0, 5,0,1, 5,4,0, 5,10,0, 5,10,1, 5,16,0, 5,16,1, 6,9,0, 6,15,0, 7,8,1, 8,0,0, 8,1,0, 8,2,0, 8,7,0, 8,13,0, 8,18,0, 8,19,0, 8,20,0, 9,0,1, 9,6,1, 9,12,1, 10,5,0, 10,5,1, 10,11,0, 10,11,1, 11,4,0, 11,4,1, 11,10,0, 11,10,1, 11,16,0, 11,16,1, 12,3,0, 12,9,0, 13,8,1, 15,0,1, 15,6,1, 15,16,1, 16,5,0, 16,5,1, 16,11,0, 16,11,1, 16,15,0, 17,4,1, 18,8,1, 19,8,1, 20,8,1, 2144 // Length and number of words of that length 2145 4, 20, 2146 // Coordinates where words start and direction (0 = horizontal) 2147 0,4,0, 0,10,0, 0,16,0, 3,7,0, 3,13,0, 4,0,1, 4,17,1, 7,3,1, 7,14,1, 10,0,1, 10,17,1, 13,3,1, 13,14,1, 14,7,0, 14,13,0, 16,0,1, 16,17,1, 17,4,0, 17,10,0, 17,16,0, 2148 // Length and number of words of that length 2149 3, 20, 2150 // Coordinates where words start and direction (0 = horizontal) 2151 0,3,0, 0,11,0, 0,17,0, 3,0,1, 3,18,1, 5,6,1, 6,5,0, 6,9,1, 9,6,0, 9,14,0, 9,18,1, 11,0,1, 12,15,0, 14,9,1, 15,12,1, 17,0,1, 17,18,1, 18,3,0, 18,9,0, 18,17,0, 2152 // End marker 2153 0 2154 }; 2155 2156 2157 /* 2158 * Name: 21.05, 21 x 21 2159 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2160 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2161 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2162 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2163 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2164 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2165 * (* * * _ _ _ * * * _ _ _ * * * _ _ _ * * *) 2166 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2167 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2168 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2169 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 2170 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _) 2171 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2172 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2173 * (* * * _ _ _ * * * _ _ _ * * * _ _ _ * * *) 2174 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2175 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2176 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2177 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2178 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2179 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2180 */ 2181 const int g34[] = { 2182 // Width and height of crossword grid 2183 21, 21, 2184 // Number of black fields 2185 73, 2186 // Black field coordinates 2187 0,6, 0,14, 1,6, 1,14, 2,6, 2,14, 3,3, 3,9, 3,17, 4,4, 4,10, 4,16, 5,5, 5,11, 5,15, 6,0, 6,1, 6,2, 6,6, 6,7, 6,8, 6,12, 6,13, 6,14, 6,18, 6,19, 6,20, 7,6, 7,14, 8,6, 8,14, 9,5, 9,10, 9,17, 10,4, 10,9, 10,10, 10,11, 10,16, 11,3, 11,10, 11,15, 12,6, 12,14, 13,6, 13,14, 14,0, 14,1, 14,2, 14,6, 14,7, 14,8, 14,12, 14,13, 14,14, 14,18, 14,19, 14,20, 15,5, 15,9, 15,15, 16,4, 16,10, 16,16, 17,3, 17,11, 17,17, 18,6, 18,14, 19,6, 19,14, 20,6, 20,14, 2188 // Length and number of words of that length 2189 7, 24, 2190 // Coordinates where words start and direction (0 = horizontal) 2191 0,7,1, 1,7,1, 2,7,1, 3,10,1, 4,3,0, 7,0,0, 7,1,0, 7,2,0, 7,7,0, 7,7,1, 7,8,0, 7,12,0, 7,13,0, 7,18,0, 7,19,0, 7,20,0, 8,7,1, 10,17,0, 12,7,1, 13,7,1, 17,4,1, 18,7,1, 19,7,1, 20,7,1, 2192 // Length and number of words of that length 2193 6, 44, 2194 // Coordinates where words start and direction (0 = horizontal) 2195 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,7,0, 0,8,0, 0,12,0, 0,13,0, 0,15,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,15,1, 2,0,1, 2,15,1, 4,9,0, 7,0,1, 7,15,1, 8,0,1, 8,15,1, 9,11,1, 11,4,1, 11,11,0, 12,0,1, 12,15,1, 13,0,1, 13,15,1, 15,0,0, 15,1,0, 15,2,0, 15,7,0, 15,8,0, 15,12,0, 15,13,0, 15,18,0, 15,19,0, 15,20,0, 18,0,1, 18,15,1, 19,0,1, 19,15,1, 20,0,1, 20,15,1, 2196 // Length and number of words of that length 2197 5, 28, 2198 // Coordinates where words start and direction (0 = horizontal) 2199 0,5,0, 0,11,0, 0,15,0, 3,4,1, 4,5,1, 4,11,1, 4,17,0, 5,0,1, 5,4,0, 5,6,1, 5,16,0, 5,16,1, 6,15,0, 9,0,1, 10,5,0, 11,4,0, 11,16,0, 11,16,1, 12,3,0, 15,0,1, 15,10,1, 15,16,1, 16,5,0, 16,5,1, 16,9,0, 16,11,1, 16,15,0, 17,12,1, 2200 // Length and number of words of that length 2201 4, 20, 2202 // Coordinates where words start and direction (0 = horizontal) 2203 0,4,0, 0,10,0, 0,16,0, 4,0,1, 4,17,1, 5,10,0, 6,11,0, 9,6,1, 10,0,1, 10,5,1, 10,12,1, 10,17,1, 11,9,0, 11,11,1, 12,10,0, 16,0,1, 16,17,1, 17,4,0, 17,10,0, 17,16,0, 2204 // Length and number of words of that length 2205 3, 28, 2206 // Coordinates where words start and direction (0 = horizontal) 2207 0,3,0, 0,9,0, 0,17,0, 3,0,1, 3,6,0, 3,14,0, 3,18,1, 5,12,1, 6,3,1, 6,5,0, 6,9,1, 6,15,1, 9,6,0, 9,14,0, 9,18,1, 11,0,1, 12,15,0, 14,3,1, 14,9,1, 14,15,1, 15,6,0, 15,6,1, 15,14,0, 17,0,1, 17,18,1, 18,3,0, 18,11,0, 18,17,0, 2208 // End marker 2209 0 2210 }; 2211 2212 2213 /* 2214 * Name: 21.06, 21 x 21 2215 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2216 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2217 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 2218 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 2219 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2220 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2221 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2222 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2223 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2224 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2225 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 2226 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2227 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2228 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2229 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2230 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2231 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2232 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 2233 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 2234 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2235 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2236 */ 2237 const int g35[] = { 2238 // Width and height of crossword grid 2239 21, 21, 2240 // Number of black fields 2241 68, 2242 // Black field coordinates 2243 0,4, 0,10, 0,16, 1,4, 1,10, 1,16, 2,4, 2,16, 3,8, 3,12, 4,0, 4,1, 4,2, 4,7, 4,13, 4,18, 4,19, 4,20, 5,6, 5,14, 6,5, 6,11, 6,15, 7,4, 7,10, 7,16, 8,3, 8,9, 8,17, 9,6, 9,12, 10,0, 10,1, 10,7, 10,13, 10,19, 10,20, 11,8, 11,14, 12,3, 12,11, 12,17, 13,4, 13,10, 13,16, 14,5, 14,9, 14,15, 15,6, 15,14, 16,0, 16,1, 16,2, 16,7, 16,13, 16,18, 16,19, 16,20, 17,8, 17,12, 18,4, 18,16, 19,4, 19,10, 19,16, 20,4, 20,10, 20,16, 2244 // Length and number of words of that length 2245 11, 4, 2246 // Coordinates where words start and direction (0 = horizontal) 2247 2,5,1, 5,2,0, 5,18,0, 18,5,1, 2248 // Length and number of words of that length 2249 8, 12, 2250 // Coordinates where words start and direction (0 = horizontal) 2251 0,3,0, 0,9,0, 0,17,0, 3,0,1, 3,13,1, 9,13,1, 11,0,1, 13,3,0, 13,11,0, 13,17,0, 17,0,1, 17,13,1, 2252 // Length and number of words of that length 2253 7, 8, 2254 // Coordinates where words start and direction (0 = horizontal) 2255 4,8,0, 5,7,1, 7,5,0, 7,15,0, 8,10,1, 10,12,0, 12,4,1, 15,7,1, 2256 // Length and number of words of that length 2257 6, 12, 2258 // Coordinates where words start and direction (0 = horizontal) 2259 0,5,0, 0,11,0, 0,15,0, 5,0,1, 5,15,1, 9,0,1, 11,15,1, 15,0,1, 15,5,0, 15,9,0, 15,15,0, 15,15,1, 2260 // Length and number of words of that length 2261 5, 54, 2262 // Coordinates where words start and direction (0 = horizontal) 2263 0,5,1, 0,6,0, 0,11,1, 0,14,0, 1,5,1, 1,11,1, 2,10,0, 4,8,1, 4,12,0, 5,0,0, 5,1,0, 5,7,0, 5,13,0, 5,19,0, 5,20,0, 6,0,1, 6,6,1, 6,14,0, 6,16,1, 7,5,1, 7,11,0, 7,11,1, 8,4,0, 8,4,1, 8,10,0, 8,16,0, 9,7,1, 9,9,0, 10,2,1, 10,6,0, 10,8,1, 10,14,1, 11,0,0, 11,1,0, 11,7,0, 11,9,1, 11,13,0, 11,19,0, 11,20,0, 12,8,0, 12,12,1, 13,5,1, 13,11,1, 14,0,1, 14,10,0, 14,10,1, 14,16,1, 16,6,0, 16,8,1, 16,14,0, 19,5,1, 19,11,1, 20,5,1, 20,11,1, 2264 // Length and number of words of that length 2265 4, 40, 2266 // Coordinates where words start and direction (0 = horizontal) 2267 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,7,0, 0,13,0, 0,17,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,17,1, 2,0,1, 2,17,1, 3,4,0, 3,16,0, 4,3,1, 4,14,1, 7,0,1, 7,17,1, 13,0,1, 13,17,1, 14,4,0, 14,16,0, 16,3,1, 16,14,1, 17,0,0, 17,1,0, 17,2,0, 17,7,0, 17,13,0, 17,18,0, 17,19,0, 17,20,0, 18,0,1, 18,17,1, 19,0,1, 19,17,1, 20,0,1, 20,17,1, 2268 // Length and number of words of that length 2269 3, 16, 2270 // Coordinates where words start and direction (0 = horizontal) 2271 0,8,0, 0,12,0, 3,9,1, 6,6,0, 6,12,1, 8,0,1, 8,18,1, 9,3,0, 9,17,0, 12,0,1, 12,14,0, 12,18,1, 14,6,1, 17,9,1, 18,8,0, 18,12,0, 2272 // End marker 2273 0 2274 }; 2275 2276 2277 /* 2278 * Name: 21.07, 21 x 21 2279 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2280 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2281 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 2282 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2283 * (* * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * *) 2284 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2285 * (_ _ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _ _) 2286 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2287 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 2288 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2289 * (* * * _ _ _ _ _ * * * * * _ _ _ _ _ * * *) 2290 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _) 2291 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 2292 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2293 * (_ _ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _ _) 2294 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2295 * (* * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * *) 2296 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2297 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 2298 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2299 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2300 */ 2301 const int g36[] = { 2302 // Width and height of crossword grid 2303 21, 21, 2304 // Number of black fields 2305 73, 2306 // Black field coordinates 2307 0,4, 0,10, 0,16, 1,4, 1,10, 1,16, 2,10, 3,5, 3,9, 3,15, 4,0, 4,1, 4,6, 4,14, 4,19, 4,20, 5,3, 5,11, 5,17, 6,4, 6,8, 6,12, 6,16, 7,7, 7,13, 8,6, 8,10, 8,14, 9,3, 9,10, 9,15, 10,0, 10,1, 10,2, 10,8, 10,9, 10,10, 10,11, 10,12, 10,18, 10,19, 10,20, 11,5, 11,10, 11,17, 12,6, 12,10, 12,14, 13,7, 13,13, 14,4, 14,8, 14,12, 14,16, 15,3, 15,9, 15,17, 16,0, 16,1, 16,6, 16,14, 16,19, 16,20, 17,5, 17,11, 17,15, 18,10, 19,4, 19,10, 19,16, 20,4, 20,10, 20,16, 2308 // Length and number of words of that length 2309 10, 8, 2310 // Coordinates where words start and direction (0 = horizontal) 2311 0,2,0, 0,18,0, 2,0,1, 2,11,1, 11,2,0, 11,18,0, 18,0,1, 18,11,1, 2312 // Length and number of words of that length 2313 7, 16, 2314 // Coordinates where words start and direction (0 = horizontal) 2315 0,7,0, 0,13,0, 4,5,0, 4,7,1, 5,4,1, 7,0,1, 7,4,0, 7,14,1, 7,16,0, 10,15,0, 13,0,1, 13,14,1, 14,7,0, 14,13,0, 15,10,1, 16,7,1, 2316 // Length and number of words of that length 2317 6, 12, 2318 // Coordinates where words start and direction (0 = horizontal) 2319 0,8,0, 0,12,0, 4,9,0, 8,0,1, 8,15,1, 9,4,1, 11,11,0, 11,11,1, 12,0,1, 12,15,1, 15,8,0, 15,12,0, 2320 // Length and number of words of that length 2321 5, 44, 2322 // Coordinates where words start and direction (0 = horizontal) 2323 0,3,0, 0,5,1, 0,11,0, 0,11,1, 0,17,0, 1,5,1, 1,11,1, 3,0,1, 3,10,0, 3,10,1, 3,16,1, 4,15,0, 5,0,0, 5,1,0, 5,12,1, 5,19,0, 5,20,0, 6,17,0, 7,8,1, 8,7,0, 8,13,0, 9,16,1, 10,3,0, 10,3,1, 10,13,1, 11,0,0, 11,0,1, 11,1,0, 11,19,0, 11,20,0, 12,5,0, 13,8,1, 13,10,0, 15,4,1, 16,3,0, 16,9,0, 16,17,0, 17,0,1, 17,6,1, 17,16,1, 19,5,1, 19,11,1, 20,5,1, 20,11,1, 2324 // Length and number of words of that length 2325 4, 36, 2326 // Coordinates where words start and direction (0 = horizontal) 2327 0,0,0, 0,0,1, 0,1,0, 0,6,0, 0,14,0, 0,17,1, 0,19,0, 0,20,0, 1,0,1, 1,17,1, 2,4,0, 2,16,0, 4,2,1, 4,15,1, 6,0,1, 6,11,0, 6,17,1, 9,11,1, 11,6,1, 11,9,0, 14,0,1, 14,17,1, 15,4,0, 15,16,0, 16,2,1, 16,15,1, 17,0,0, 17,1,0, 17,6,0, 17,14,0, 17,19,0, 17,20,0, 19,0,1, 19,17,1, 20,0,1, 20,17,1, 2328 // Length and number of words of that length 2329 3, 36, 2330 // Coordinates where words start and direction (0 = horizontal) 2331 0,5,0, 0,9,0, 0,15,0, 3,6,1, 5,0,1, 5,6,0, 5,14,0, 5,18,1, 6,3,0, 6,5,1, 6,9,1, 6,13,1, 7,8,0, 7,12,0, 8,7,1, 8,11,1, 9,0,1, 9,6,0, 9,14,0, 11,8,0, 11,12,0, 11,18,1, 12,7,1, 12,11,1, 12,17,0, 13,6,0, 13,14,0, 14,5,1, 14,9,1, 14,13,1, 15,0,1, 15,18,1, 17,12,1, 18,5,0, 18,11,0, 18,15,0, 2332 // End marker 2333 0 2334 }; 2335 2336 2337 /* 2338 * Name: 21.08, 21 x 21 2339 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2340 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2341 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2342 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2343 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2344 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2345 * (_ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ * _ _ _) 2346 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2347 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2348 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 2349 * (* * * _ _ _ _ * * _ _ _ * * _ _ _ _ * * *) 2350 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _) 2351 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2352 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2353 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _) 2354 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2355 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2356 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2357 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2358 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2359 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2360 */ 2361 const int g37[] = { 2362 // Width and height of crossword grid 2363 21, 21, 2364 // Number of black fields 2365 76, 2366 // Black field coordinates 2367 0,4, 0,10, 0,16, 1,4, 1,10, 1,16, 2,4, 2,10, 2,16, 3,8, 3,14, 4,0, 4,1, 4,2, 4,7, 4,13, 4,18, 4,19, 4,20, 5,6, 5,12, 6,5, 6,6, 6,11, 6,17, 7,4, 7,10, 7,16, 8,3, 8,10, 8,15, 9,8, 9,9, 9,14, 10,0, 10,1, 10,2, 10,7, 10,13, 10,18, 10,19, 10,20, 11,6, 11,11, 11,12, 12,5, 12,10, 12,17, 13,4, 13,10, 13,16, 14,3, 14,9, 14,14, 14,15, 15,8, 15,14, 16,0, 16,1, 16,2, 16,7, 16,13, 16,18, 16,19, 16,20, 17,6, 17,12, 18,4, 18,10, 18,16, 19,4, 19,10, 19,16, 20,4, 20,10, 20,16, 2368 // Length and number of words of that length 2369 9, 2, 2370 // Coordinates where words start and direction (0 = horizontal) 2371 0,9,0, 12,11,0, 2372 // Length and number of words of that length 2373 8, 10, 2374 // Coordinates where words start and direction (0 = horizontal) 2375 0,3,0, 0,15,0, 3,0,1, 5,13,1, 9,0,1, 11,13,1, 13,5,0, 13,17,0, 15,0,1, 17,13,1, 2376 // Length and number of words of that length 2377 6, 14, 2378 // Coordinates where words start and direction (0 = horizontal) 2379 0,5,0, 0,11,0, 0,17,0, 3,15,1, 5,0,1, 8,4,1, 9,15,1, 11,0,1, 12,11,1, 15,3,0, 15,9,0, 15,15,0, 15,15,1, 17,0,1, 2380 // Length and number of words of that length 2381 5, 61, 2382 // Coordinates where words start and direction (0 = horizontal) 2383 0,5,1, 0,6,0, 0,11,1, 0,12,0, 1,5,1, 1,11,1, 2,5,1, 2,11,1, 3,9,1, 4,8,0, 4,8,1, 4,14,0, 5,0,0, 5,1,0, 5,2,0, 5,7,0, 5,7,1, 5,13,0, 5,18,0, 5,19,0, 5,20,0, 6,0,1, 6,12,0, 6,12,1, 7,5,0, 7,5,1, 7,11,1, 7,17,0, 8,4,0, 8,16,0, 8,16,1, 9,3,0, 9,15,0, 10,8,0, 10,8,1, 11,0,0, 11,1,0, 11,2,0, 11,7,0, 11,13,0, 11,18,0, 11,19,0, 11,20,0, 12,0,1, 12,6,0, 12,12,0, 13,5,1, 13,11,1, 14,4,1, 14,16,1, 15,9,1, 16,8,0, 16,8,1, 16,14,0, 17,7,1, 18,5,1, 18,11,1, 19,5,1, 19,11,1, 20,5,1, 20,11,1, 2384 // Length and number of words of that length 2385 4, 54, 2386 // Coordinates where words start and direction (0 = horizontal) 2387 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,7,0, 0,13,0, 0,17,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,17,1, 2,0,1, 2,17,1, 3,4,0, 3,10,0, 3,16,0, 4,3,1, 4,14,1, 6,7,1, 7,0,1, 7,6,0, 7,11,0, 7,17,1, 8,11,1, 9,10,1, 10,3,1, 10,9,0, 10,14,0, 10,14,1, 11,7,1, 12,6,1, 13,0,1, 13,17,1, 14,4,0, 14,10,0, 14,10,1, 14,16,0, 16,3,1, 16,14,1, 17,0,0, 17,1,0, 17,2,0, 17,7,0, 17,13,0, 17,18,0, 17,19,0, 17,20,0, 18,0,1, 18,17,1, 19,0,1, 19,17,1, 20,0,1, 20,17,1, 2388 // Length and number of words of that length 2389 3, 9, 2390 // Coordinates where words start and direction (0 = horizontal) 2391 0,8,0, 0,14,0, 6,18,1, 8,0,1, 9,10,0, 12,18,1, 14,0,1, 18,6,0, 18,12,0, 2392 // End marker 2393 0 2394 }; 2395 2396 2397 /* 2398 * Name: 21.09, 21 x 21 2399 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 2400 * (* _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ *) 2401 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2402 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2403 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2404 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2405 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2406 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2407 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2408 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 2409 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2410 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2411 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2412 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2413 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2414 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2415 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2416 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2417 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2418 * (* _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ *) 2419 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 2420 */ 2421 const int g38[] = { 2422 // Width and height of crossword grid 2423 21, 21, 2424 // Number of black fields 2425 75, 2426 // Black field coordinates 2427 0,0, 0,1, 0,7, 0,13, 0,19, 0,20, 1,0, 1,7, 1,13, 1,20, 2,7, 2,13, 3,3, 3,11, 3,17, 4,4, 4,10, 4,16, 5,5, 5,9, 5,15, 6,8, 6,14, 7,0, 7,1, 7,2, 7,7, 7,13, 7,18, 7,19, 7,20, 8,6, 8,12, 9,5, 9,11, 9,17, 10,4, 10,10, 10,16, 11,3, 11,9, 11,15, 12,8, 12,14, 13,0, 13,1, 13,2, 13,7, 13,13, 13,18, 13,19, 13,20, 14,6, 14,12, 15,5, 15,11, 15,15, 16,4, 16,10, 16,16, 17,3, 17,9, 17,17, 18,7, 18,13, 19,0, 19,7, 19,13, 19,20, 20,0, 20,1, 20,7, 20,13, 20,19, 20,20, 2428 // Length and number of words of that length 2429 8, 8, 2430 // Coordinates where words start and direction (0 = horizontal) 2431 0,6,0, 0,12,0, 6,0,1, 8,13,1, 12,0,1, 13,8,0, 13,14,0, 14,13,1, 2432 // Length and number of words of that length 2433 7, 12, 2434 // Coordinates where words start and direction (0 = horizontal) 2435 0,2,0, 0,18,0, 2,0,1, 2,14,1, 3,4,1, 4,3,0, 10,17,0, 14,2,0, 14,18,0, 17,10,1, 18,0,1, 18,14,1, 2436 // Length and number of words of that length 2437 6, 16, 2438 // Coordinates where words start and direction (0 = horizontal) 2439 0,8,0, 0,14,0, 1,1,0, 1,1,1, 1,14,1, 1,19,0, 6,15,1, 8,0,1, 12,15,1, 14,0,1, 14,1,0, 14,19,0, 15,6,0, 15,12,0, 19,1,1, 19,14,1, 2440 // Length and number of words of that length 2441 5, 72, 2442 // Coordinates where words start and direction (0 = horizontal) 2443 0,2,1, 0,5,0, 0,8,1, 0,9,0, 0,14,1, 0,15,0, 1,8,1, 2,0,0, 2,8,1, 2,20,0, 3,12,1, 4,5,1, 4,11,0, 4,11,1, 4,17,0, 5,0,1, 5,4,0, 5,10,0, 5,10,1, 5,16,0, 5,16,1, 6,9,0, 6,9,1, 6,15,0, 7,8,0, 7,8,1, 7,14,0, 8,0,0, 8,1,0, 8,2,0, 8,7,0, 8,7,1, 8,13,0, 8,18,0, 8,19,0, 8,20,0, 9,0,1, 9,6,0, 9,6,1, 9,12,0, 9,12,1, 10,5,0, 10,5,1, 10,11,0, 10,11,1, 11,4,0, 11,4,1, 11,10,0, 11,10,1, 11,16,0, 11,16,1, 12,3,0, 12,9,0, 12,9,1, 13,8,1, 14,0,0, 14,7,1, 14,20,0, 15,0,1, 15,6,1, 15,16,1, 16,5,0, 16,5,1, 16,11,0, 16,11,1, 16,15,0, 17,4,1, 18,8,1, 19,8,1, 20,2,1, 20,8,1, 20,14,1, 2444 // Length and number of words of that length 2445 4, 20, 2446 // Coordinates where words start and direction (0 = horizontal) 2447 0,4,0, 0,10,0, 0,16,0, 3,7,0, 3,13,0, 4,0,1, 4,17,1, 7,3,1, 7,14,1, 10,0,1, 10,17,1, 13,3,1, 13,14,1, 14,7,0, 14,13,0, 16,0,1, 16,17,1, 17,4,0, 17,10,0, 17,16,0, 2448 // Length and number of words of that length 2449 3, 16, 2450 // Coordinates where words start and direction (0 = horizontal) 2451 0,3,0, 0,11,0, 0,17,0, 3,0,1, 3,18,1, 5,6,1, 6,5,0, 9,18,1, 11,0,1, 12,15,0, 15,12,1, 17,0,1, 17,18,1, 18,3,0, 18,9,0, 18,17,0, 2452 // End marker 2453 0 2454 }; 2455 2456 2457 /* 2458 * Name: 21.10, 21 x 21 2459 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2460 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2461 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2462 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 2463 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _ _) 2464 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 2465 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 2466 * (* * * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * * *) 2467 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 2468 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 2469 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2470 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2471 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 2472 * (* * * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * * *) 2473 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 2474 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2475 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 2476 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 2477 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2478 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2479 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2480 */ 2481 const int g39[] = { 2482 // Width and height of crossword grid 2483 21, 21, 2484 // Number of black fields 2485 58, 2486 // Black field coordinates 2487 0,7, 0,13, 1,7, 1,13, 2,7, 2,13, 3,3, 3,17, 4,4, 4,12, 4,16, 5,5, 5,11, 5,15, 6,6, 6,10, 6,14, 7,0, 7,1, 7,2, 7,9, 7,18, 7,19, 7,20, 8,8, 8,16, 9,7, 9,15, 10,6, 10,14, 11,5, 11,13, 12,4, 12,12, 13,0, 13,1, 13,2, 13,11, 13,18, 13,19, 13,20, 14,6, 14,10, 14,14, 15,5, 15,9, 15,15, 16,4, 16,8, 16,16, 17,3, 17,17, 18,7, 18,13, 19,7, 19,13, 20,7, 20,13, 2488 // Length and number of words of that length 2489 13, 4, 2490 // Coordinates where words start and direction (0 = horizontal) 2491 3,4,1, 4,3,0, 4,17,0, 17,4,1, 2492 // Length and number of words of that length 2493 8, 8, 2494 // Coordinates where words start and direction (0 = horizontal) 2495 0,8,0, 3,13,0, 7,10,1, 8,0,1, 10,7,0, 12,13,1, 13,3,1, 13,12,0, 2496 // Length and number of words of that length 2497 7, 42, 2498 // Coordinates where words start and direction (0 = horizontal) 2499 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,9,0, 0,14,1, 0,18,0, 0,19,0, 0,20,0, 1,0,1, 1,14,1, 2,0,1, 2,14,1, 4,5,1, 5,4,0, 5,12,0, 6,11,0, 7,10,0, 8,9,0, 8,9,1, 9,0,1, 9,8,0, 9,8,1, 9,16,0, 10,7,1, 11,6,1, 11,14,1, 12,5,1, 14,0,0, 14,1,0, 14,2,0, 14,11,0, 14,18,0, 14,19,0, 14,20,0, 16,9,1, 18,0,1, 18,14,1, 19,0,1, 19,14,1, 20,0,1, 20,14,1, 2500 // Length and number of words of that length 2501 6, 16, 2502 // Coordinates where words start and direction (0 = horizontal) 2503 0,6,0, 0,10,0, 0,14,0, 3,7,0, 6,0,1, 6,15,1, 7,3,1, 10,0,1, 10,15,1, 12,13,0, 13,12,1, 14,0,1, 14,15,1, 15,6,0, 15,10,0, 15,14,0, 2504 // Length and number of words of that length 2505 5, 28, 2506 // Coordinates where words start and direction (0 = horizontal) 2507 0,5,0, 0,8,1, 0,11,0, 0,15,0, 1,8,1, 2,8,1, 5,0,1, 5,6,1, 5,16,1, 6,5,0, 8,0,0, 8,1,0, 8,2,0, 8,18,0, 8,19,0, 8,20,0, 9,16,1, 10,15,0, 11,0,1, 15,0,1, 15,10,1, 15,16,1, 16,5,0, 16,9,0, 16,15,0, 18,8,1, 19,8,1, 20,8,1, 2508 // Length and number of words of that length 2509 4, 12, 2510 // Coordinates where words start and direction (0 = horizontal) 2511 0,4,0, 0,12,0, 0,16,0, 4,0,1, 4,17,1, 8,17,1, 12,0,1, 16,0,1, 16,17,1, 17,4,0, 17,8,0, 17,16,0, 2512 // Length and number of words of that length 2513 3, 24, 2514 // Coordinates where words start and direction (0 = horizontal) 2515 0,3,0, 0,17,0, 3,0,1, 3,18,1, 4,13,1, 5,12,1, 5,16,0, 6,7,1, 6,11,1, 6,15,0, 7,6,0, 7,14,0, 11,6,0, 11,14,0, 12,5,0, 13,4,0, 14,7,1, 14,11,1, 15,6,1, 16,5,1, 17,0,1, 17,18,1, 18,3,0, 18,17,0, 2516 // End marker 2517 0 2518 }; 2519 2520 2521 /* 2522 * Name: 23.01, 23 x 23 2523 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2524 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2525 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 2526 * (_ _ _ _ * _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _ _) 2527 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ * * _ _ _ _ _ _) 2528 * (* * * * _ _ _ * _ _ _ * _ _ _ * _ _ _ _ * * *) 2529 * (_ _ _ _ _ _ * _ _ _ * * * _ _ _ _ _ * _ _ _ _) 2530 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2531 * (_ _ _ _ * _ _ _ * * _ _ _ _ _ _ * _ _ _ _ _ _) 2532 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2533 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _ _) 2534 * (* * * _ _ _ _ _ _ _ * * * _ _ _ _ _ _ _ * * *) 2535 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2536 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2537 * (_ _ _ _ _ _ * _ _ _ _ _ _ * * _ _ _ * _ _ _ _) 2538 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2539 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ * _ _ _ _ _ _) 2540 * (* * * _ _ _ _ * _ _ _ * _ _ _ * _ _ _ * * * *) 2541 * (_ _ _ _ _ _ * * _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 2542 * (_ _ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ * _ _ _ _) 2543 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 2544 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 2545 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 2546 */ 2547 const int g40[] = { 2548 // Width and height of crossword grid 2549 23, 23, 2550 // Number of black fields 2551 89, 2552 // Black field coordinates 2553 0,5, 0,11, 0,17, 1,5, 1,11, 1,17, 2,5, 2,11, 2,17, 3,4, 3,5, 4,3, 4,8, 4,12, 4,16, 4,21, 4,22, 5,7, 5,15, 6,0, 6,1, 6,6, 6,10, 6,14, 6,18, 7,5, 7,9, 7,13, 7,17, 7,18, 8,3, 8,8, 8,12, 8,19, 9,3, 9,8, 9,21, 9,22, 10,6, 10,11, 10,16, 11,5, 11,6, 11,7, 11,11, 11,15, 11,16, 11,17, 12,6, 12,11, 12,16, 13,0, 13,1, 13,14, 13,19, 14,3, 14,10, 14,14, 14,19, 15,4, 15,5, 15,9, 15,13, 15,17, 16,4, 16,8, 16,12, 16,16, 16,21, 16,22, 17,7, 17,15, 18,0, 18,1, 18,6, 18,10, 18,14, 18,19, 19,17, 19,18, 20,5, 20,11, 20,17, 21,5, 21,11, 21,17, 22,5, 22,11, 22,17, 2554 // Length and number of words of that length 2555 23, 2, 2556 // Coordinates where words start and direction (0 = horizontal) 2557 0,2,0, 0,20,0, 2558 // Length and number of words of that length 2559 17, 2, 2560 // Coordinates where words start and direction (0 = horizontal) 2561 3,6,1, 19,0,1, 2562 // Length and number of words of that length 2563 12, 2, 2564 // Coordinates where words start and direction (0 = horizontal) 2565 9,9,1, 13,2,1, 2566 // Length and number of words of that length 2567 11, 2, 2568 // Coordinates where words start and direction (0 = horizontal) 2569 4,4,0, 8,18,0, 2570 // Length and number of words of that length 2571 8, 2, 2572 // Coordinates where words start and direction (0 = horizontal) 2573 0,19,0, 15,3,0, 2574 // Length and number of words of that length 2575 7, 16, 2576 // Coordinates where words start and direction (0 = horizontal) 2577 0,9,0, 0,13,0, 3,11,0, 5,0,1, 5,8,1, 5,16,1, 7,10,0, 8,9,0, 8,13,0, 9,12,0, 13,11,0, 16,9,0, 16,13,0, 17,0,1, 17,8,1, 17,16,1, 2578 // Length and number of words of that length 2579 6, 24, 2580 // Coordinates where words start and direction (0 = horizontal) 2581 0,0,0, 0,1,0, 0,6,0, 0,10,0, 0,14,0, 0,18,0, 7,0,0, 7,1,0, 7,14,0, 8,13,1, 10,0,1, 10,8,0, 10,17,1, 10,21,0, 10,22,0, 12,0,1, 12,17,1, 14,4,1, 17,4,0, 17,8,0, 17,12,0, 17,16,0, 17,21,0, 17,22,0, 2582 // Length and number of words of that length 2583 5, 38, 2584 // Coordinates where words start and direction (0 = horizontal) 2585 0,0,1, 0,6,1, 0,7,0, 0,12,1, 0,15,0, 0,18,1, 1,0,1, 1,6,1, 1,12,1, 1,18,1, 2,0,1, 2,6,1, 2,12,1, 2,18,1, 5,16,0, 6,7,0, 6,15,0, 7,0,1, 11,0,1, 11,18,1, 12,7,0, 12,15,0, 13,6,0, 15,18,1, 18,7,0, 18,15,0, 20,0,1, 20,6,1, 20,12,1, 20,18,1, 21,0,1, 21,6,1, 21,12,1, 21,18,1, 22,0,1, 22,6,1, 22,12,1, 22,18,1, 2586 // Length and number of words of that length 2587 4, 40, 2588 // Coordinates where words start and direction (0 = horizontal) 2589 0,3,0, 0,8,0, 0,12,0, 0,16,0, 0,21,0, 0,22,0, 3,0,1, 3,17,0, 4,4,1, 4,17,1, 5,21,0, 5,22,0, 6,2,1, 6,19,1, 7,19,1, 8,4,1, 9,4,1, 9,19,0, 10,3,0, 10,7,1, 10,12,1, 12,7,1, 12,12,1, 13,15,1, 14,0,0, 14,1,0, 14,15,1, 15,0,1, 16,0,1, 16,5,0, 16,17,1, 18,2,1, 18,15,1, 19,0,0, 19,1,0, 19,6,0, 19,10,0, 19,14,0, 19,19,0, 19,19,1, 2590 // Length and number of words of that length 2591 3, 44, 2592 // Coordinates where words start and direction (0 = horizontal) 2593 0,4,0, 4,0,1, 4,5,0, 4,9,1, 4,13,1, 5,3,0, 5,8,0, 5,12,0, 6,7,1, 6,11,1, 6,15,1, 7,6,0, 7,6,1, 7,10,1, 7,14,1, 8,0,1, 8,5,0, 8,9,1, 8,17,0, 8,20,1, 9,0,1, 11,8,1, 11,12,1, 12,5,0, 12,17,0, 13,16,0, 13,20,1, 14,0,1, 14,11,1, 14,20,1, 15,6,1, 15,10,0, 15,10,1, 15,14,0, 15,14,1, 15,19,0, 16,5,1, 16,9,1, 16,13,1, 16,17,0, 18,7,1, 18,11,1, 18,20,1, 20,18,0, 2594 // End marker 2595 0 2596 }; 2597 2598 2599 /* 2600 * Name: 23.02, 23 x 23 2601 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ *) 2602 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2603 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 2604 * (_ _ _ * * _ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _) 2605 * (_ _ _ _ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 2606 * (* * * _ _ _ * _ _ _ _ * * _ _ _ * * _ _ _ _ _) 2607 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * * *) 2608 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 2609 * (_ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 2610 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 2611 * (* * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2612 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2613 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * *) 2614 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 2615 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _) 2616 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2617 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2618 * (_ _ _ _ _ * * _ _ _ * * _ _ _ _ * _ _ _ * * *) 2619 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _ _ _ _) 2620 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _ * * _ _ _) 2621 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 2622 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2623 * (* _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2624 */ 2625 const int g41[] = { 2626 // Width and height of crossword grid 2627 23, 23, 2628 // Number of black fields 2629 94, 2630 // Black field coordinates 2631 0,5, 0,10, 0,16, 0,22, 1,5, 1,10, 1,16, 2,5, 2,16, 3,3, 3,9, 3,14, 3,19, 4,3, 4,7, 4,8, 4,13, 4,18, 5,0, 5,1, 5,6, 5,12, 5,17, 6,5, 6,17, 6,21, 6,22, 7,4, 7,10, 7,11, 7,15, 7,16, 8,4, 8,9, 8,19, 9,8, 9,13, 9,14, 9,18, 10,0, 10,1, 10,2, 10,6, 10,7, 10,12, 10,17, 11,5, 11,17, 12,5, 12,10, 12,15, 12,16, 12,20, 12,21, 12,22, 13,4, 13,8, 13,9, 13,14, 14,3, 14,13, 14,18, 15,6, 15,7, 15,11, 15,12, 15,18, 16,0, 16,1, 16,5, 16,17, 17,5, 17,10, 17,16, 17,21, 17,22, 18,4, 18,9, 18,14, 18,15, 18,19, 19,3, 19,8, 19,13, 19,19, 20,6, 20,17, 21,6, 21,12, 21,17, 22,0, 22,6, 22,12, 22,17, 2632 // Length and number of words of that length 2633 12, 2, 2634 // Coordinates where words start and direction (0 = horizontal) 2635 0,20,0, 11,2,0, 2636 // Length and number of words of that length 2637 11, 3, 2638 // Coordinates where words start and direction (0 = horizontal) 2639 6,6,1, 11,6,1, 16,6,1, 2640 // Length and number of words of that length 2641 10, 4, 2642 // Coordinates where words start and direction (0 = horizontal) 2643 0,2,0, 2,6,1, 13,20,0, 20,7,1, 2644 // Length and number of words of that length 2645 9, 4, 2646 // Coordinates where words start and direction (0 = horizontal) 2647 5,3,0, 8,10,1, 9,19,0, 14,4,1, 2648 // Length and number of words of that length 2649 8, 2, 2650 // Coordinates where words start and direction (0 = horizontal) 2651 9,0,1, 13,15,1, 2652 // Length and number of words of that length 2653 7, 7, 2654 // Coordinates where words start and direction (0 = horizontal) 2655 0,4,0, 0,11,0, 0,15,0, 8,11,0, 16,7,0, 16,11,0, 16,18,0, 2656 // Length and number of words of that length 2657 6, 8, 2658 // Coordinates where words start and direction (0 = horizontal) 2659 0,21,0, 1,17,1, 2,17,1, 7,17,1, 15,0,1, 17,1,0, 20,0,1, 21,0,1, 2660 // Length and number of words of that length 2661 5, 48, 2662 // Coordinates where words start and direction (0 = horizontal) 2663 0,0,0, 0,0,1, 0,1,0, 0,6,0, 0,11,1, 0,12,0, 0,17,0, 0,17,1, 1,0,1, 1,11,1, 1,22,0, 2,0,1, 2,10,0, 3,4,1, 4,14,0, 5,7,0, 5,7,1, 5,18,1, 6,0,1, 7,5,1, 7,21,0, 7,22,0, 10,18,1, 11,0,0, 11,0,1, 11,1,0, 11,18,1, 12,0,1, 13,15,0, 14,8,0, 15,13,1, 16,12,0, 16,18,1, 17,0,0, 17,0,1, 17,11,1, 18,5,0, 18,10,0, 18,16,0, 18,21,0, 18,22,0, 19,14,1, 20,18,1, 21,7,1, 21,18,1, 22,1,1, 22,7,1, 22,18,1, 2664 // Length and number of words of that length 2665 4, 72, 2666 // Coordinates where words start and direction (0 = horizontal) 2667 0,6,1, 0,7,0, 0,8,0, 0,13,0, 0,18,0, 1,6,1, 3,10,1, 3,15,1, 3,16,0, 4,9,0, 4,9,1, 4,14,1, 4,19,0, 4,19,1, 5,2,1, 5,8,0, 5,13,0, 5,13,1, 5,18,0, 6,0,0, 6,1,0, 6,6,0, 6,12,0, 7,0,1, 7,5,0, 8,0,1, 8,5,1, 8,10,0, 8,15,0, 8,16,0, 9,4,0, 9,9,0, 9,9,1, 9,19,1, 10,8,1, 10,13,0, 10,13,1, 10,18,0, 11,6,0, 11,7,0, 11,12,0, 12,6,1, 12,11,1, 12,17,0, 13,0,1, 13,10,0, 13,10,1, 13,16,0, 13,21,0, 13,22,0, 14,4,0, 14,9,0, 14,14,0, 14,14,1, 14,19,1, 15,3,0, 15,13,0, 15,19,1, 16,6,0, 17,6,1, 17,17,1, 18,0,1, 18,5,1, 18,10,1, 19,4,0, 19,4,1, 19,9,0, 19,9,1, 19,14,0, 19,15,0, 21,13,1, 22,13,1, 2668 // Length and number of words of that length 2669 3, 32, 2670 // Coordinates where words start and direction (0 = horizontal) 2671 0,3,0, 0,9,0, 0,14,0, 0,19,0, 3,0,1, 3,5,0, 3,20,1, 4,0,1, 4,4,1, 6,18,1, 7,12,1, 7,17,0, 8,20,1, 9,15,1, 10,3,1, 10,8,0, 10,14,0, 12,17,1, 13,5,0, 13,5,1, 14,0,1, 15,8,1, 16,2,1, 17,17,0, 18,16,1, 18,20,1, 19,0,1, 19,20,1, 20,3,0, 20,8,0, 20,13,0, 20,19,0, 2672 // End marker 2673 0 2674 }; 2675 2676 2677 /* 2678 * Name: 23.03, 23 x 23 2679 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2680 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2681 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 2682 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2683 * (_ _ _ * * _ _ _ * * * _ _ _ _ _ _ _ * _ _ _ _) 2684 * (* * * _ _ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _) 2685 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ * * *) 2686 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 2687 * (_ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2688 * (_ _ _ _ _ _ _ * * _ _ _ _ _ _ _ _ _ * _ _ _ _) 2689 * (_ _ _ * _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _) 2690 * (* * _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ * *) 2691 * (_ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ * _ _ _) 2692 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ * * _ _ _ _ _ _ _) 2693 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _) 2694 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2695 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _ _ _) 2696 * (_ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _ _ * * *) 2697 * (_ _ _ _ * _ _ _ _ _ _ _ * * * _ _ _ * * _ _ _) 2698 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 2699 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 2700 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2701 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2702 */ 2703 const int g42[] = { 2704 // Width and height of crossword grid 2705 23, 23, 2706 // Number of black fields 2707 89, 2708 // Black field coordinates 2709 0,5, 0,11, 0,16, 1,5, 1,11, 1,16, 2,5, 2,16, 3,4, 3,10, 3,15, 4,4, 4,8, 4,13, 4,14, 4,18, 4,19, 5,11, 5,17, 5,21, 5,22, 6,0, 6,1, 6,6, 6,7, 6,12, 6,17, 7,3, 7,9, 7,16, 8,4, 8,9, 9,4, 9,10, 9,14, 9,19, 10,4, 10,5, 10,10, 10,15, 10,20, 10,21, 10,22, 11,6, 11,11, 11,16, 12,0, 12,1, 12,2, 12,7, 12,12, 12,17, 12,18, 13,3, 13,8, 13,12, 13,18, 14,13, 14,18, 15,6, 15,13, 15,19, 16,5, 16,10, 16,15, 16,16, 16,21, 16,22, 17,0, 17,1, 17,5, 17,11, 18,3, 18,4, 18,8, 18,9, 18,14, 18,18, 19,7, 19,12, 19,18, 20,6, 20,17, 21,6, 21,11, 21,17, 22,6, 22,11, 22,17, 2710 // Length and number of words of that length 2711 13, 2, 2712 // Coordinates where words start and direction (0 = horizontal) 2713 8,10,1, 14,0,1, 2714 // Length and number of words of that length 2715 12, 2, 2716 // Coordinates where words start and direction (0 = horizontal) 2717 0,2,0, 11,20,0, 2718 // Length and number of words of that length 2719 11, 2, 2720 // Coordinates where words start and direction (0 = horizontal) 2721 5,0,1, 17,12,1, 2722 // Length and number of words of that length 2723 10, 4, 2724 // Coordinates where words start and direction (0 = horizontal) 2725 0,20,0, 2,6,1, 13,2,0, 20,7,1, 2726 // Length and number of words of that length 2727 9, 2, 2728 // Coordinates where words start and direction (0 = horizontal) 2729 5,13,0, 9,9,0, 2730 // Length and number of words of that length 2731 8, 2, 2732 // Coordinates where words start and direction (0 = horizontal) 2733 5,8,0, 10,14,0, 2734 // Length and number of words of that length 2735 7, 10, 2736 // Coordinates where words start and direction (0 = horizontal) 2737 0,3,0, 0,9,0, 3,5,0, 3,16,1, 5,18,0, 11,4,0, 13,17,0, 16,13,0, 16,19,0, 19,0,1, 2738 // Length and number of words of that length 2739 6, 24, 2740 // Coordinates where words start and direction (0 = horizontal) 2741 0,0,0, 0,1,0, 0,6,0, 0,7,0, 0,12,0, 0,17,1, 1,17,1, 2,17,1, 4,15,0, 7,10,1, 7,17,1, 11,0,1, 11,17,1, 13,7,0, 15,0,1, 15,7,1, 17,10,0, 17,15,0, 17,16,0, 17,21,0, 17,22,0, 20,0,1, 21,0,1, 22,0,1, 2742 // Length and number of words of that length 2743 5, 42, 2744 // Coordinates where words start and direction (0 = horizontal) 2745 0,0,1, 0,6,1, 0,17,0, 0,21,0, 0,22,0, 1,0,1, 1,6,1, 2,0,1, 3,5,1, 4,10,0, 5,12,1, 6,11,0, 6,18,1, 7,0,0, 7,1,0, 7,4,1, 7,7,0, 7,12,0, 7,17,0, 8,3,0, 9,5,1, 10,19,0, 11,5,0, 11,10,0, 11,15,0, 11,21,0, 11,22,0, 12,11,0, 13,13,1, 14,12,0, 15,14,1, 16,0,1, 17,6,1, 18,0,0, 18,1,0, 18,5,0, 19,13,1, 20,18,1, 21,12,1, 21,18,1, 22,12,1, 22,18,1, 2746 // Length and number of words of that length 2747 4, 58, 2748 // Coordinates where words start and direction (0 = horizontal) 2749 0,8,0, 0,12,1, 0,13,0, 0,14,0, 0,18,0, 0,19,0, 1,12,1, 3,0,1, 3,11,1, 3,16,0, 4,0,1, 4,9,1, 5,14,0, 5,19,0, 6,2,1, 6,8,1, 6,13,1, 6,21,0, 6,22,0, 7,6,0, 8,0,1, 8,5,1, 9,0,1, 9,15,1, 10,0,1, 10,6,1, 10,11,1, 10,16,1, 11,7,1, 11,12,1, 12,3,1, 12,8,1, 12,13,1, 12,16,0, 12,19,1, 13,0,0, 13,1,0, 13,4,1, 13,19,1, 14,3,0, 14,8,0, 14,14,1, 14,19,1, 16,6,0, 16,6,1, 16,11,1, 16,17,1, 18,10,1, 18,19,1, 19,3,0, 19,4,0, 19,8,0, 19,8,1, 19,9,0, 19,14,0, 19,19,1, 21,7,1, 22,7,1, 2750 // Length and number of words of that length 2751 3, 26, 2752 // Coordinates where words start and direction (0 = horizontal) 2753 0,4,0, 0,10,0, 0,15,0, 2,11,0, 4,5,1, 4,15,1, 4,20,1, 5,4,0, 5,18,1, 7,0,1, 8,16,0, 9,11,1, 9,20,1, 12,6,0, 13,0,1, 13,9,1, 15,18,0, 15,20,1, 17,2,1, 18,0,1, 18,5,1, 18,11,0, 18,15,1, 20,7,0, 20,12,0, 20,18,0, 2754 // End marker 2755 0 2756 }; 2757 2758 2759 /* 2760 * Name: 23.04, 23 x 23 2761 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2762 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2763 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2764 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 2765 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2766 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 2767 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 2768 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2769 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 2770 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 2771 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 2772 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 2773 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 2774 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 2775 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2776 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2777 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2778 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 2779 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2780 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 2781 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2782 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2783 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2784 */ 2785 const int g43[] = { 2786 // Width and height of crossword grid 2787 23, 23, 2788 // Number of black fields 2789 80, 2790 // Black field coordinates 2791 0,5, 0,11, 0,17, 1,5, 1,11, 1,17, 2,5, 2,11, 2,17, 3,9, 3,13, 4,8, 4,14, 5,0, 5,1, 5,2, 5,7, 5,15, 5,20, 5,21, 5,22, 6,6, 6,10, 6,16, 7,5, 7,11, 7,17, 8,4, 8,12, 8,18, 9,3, 9,9, 9,13, 9,19, 10,8, 10,16, 11,0, 11,1, 11,2, 11,7, 11,15, 11,20, 11,21, 11,22, 12,6, 12,14, 13,3, 13,9, 13,13, 13,19, 14,4, 14,10, 14,18, 15,5, 15,11, 15,17, 16,6, 16,12, 16,16, 17,0, 17,1, 17,2, 17,7, 17,15, 17,20, 17,21, 17,22, 18,8, 18,14, 19,9, 19,13, 20,5, 20,11, 20,17, 21,5, 21,11, 21,17, 22,5, 22,11, 22,17, 2792 // Length and number of words of that length 2793 9, 8, 2794 // Coordinates where words start and direction (0 = horizontal) 2795 0,3,0, 0,19,0, 3,0,1, 3,14,1, 14,3,0, 14,19,0, 19,0,1, 19,14,1, 2796 // Length and number of words of that length 2797 8, 12, 2798 // Coordinates where words start and direction (0 = horizontal) 2799 0,4,0, 0,12,0, 0,18,0, 4,0,1, 4,15,1, 10,0,1, 12,15,1, 15,4,0, 15,10,0, 15,18,0, 18,0,1, 18,15,1, 2800 // Length and number of words of that length 2801 7, 14, 2802 // Coordinates where words start and direction (0 = horizontal) 2803 5,8,1, 5,14,0, 7,10,0, 8,5,0, 8,5,1, 8,11,0, 8,17,0, 9,12,0, 10,9,1, 11,8,0, 11,8,1, 12,7,1, 14,11,1, 17,8,1, 2804 // Length and number of words of that length 2805 6, 12, 2806 // Coordinates where words start and direction (0 = horizontal) 2807 0,6,0, 0,10,0, 0,16,0, 6,0,1, 6,17,1, 10,17,1, 12,0,1, 16,0,1, 16,17,1, 17,6,0, 17,12,0, 17,16,0, 2808 // Length and number of words of that length 2809 5, 84, 2810 // Coordinates where words start and direction (0 = horizontal) 2811 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,6,1, 0,7,0, 0,12,1, 0,15,0, 0,18,1, 0,20,0, 0,21,0, 0,22,0, 1,0,1, 1,6,1, 1,12,1, 1,18,1, 2,0,1, 2,6,1, 2,12,1, 2,18,1, 4,9,0, 4,9,1, 4,13,0, 5,8,0, 6,0,0, 6,1,0, 6,2,0, 6,7,0, 6,11,1, 6,15,0, 6,20,0, 6,21,0, 6,22,0, 7,0,1, 7,6,0, 7,6,1, 7,12,1, 7,18,1, 8,13,1, 9,4,0, 9,4,1, 9,14,1, 9,18,0, 11,16,0, 12,0,0, 12,1,0, 12,2,0, 12,7,0, 12,15,0, 12,20,0, 12,21,0, 12,22,0, 13,4,1, 13,14,0, 13,14,1, 14,5,1, 14,9,0, 14,13,0, 15,0,1, 15,6,1, 15,12,1, 15,18,1, 16,7,1, 18,0,0, 18,1,0, 18,2,0, 18,7,0, 18,9,1, 18,15,0, 18,20,0, 18,21,0, 18,22,0, 20,0,1, 20,6,1, 20,12,1, 20,18,1, 21,0,1, 21,6,1, 21,12,1, 21,18,1, 22,0,1, 22,6,1, 22,12,1, 22,18,1, 2812 // Length and number of words of that length 2813 4, 20, 2814 // Coordinates where words start and direction (0 = horizontal) 2815 0,8,0, 0,14,0, 3,5,0, 3,11,0, 3,17,0, 5,3,1, 5,16,1, 8,0,1, 8,19,1, 11,3,1, 11,16,1, 14,0,1, 14,19,1, 16,5,0, 16,11,0, 16,17,0, 17,3,1, 17,16,1, 19,8,0, 19,14,0, 2816 // Length and number of words of that length 2817 3, 20, 2818 // Coordinates where words start and direction (0 = horizontal) 2819 0,9,0, 0,13,0, 3,10,1, 6,7,1, 7,16,0, 9,0,1, 9,10,1, 9,20,1, 10,3,0, 10,9,0, 10,13,0, 10,19,0, 13,0,1, 13,6,0, 13,10,1, 13,20,1, 16,13,1, 19,10,1, 20,9,0, 20,13,0, 2820 // End marker 2821 0 2822 }; 2823 2824 2825 /* 2826 * Name: 23.05, 23 x 23 2827 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2828 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2829 * (_ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2830 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 2831 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2832 * (* * * _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ * * *) 2833 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2834 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 2835 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 2836 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _) 2837 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2838 * (* * * _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ * * *) 2839 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 2840 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 2841 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 2842 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2843 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2844 * (* * * _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ * * *) 2845 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2846 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 2847 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _) 2848 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2849 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2850 */ 2851 const int g44[] = { 2852 // Width and height of crossword grid 2853 23, 23, 2854 // Number of black fields 2855 84, 2856 // Black field coordinates 2857 0,5, 0,11, 0,17, 1,5, 1,11, 1,17, 2,5, 2,11, 2,17, 3,3, 3,8, 3,14, 3,19, 4,7, 4,15, 5,0, 5,1, 5,6, 5,12, 5,16, 5,20, 5,21, 5,22, 6,5, 6,11, 6,17, 7,4, 7,10, 7,18, 8,3, 8,9, 8,14, 8,19, 9,8, 9,13, 10,7, 10,12, 10,17, 11,0, 11,1, 11,2, 11,6, 11,16, 11,20, 11,21, 11,22, 12,5, 12,10, 12,15, 13,9, 13,14, 14,3, 14,8, 14,13, 14,19, 15,4, 15,12, 15,18, 16,5, 16,11, 16,17, 17,0, 17,1, 17,2, 17,6, 17,10, 17,16, 17,21, 17,22, 18,7, 18,15, 19,3, 19,8, 19,14, 19,19, 20,5, 20,11, 20,17, 21,5, 21,11, 21,17, 22,5, 22,11, 22,17, 2858 // Length and number of words of that length 2859 11, 2, 2860 // Coordinates where words start and direction (0 = horizontal) 2861 0,2,0, 12,20,0, 2862 // Length and number of words of that length 2863 9, 6, 2864 // Coordinates where words start and direction (0 = horizontal) 2865 0,13,0, 7,11,0, 9,14,1, 11,7,1, 13,0,1, 14,9,0, 2866 // Length and number of words of that length 2867 8, 4, 2868 // Coordinates where words start and direction (0 = horizontal) 2869 0,9,0, 9,0,1, 13,15,1, 15,13,0, 2870 // Length and number of words of that length 2871 7, 20, 2872 // Coordinates where words start and direction (0 = horizontal) 2873 0,4,0, 0,10,0, 0,18,0, 4,0,1, 4,8,1, 4,16,1, 5,15,0, 7,11,1, 8,4,0, 8,18,0, 10,0,1, 11,7,0, 12,16,1, 15,5,1, 16,4,0, 16,12,0, 16,18,0, 18,0,1, 18,8,1, 18,16,1, 2874 // Length and number of words of that length 2875 5, 80, 2876 // Coordinates where words start and direction (0 = horizontal) 2877 0,0,0, 0,0,1, 0,1,0, 0,6,0, 0,6,1, 0,12,0, 0,12,1, 0,16,0, 0,18,1, 0,20,0, 0,21,0, 0,22,0, 1,0,1, 1,6,1, 1,12,1, 1,18,1, 2,0,1, 2,6,1, 2,12,1, 2,18,1, 3,9,1, 4,8,0, 5,7,0, 5,7,1, 6,0,0, 6,0,1, 6,1,0, 6,6,0, 6,6,1, 6,12,1, 6,16,0, 6,18,1, 6,20,0, 6,21,0, 6,22,0, 7,5,0, 7,5,1, 8,4,1, 9,3,0, 9,19,0, 10,18,1, 11,17,0, 12,0,0, 12,0,1, 12,1,0, 12,2,0, 12,6,0, 12,16,0, 12,21,0, 12,22,0, 13,15,0, 14,14,0, 14,14,1, 15,13,1, 16,0,1, 16,6,1, 16,12,1, 16,18,1, 17,11,1, 18,0,0, 18,1,0, 18,2,0, 18,6,0, 18,10,0, 18,16,0, 18,21,0, 18,22,0, 19,9,1, 20,0,1, 20,6,1, 20,12,1, 20,18,1, 21,0,1, 21,6,1, 21,12,1, 21,18,1, 22,0,1, 22,6,1, 22,12,1, 22,18,1, 2878 // Length and number of words of that length 2879 4, 38, 2880 // Coordinates where words start and direction (0 = horizontal) 2881 0,7,0, 0,15,0, 3,4,1, 3,15,1, 4,3,0, 4,14,0, 4,19,0, 5,2,1, 6,12,0, 7,0,1, 7,19,1, 8,10,0, 8,10,1, 8,15,1, 9,9,0, 9,9,1, 9,14,0, 10,8,0, 10,8,1, 10,13,0, 10,13,1, 11,12,0, 12,6,1, 12,11,1, 13,10,0, 13,10,1, 14,4,1, 14,9,1, 15,0,1, 15,3,0, 15,8,0, 15,19,0, 15,19,1, 17,17,1, 19,4,1, 19,7,0, 19,15,0, 19,15,1, 2882 // Length and number of words of that length 2883 3, 30, 2884 // Coordinates where words start and direction (0 = horizontal) 2885 0,3,0, 0,8,0, 0,14,0, 0,19,0, 3,0,1, 3,5,0, 3,11,0, 3,17,0, 3,20,1, 5,13,1, 5,17,1, 7,17,0, 8,0,1, 8,20,1, 11,3,1, 11,17,1, 13,5,0, 14,0,1, 14,20,1, 17,3,1, 17,5,0, 17,7,1, 17,11,0, 17,17,0, 19,0,1, 19,20,1, 20,3,0, 20,8,0, 20,14,0, 20,19,0, 2886 // End marker 2887 0 2888 }; 2889 2890 2891 /* 2892 * Name: 23.06, 23 x 23 2893 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2894 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2895 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2896 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _) 2897 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 2898 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2899 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2900 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 2901 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 2902 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 2903 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 2904 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ _ _ * _ _ _ _) 2905 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 2906 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 2907 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 2908 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 2909 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2910 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 2911 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 2912 * (_ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 2913 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2914 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2915 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2916 */ 2917 const int g45[] = { 2918 // Width and height of crossword grid 2919 23, 23, 2920 // Number of black fields 2921 69, 2922 // Black field coordinates 2923 0,7, 0,15, 1,7, 1,15, 2,7, 2,15, 3,3, 3,12, 3,19, 4,4, 4,11, 4,18, 5,5, 5,10, 5,17, 6,8, 6,14, 7,0, 7,1, 7,2, 7,7, 7,15, 7,20, 7,21, 7,22, 8,6, 8,16, 9,9, 9,13, 10,3, 10,11, 10,17, 11,4, 11,10, 11,11, 11,12, 11,18, 12,5, 12,11, 12,19, 13,9, 13,13, 14,6, 14,16, 15,0, 15,1, 15,2, 15,7, 15,15, 15,20, 15,21, 15,22, 16,8, 16,14, 17,5, 17,12, 17,17, 18,4, 18,11, 18,18, 19,3, 19,10, 19,19, 20,7, 20,15, 21,7, 21,15, 22,7, 22,15, 2924 // Length and number of words of that length 2925 9, 12, 2926 // Coordinates where words start and direction (0 = horizontal) 2927 0,9,0, 0,13,0, 7,8,0, 7,14,0, 8,7,1, 9,0,1, 9,14,1, 13,0,1, 13,14,1, 14,7,1, 14,9,0, 14,13,0, 2928 // Length and number of words of that length 2929 8, 12, 2930 // Coordinates where words start and direction (0 = horizontal) 2931 0,6,0, 0,16,0, 3,4,1, 4,19,0, 6,0,1, 6,15,1, 11,3,0, 15,6,0, 15,16,0, 16,0,1, 16,15,1, 19,11,1, 2932 // Length and number of words of that length 2933 7, 44, 2934 // Coordinates where words start and direction (0 = horizontal) 2935 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,8,1, 0,16,1, 0,20,0, 0,21,0, 0,22,0, 1,0,1, 1,8,1, 1,16,1, 2,0,1, 2,8,1, 2,16,1, 4,12,0, 7,8,1, 8,0,0, 8,1,0, 8,2,0, 8,7,0, 8,15,0, 8,20,0, 8,21,0, 8,22,0, 10,4,1, 12,10,0, 12,12,1, 15,8,1, 16,0,0, 16,1,0, 16,2,0, 16,20,0, 16,21,0, 16,22,0, 20,0,1, 20,8,1, 20,16,1, 21,0,1, 21,8,1, 21,16,1, 22,0,1, 22,8,1, 22,16,1, 2936 // Length and number of words of that length 2937 6, 24, 2938 // Coordinates where words start and direction (0 = horizontal) 2939 0,8,0, 0,14,0, 3,13,1, 4,3,0, 4,5,1, 4,12,1, 5,4,0, 5,11,1, 5,18,0, 6,5,0, 8,0,1, 8,17,1, 11,17,0, 12,4,0, 12,18,0, 13,19,0, 14,0,1, 14,17,1, 17,6,1, 17,8,0, 17,14,0, 18,5,1, 18,12,1, 19,4,1, 2940 // Length and number of words of that length 2941 5, 24, 2942 // Coordinates where words start and direction (0 = horizontal) 2943 0,5,0, 0,10,0, 0,17,0, 5,0,1, 5,11,0, 5,18,1, 6,9,1, 6,10,0, 9,6,0, 9,16,0, 10,12,1, 10,18,1, 11,5,1, 11,13,1, 12,0,1, 12,6,1, 12,12,0, 13,11,0, 16,9,1, 17,0,1, 17,18,1, 18,5,0, 18,12,0, 18,17,0, 2944 // Length and number of words of that length 2945 4, 24, 2946 // Coordinates where words start and direction (0 = horizontal) 2947 0,4,0, 0,11,0, 0,18,0, 3,7,0, 3,15,0, 4,0,1, 4,19,1, 5,6,1, 6,17,0, 7,3,1, 7,16,1, 11,0,1, 11,19,1, 13,5,0, 15,3,1, 15,16,1, 16,7,0, 16,15,0, 17,13,1, 18,0,1, 18,19,1, 19,4,0, 19,11,0, 19,18,0, 2948 // Length and number of words of that length 2949 3, 16, 2950 // Coordinates where words start and direction (0 = horizontal) 2951 0,3,0, 0,12,0, 0,19,0, 3,0,1, 3,20,1, 9,10,1, 10,0,1, 10,9,0, 10,13,0, 12,20,1, 13,10,1, 19,0,1, 19,20,1, 20,3,0, 20,10,0, 20,19,0, 2952 // End marker 2953 0 2954 }; 2955 2956 2957 /* 2958 * Name: 23.07, 23 x 23 2959 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ *) 2960 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2961 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 2962 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 2963 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 2964 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2965 * (_ _ _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ * * *) 2966 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 2967 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 2968 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _) 2969 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 2970 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 2971 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 2972 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 2973 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 2974 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 2975 * (* * * _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ _ _) 2976 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 2977 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 2978 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 2979 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 2980 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2981 * (* _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 2982 */ 2983 const int g46[] = { 2984 // Width and height of crossword grid 2985 23, 23, 2986 // Number of black fields 2987 83, 2988 // Black field coordinates 2989 0,4, 0,10, 0,16, 0,22, 1,4, 1,10, 1,16, 2,4, 2,16, 3,8, 3,14, 3,19, 4,0, 4,1, 4,7, 4,13, 4,18, 5,6, 5,12, 5,17, 6,5, 6,10, 6,11, 6,16, 6,21, 6,22, 7,4, 7,15, 8,3, 8,9, 8,14, 8,19, 9,8, 9,18, 10,0, 10,1, 10,2, 10,6, 10,12, 10,17, 11,6, 11,11, 11,16, 12,5, 12,10, 12,16, 12,20, 12,21, 12,22, 13,4, 13,14, 14,3, 14,8, 14,13, 14,19, 15,7, 15,18, 16,0, 16,1, 16,6, 16,11, 16,12, 16,17, 17,5, 17,10, 17,16, 18,4, 18,9, 18,15, 18,21, 18,22, 19,3, 19,8, 19,14, 20,6, 20,18, 21,6, 21,12, 21,18, 22,0, 22,6, 22,12, 22,18, 2990 // Length and number of words of that length 2991 12, 2, 2992 // Coordinates where words start and direction (0 = horizontal) 2993 0,20,0, 11,2,0, 2994 // Length and number of words of that length 2995 11, 2, 2996 // Coordinates where words start and direction (0 = horizontal) 2997 2,5,1, 20,7,1, 2998 // Length and number of words of that length 2999 10, 6, 3000 // Coordinates where words start and direction (0 = horizontal) 3001 0,2,0, 5,7,0, 7,5,1, 8,15,0, 13,20,0, 15,8,1, 3002 // Length and number of words of that length 3003 9, 4, 3004 // Coordinates where words start and direction (0 = horizontal) 3005 5,13,0, 9,9,0, 9,9,1, 13,5,1, 3006 // Length and number of words of that length 3007 8, 8, 3008 // Coordinates where words start and direction (0 = horizontal) 3009 0,3,0, 0,9,0, 3,0,1, 9,0,1, 13,15,1, 15,13,0, 15,19,0, 19,15,1, 3010 // Length and number of words of that length 3011 7, 4, 3012 // Coordinates where words start and direction (0 = horizontal) 3013 0,15,0, 7,16,1, 15,0,1, 16,7,0, 3014 // Length and number of words of that length 3015 6, 14, 3016 // Coordinates where words start and direction (0 = horizontal) 3017 0,5,0, 0,11,0, 0,21,0, 1,17,1, 2,17,1, 5,0,1, 11,0,1, 11,17,1, 17,1,0, 17,11,0, 17,17,0, 17,17,1, 20,0,1, 21,0,1, 3018 // Length and number of words of that length 3019 5, 54, 3020 // Coordinates where words start and direction (0 = horizontal) 3021 0,5,1, 0,6,0, 0,11,1, 0,12,0, 0,17,0, 0,17,1, 1,5,1, 1,11,1, 1,22,0, 3,9,1, 4,2,1, 4,8,0, 4,8,1, 5,0,0, 5,1,0, 5,7,1, 5,18,1, 6,0,1, 7,5,0, 7,10,0, 7,21,0, 7,22,0, 8,4,0, 8,4,1, 9,3,0, 9,19,0, 10,7,1, 10,18,0, 10,18,1, 11,0,0, 11,1,0, 11,12,0, 11,17,0, 12,0,1, 12,11,1, 13,21,0, 13,22,0, 14,14,0, 14,14,1, 16,18,1, 17,0,0, 17,0,1, 17,11,1, 18,5,0, 18,10,0, 18,10,1, 18,16,0, 18,16,1, 19,9,1, 21,7,1, 21,13,1, 22,1,1, 22,7,1, 22,13,1, 3022 // Length and number of words of that length 3023 4, 64, 3024 // Coordinates where words start and direction (0 = horizontal) 3025 0,0,0, 0,0,1, 0,1,0, 0,7,0, 0,13,0, 0,18,0, 1,0,1, 2,0,1, 2,10,0, 3,4,0, 3,15,1, 4,14,0, 4,14,1, 4,19,0, 4,19,1, 5,13,1, 5,18,0, 6,6,0, 6,6,1, 6,12,0, 6,12,1, 6,17,0, 6,17,1, 7,0,1, 7,11,0, 7,16,0, 8,10,1, 8,15,1, 9,14,0, 9,19,1, 10,8,0, 10,13,1, 11,7,1, 11,12,1, 12,6,0, 12,6,1, 12,11,0, 13,0,1, 13,5,0, 13,10,0, 13,16,0, 14,4,0, 14,4,1, 14,9,1, 15,3,0, 15,8,0, 15,19,1, 16,2,1, 16,7,1, 16,13,1, 16,18,0, 17,6,1, 17,12,0, 18,0,1, 18,5,1, 19,4,0, 19,4,1, 19,9,0, 19,15,0, 19,21,0, 19,22,0, 20,19,1, 21,19,1, 22,19,1, 3026 // Length and number of words of that length 3027 3, 16, 3028 // Coordinates where words start and direction (0 = horizontal) 3029 0,8,0, 0,14,0, 0,19,0, 3,16,0, 3,20,1, 8,0,1, 8,20,1, 10,3,1, 12,17,1, 14,0,1, 14,20,1, 17,6,0, 19,0,1, 20,3,0, 20,8,0, 20,14,0, 3030 // End marker 3031 0 3032 }; 3033 3034 3035 /* 3036 * Name: 23.08, 23 x 23 3037 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3038 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3039 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3040 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 3041 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 3042 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 3043 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 3044 * (* * * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 3045 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 3046 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 3047 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 3048 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 3049 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 3050 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 3051 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 3052 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * * *) 3053 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 3054 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 3055 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 3056 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 3057 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3058 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3059 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3060 */ 3061 const int g47[] = { 3062 // Width and height of crossword grid 3063 23, 23, 3064 // Number of black fields 3065 75, 3066 // Black field coordinates 3067 0,7, 0,15, 1,7, 1,15, 2,7, 2,15, 3,3, 3,8, 3,13, 3,19, 4,4, 4,12, 4,18, 5,5, 5,10, 5,17, 6,6, 6,11, 6,16, 7,0, 7,1, 7,2, 7,9, 7,15, 7,20, 7,21, 7,22, 8,3, 8,8, 8,14, 9,7, 9,13, 9,19, 10,5, 10,12, 10,18, 11,6, 11,11, 11,16, 12,4, 12,10, 12,17, 13,3, 13,9, 13,15, 14,8, 14,14, 14,19, 15,0, 15,1, 15,2, 15,7, 15,13, 15,20, 15,21, 15,22, 16,6, 16,11, 16,16, 17,5, 17,12, 17,17, 18,4, 18,10, 18,18, 19,3, 19,9, 19,14, 19,19, 20,7, 20,15, 21,7, 21,15, 22,7, 22,15, 3068 // Length and number of words of that length 3069 8, 4, 3070 // Coordinates where words start and direction (0 = horizontal) 3071 0,14,0, 8,15,1, 14,0,1, 15,8,0, 3072 // Length and number of words of that length 3073 7, 44, 3074 // Coordinates where words start and direction (0 = horizontal) 3075 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,8,1, 0,9,0, 0,16,1, 0,20,0, 0,21,0, 0,22,0, 1,0,1, 1,8,1, 1,16,1, 2,0,1, 2,8,1, 2,16,1, 4,5,1, 5,4,0, 8,0,0, 8,1,0, 8,2,0, 8,20,0, 8,21,0, 8,22,0, 9,0,1, 11,18,0, 13,16,1, 16,0,0, 16,1,0, 16,2,0, 16,13,0, 16,20,0, 16,21,0, 16,22,0, 18,11,1, 20,0,1, 20,8,1, 20,16,1, 21,0,1, 21,8,1, 21,16,1, 22,0,1, 22,8,1, 22,16,1, 3076 // Length and number of words of that length 3077 6, 24, 3078 // Coordinates where words start and direction (0 = horizontal) 3079 0,6,0, 0,11,0, 0,16,0, 3,7,0, 5,11,1, 6,0,1, 6,10,0, 6,17,0, 6,17,1, 7,3,1, 10,6,1, 11,0,1, 11,5,0, 11,12,0, 11,17,1, 12,11,1, 14,15,0, 15,14,1, 16,0,1, 16,17,1, 17,6,0, 17,6,1, 17,11,0, 17,16,0, 3080 // Length and number of words of that length 3081 5, 40, 3082 // Coordinates where words start and direction (0 = horizontal) 3083 0,5,0, 0,10,0, 0,17,0, 3,14,1, 4,13,0, 4,13,1, 4,19,0, 5,0,1, 5,12,0, 5,18,0, 5,18,1, 7,10,1, 8,9,0, 8,9,1, 8,15,0, 9,8,0, 9,8,1, 9,14,0, 9,14,1, 10,0,1, 10,7,0, 10,13,0, 10,13,1, 12,5,1, 12,18,1, 13,4,0, 13,4,1, 13,10,0, 13,10,1, 14,3,0, 14,9,0, 14,9,1, 15,8,1, 17,0,1, 17,18,1, 18,5,0, 18,5,1, 18,12,0, 18,17,0, 19,4,1, 3084 // Length and number of words of that length 3085 4, 44, 3086 // Coordinates where words start and direction (0 = horizontal) 3087 0,4,0, 0,12,0, 0,18,0, 3,4,1, 3,9,1, 3,15,0, 4,0,1, 4,3,0, 4,8,0, 4,19,1, 5,6,1, 6,5,0, 6,7,1, 6,12,1, 7,6,0, 7,11,0, 7,16,0, 7,16,1, 8,4,1, 9,3,0, 10,19,0, 10,19,1, 11,7,1, 11,12,1, 12,0,1, 12,6,0, 12,11,0, 12,16,0, 13,17,0, 14,15,1, 15,3,1, 15,14,0, 15,19,0, 16,7,0, 16,7,1, 16,12,1, 17,13,1, 18,0,1, 18,19,1, 19,4,0, 19,10,0, 19,10,1, 19,15,1, 19,18,0, 3088 // Length and number of words of that length 3089 3, 16, 3090 // Coordinates where words start and direction (0 = horizontal) 3091 0,3,0, 0,8,0, 0,13,0, 0,19,0, 3,0,1, 3,20,1, 8,0,1, 9,20,1, 13,0,1, 14,20,1, 19,0,1, 19,20,1, 20,3,0, 20,9,0, 20,14,0, 20,19,0, 3092 // End marker 3093 0 3094 }; 3095 3096 3097 /* 3098 * Name: 23.09, 23 x 23 3099 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3100 * (_ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3101 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 3102 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 3103 * (_ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 3104 * (* * * _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ *) 3105 * (_ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3106 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 3107 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3108 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 3109 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 3110 * (* * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * *) 3111 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 3112 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 3113 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3114 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 3115 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _) 3116 * (* _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ * * *) 3117 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _) 3118 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 3119 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 3120 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _) 3121 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3122 */ 3123 const int g48[] = { 3124 // Width and height of crossword grid 3125 23, 23, 3126 // Number of black fields 3127 76, 3128 // Black field coordinates 3129 0,5, 0,11, 0,17, 1,5, 1,11, 2,5, 3,6, 3,12, 3,18, 4,3, 4,9, 4,13, 4,17, 5,0, 5,4, 5,8, 5,14, 5,20, 5,21, 5,22, 6,7, 6,15, 6,19, 7,6, 7,10, 7,16, 8,5, 8,11, 8,17, 9,4, 9,12, 9,18, 10,3, 10,9, 10,15, 11,0, 11,1, 11,8, 11,14, 11,21, 11,22, 12,7, 12,13, 12,19, 13,4, 13,10, 13,18, 14,5, 14,11, 14,17, 15,6, 15,12, 15,16, 16,3, 16,7, 16,15, 17,0, 17,1, 17,2, 17,8, 17,14, 17,18, 17,22, 18,5, 18,9, 18,13, 18,19, 19,4, 19,10, 19,16, 20,17, 21,11, 21,17, 22,5, 22,11, 22,17, 3130 // Length and number of words of that length 3131 17, 4, 3132 // Coordinates where words start and direction (0 = horizontal) 3133 0,2,0, 2,6,1, 6,20,0, 20,0,1, 3134 // Length and number of words of that length 3135 11, 4, 3136 // Coordinates where words start and direction (0 = horizontal) 3137 0,1,0, 1,12,1, 12,21,0, 21,0,1, 3138 // Length and number of words of that length 3139 7, 16, 3140 // Coordinates where words start and direction (0 = horizontal) 3141 0,10,0, 0,16,0, 5,13,0, 6,0,1, 6,8,1, 8,6,0, 8,16,0, 9,5,1, 10,16,1, 11,9,0, 12,0,1, 13,11,1, 16,6,0, 16,8,1, 16,12,0, 16,16,1, 3142 // Length and number of words of that length 3143 6, 16, 3144 // Coordinates where words start and direction (0 = horizontal) 3145 0,7,0, 0,15,0, 0,19,0, 2,11,0, 3,0,1, 7,0,1, 7,17,1, 11,2,1, 11,15,1, 15,0,1, 15,11,0, 15,17,1, 17,3,0, 17,7,0, 17,15,0, 19,17,1, 3146 // Length and number of words of that length 3147 5, 86, 3148 // Coordinates where words start and direction (0 = horizontal) 3149 0,0,0, 0,0,1, 0,4,0, 0,6,1, 0,8,0, 0,12,1, 0,14,0, 0,18,1, 0,20,0, 0,21,0, 0,22,0, 1,0,1, 1,6,1, 2,0,1, 3,5,0, 3,7,1, 3,13,1, 4,4,1, 4,12,0, 4,18,0, 4,18,1, 5,3,0, 5,9,0, 5,9,1, 5,15,1, 6,0,0, 6,8,0, 6,14,0, 6,21,0, 6,22,0, 7,7,0, 7,11,1, 7,19,0, 8,0,1, 8,6,1, 8,10,0, 8,12,1, 8,18,1, 9,5,0, 9,11,0, 9,13,1, 9,17,0, 10,4,1, 10,10,1, 10,12,0, 11,3,0, 11,9,1, 11,15,0, 12,0,0, 12,1,0, 12,8,0, 12,8,1, 12,14,0, 12,14,1, 12,22,0, 13,5,1, 13,13,0, 13,19,0, 14,0,1, 14,4,0, 14,6,1, 14,10,0, 14,12,1, 14,18,1, 15,7,1, 15,17,0, 17,3,1, 17,9,1, 18,0,0, 18,0,1, 18,1,0, 18,2,0, 18,8,0, 18,14,0, 18,14,1, 18,18,0, 18,22,0, 19,5,1, 19,11,1, 20,18,1, 21,12,1, 21,18,1, 22,0,1, 22,6,1, 22,12,1, 22,18,1, 3150 // Length and number of words of that length 3151 4, 12, 3152 // Coordinates where words start and direction (0 = horizontal) 3153 0,3,0, 0,9,0, 0,13,0, 3,19,1, 9,0,1, 9,19,1, 13,0,1, 13,19,1, 19,0,1, 19,9,0, 19,13,0, 19,19,0, 3154 // Length and number of words of that length 3155 3, 36, 3156 // Coordinates where words start and direction (0 = horizontal) 3157 0,6,0, 0,12,0, 0,18,0, 1,17,0, 4,0,1, 4,6,0, 4,10,1, 4,14,1, 5,1,1, 5,5,1, 5,17,0, 6,4,0, 6,16,1, 6,20,1, 7,7,1, 7,15,0, 10,0,1, 10,4,0, 10,18,0, 12,20,1, 13,7,0, 14,18,0, 15,5,0, 15,13,1, 16,0,1, 16,4,1, 16,16,0, 17,15,1, 17,19,1, 18,6,1, 18,10,1, 18,20,1, 19,5,0, 20,4,0, 20,10,0, 20,16,0, 3158 // End marker 3159 0 3160 }; 3161 3162 3163 /* 3164 * Name: 23.10, 23 x 23 3165 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ * _ _ _ _ _) 3166 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 3167 * (_ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 3168 * (_ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 3169 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3170 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ *) 3171 * (* * _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 3172 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3173 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 3174 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ * * *) 3175 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 3176 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 3177 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 3178 * (* * * _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 3179 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 3180 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3181 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ * *) 3182 * (* _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 3183 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 3184 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _) 3185 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _) 3186 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 3187 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 3188 */ 3189 const int g49[] = { 3190 // Width and height of crossword grid 3191 23, 23, 3192 // Number of black fields 3193 67, 3194 // Black field coordinates 3195 0,6, 0,13, 0,17, 1,6, 1,13, 2,13, 3,3, 3,12, 3,19, 4,5, 4,11, 4,17, 5,4, 5,10, 5,18, 5,22, 6,0, 6,1, 6,6, 6,16, 7,7, 7,15, 8,8, 8,14, 9,9, 9,13, 9,20, 9,21, 9,22, 10,5, 10,12, 10,19, 11,4, 11,11, 11,18, 12,3, 12,10, 12,17, 13,0, 13,1, 13,2, 13,9, 13,13, 14,8, 14,14, 15,7, 15,15, 16,6, 16,16, 16,21, 16,22, 17,0, 17,4, 17,12, 17,18, 18,5, 18,11, 18,17, 19,3, 19,10, 19,19, 20,9, 21,9, 21,16, 22,5, 22,9, 22,16, 3196 // Length and number of words of that length 3197 13, 4, 3198 // Coordinates where words start and direction (0 = horizontal) 3199 0,2,0, 2,0,1, 10,20,0, 20,10,1, 3200 // Length and number of words of that length 3201 9, 16, 3202 // Coordinates where words start and direction (0 = horizontal) 3203 0,9,0, 0,20,0, 0,21,0, 1,14,1, 2,14,1, 6,7,1, 7,6,0, 7,16,0, 9,0,1, 13,14,1, 14,1,0, 14,2,0, 14,13,0, 16,7,1, 20,0,1, 21,0,1, 3204 // Length and number of words of that length 3205 8, 12, 3206 // Coordinates where words start and direction (0 = horizontal) 3207 0,8,0, 0,14,0, 3,4,1, 4,3,0, 8,0,1, 8,15,1, 11,19,0, 14,0,1, 14,15,1, 15,8,0, 15,14,0, 19,11,1, 3208 // Length and number of words of that length 3209 7, 16, 3210 // Coordinates where words start and direction (0 = horizontal) 3211 0,7,0, 0,15,0, 5,11,1, 5,17,0, 7,0,1, 7,8,1, 7,16,1, 8,7,0, 8,15,0, 11,5,0, 15,0,1, 15,8,1, 15,16,1, 16,7,0, 16,15,0, 17,5,1, 3212 // Length and number of words of that length 3213 6, 40, 3214 // Coordinates where words start and direction (0 = horizontal) 3215 0,0,0, 0,0,1, 0,1,0, 0,7,1, 0,16,0, 1,0,1, 1,7,1, 3,13,0, 3,13,1, 4,12,0, 4,19,0, 5,11,0, 6,10,0, 6,17,1, 7,0,0, 7,1,0, 9,14,1, 10,6,1, 10,13,1, 10,21,0, 10,22,0, 11,5,1, 11,12,0, 11,12,1, 12,4,1, 12,11,0, 12,11,1, 13,3,0, 13,3,1, 13,10,0, 14,9,0, 16,0,1, 17,6,0, 17,21,0, 17,22,0, 19,4,1, 21,10,1, 21,17,1, 22,10,1, 22,17,1, 3216 // Length and number of words of that length 3217 5, 32, 3218 // Coordinates where words start and direction (0 = horizontal) 3219 0,4,0, 0,10,0, 0,18,0, 0,18,1, 0,22,0, 4,0,1, 4,6,1, 4,12,1, 4,18,1, 5,5,0, 5,5,1, 6,4,0, 6,18,0, 8,9,1, 9,8,0, 9,14,0, 10,0,1, 12,4,0, 12,18,0, 12,18,1, 13,17,0, 14,9,1, 17,13,1, 18,0,0, 18,0,1, 18,4,0, 18,6,1, 18,12,0, 18,12,1, 18,18,0, 18,18,1, 22,0,1, 3220 // Length and number of words of that length 3221 4, 12, 3222 // Coordinates where words start and direction (0 = horizontal) 3223 0,5,0, 0,11,0, 2,6,0, 5,0,1, 6,2,1, 11,0,1, 11,19,1, 16,17,1, 17,16,0, 17,19,1, 19,11,0, 19,17,0, 3224 // Length and number of words of that length 3225 3, 24, 3226 // Coordinates where words start and direction (0 = horizontal) 3227 0,3,0, 0,12,0, 0,14,1, 0,19,0, 1,17,0, 3,0,1, 3,20,1, 5,19,1, 6,22,0, 9,10,1, 10,9,0, 10,13,0, 10,20,1, 12,0,1, 13,10,1, 14,0,0, 17,1,1, 19,0,1, 19,5,0, 19,20,1, 20,3,0, 20,10,0, 20,19,0, 22,6,1, 3228 // End marker 3229 0 3230 }; 3231 3232 3233 /* 3234 * Name: puzzle01, 2 x 2 3235 * (_ *) 3236 * (_ _) 3237 */ 3238 const int g50[] = { 3239 // Width and height of crossword grid 3240 2, 2, 3241 // Number of black fields 3242 1, 3243 // Black field coordinates 3244 1,0, 3245 // Length and number of words of that length 3246 2, 2, 3247 // Coordinates where words start and direction (0 = horizontal) 3248 0,0,1, 0,1,0, 3249 // Length and number of words of that length 3250 1, 2, 3251 // Coordinates where words start and direction (0 = horizontal) 3252 0,0,0, 1,1,1, 3253 // End marker 3254 0 3255 }; 3256 3257 3258 /* 3259 * Name: puzzle02, 3 x 3 3260 * (* _ _) 3261 * (_ _ _) 3262 * (_ _ _) 3263 */ 3264 const int g51[] = { 3265 // Width and height of crossword grid 3266 3, 3, 3267 // Number of black fields 3268 1, 3269 // Black field coordinates 3270 0,0, 3271 // Length and number of words of that length 3272 3, 4, 3273 // Coordinates where words start and direction (0 = horizontal) 3274 0,1,0, 0,2,0, 1,0,1, 2,0,1, 3275 // Length and number of words of that length 3276 2, 2, 3277 // Coordinates where words start and direction (0 = horizontal) 3278 0,1,1, 1,0,0, 3279 // End marker 3280 0 3281 }; 3282 3283 3284 /* 3285 * Name: puzzle03, 4 x 4 3286 * (_ _ _ *) 3287 * (_ _ _ _) 3288 * (_ _ _ _) 3289 * (* _ _ _) 3290 */ 3291 const int g52[] = { 3292 // Width and height of crossword grid 3293 4, 4, 3294 // Number of black fields 3295 2, 3296 // Black field coordinates 3297 0,3, 3,0, 3298 // Length and number of words of that length 3299 4, 4, 3300 // Coordinates where words start and direction (0 = horizontal) 3301 0,1,0, 0,2,0, 1,0,1, 2,0,1, 3302 // Length and number of words of that length 3303 3, 4, 3304 // Coordinates where words start and direction (0 = horizontal) 3305 0,0,0, 0,0,1, 1,3,0, 3,1,1, 3306 // End marker 3307 0 3308 }; 3309 3310 3311 /* 3312 * Name: puzzle04, 5 x 5 3313 * (_ _ _ * *) 3314 * (_ _ _ _ *) 3315 * (_ _ _ _ _) 3316 * (* _ _ _ _) 3317 * (* * _ _ _) 3318 */ 3319 const int g53[] = { 3320 // Width and height of crossword grid 3321 5, 5, 3322 // Number of black fields 3323 6, 3324 // Black field coordinates 3325 0,3, 0,4, 1,4, 3,0, 4,0, 4,1, 3326 // Length and number of words of that length 3327 5, 2, 3328 // Coordinates where words start and direction (0 = horizontal) 3329 0,2,0, 2,0,1, 3330 // Length and number of words of that length 3331 4, 4, 3332 // Coordinates where words start and direction (0 = horizontal) 3333 0,1,0, 1,0,1, 1,3,0, 3,1,1, 3334 // Length and number of words of that length 3335 3, 4, 3336 // Coordinates where words start and direction (0 = horizontal) 3337 0,0,0, 0,0,1, 2,4,0, 4,2,1, 3338 // End marker 3339 0 3340 }; 3341 3342 3343 /* 3344 * Name: puzzle05, 5 x 5 3345 * (_ _ _ _ *) 3346 * (_ _ _ * _) 3347 * (_ _ _ _ _) 3348 * (_ * _ _ _) 3349 * (* _ _ _ _) 3350 */ 3351 const int g54[] = { 3352 // Width and height of crossword grid 3353 5, 5, 3354 // Number of black fields 3355 4, 3356 // Black field coordinates 3357 0,4, 1,3, 3,1, 4,0, 3358 // Length and number of words of that length 3359 5, 2, 3360 // Coordinates where words start and direction (0 = horizontal) 3361 0,2,0, 2,0,1, 3362 // Length and number of words of that length 3363 4, 4, 3364 // Coordinates where words start and direction (0 = horizontal) 3365 0,0,0, 0,0,1, 1,4,0, 4,1,1, 3366 // Length and number of words of that length 3367 3, 4, 3368 // Coordinates where words start and direction (0 = horizontal) 3369 0,1,0, 1,0,1, 2,3,0, 3,2,1, 3370 // Length and number of words of that length 3371 1, 4, 3372 // Coordinates where words start and direction (0 = horizontal) 3373 0,3,0, 1,4,1, 3,0,1, 4,1,0, 3374 // End marker 3375 0 3376 }; 3377 3378 3379 /* 3380 * Name: puzzle06, 5 x 5 3381 * (_ _ _ _ _) 3382 * (_ _ _ * _) 3383 * (_ _ _ _ _) 3384 * (_ * _ _ _) 3385 * (_ _ _ _ _) 3386 */ 3387 const int g55[] = { 3388 // Width and height of crossword grid 3389 5, 5, 3390 // Number of black fields 3391 2, 3392 // Black field coordinates 3393 1,3, 3,1, 3394 // Length and number of words of that length 3395 5, 6, 3396 // Coordinates where words start and direction (0 = horizontal) 3397 0,0,0, 0,0,1, 0,2,0, 0,4,0, 2,0,1, 4,0,1, 3398 // Length and number of words of that length 3399 3, 4, 3400 // Coordinates where words start and direction (0 = horizontal) 3401 0,1,0, 1,0,1, 2,3,0, 3,2,1, 3402 // Length and number of words of that length 3403 1, 4, 3404 // Coordinates where words start and direction (0 = horizontal) 3405 0,3,0, 1,4,1, 3,0,1, 4,1,0, 3406 // End marker 3407 0 3408 }; 3409 3410 3411 /* 3412 * Name: puzzle07, 6 x 6 3413 * (_ _ _ _ _ *) 3414 * (_ * _ _ _ _) 3415 * (_ _ _ * _ _) 3416 * (_ _ * _ _ _) 3417 * (_ _ _ _ * _) 3418 * (* _ _ _ _ _) 3419 */ 3420 const int g56[] = { 3421 // Width and height of crossword grid 3422 6, 6, 3423 // Number of black fields 3424 6, 3425 // Black field coordinates 3426 0,5, 1,1, 2,3, 3,2, 4,4, 5,0, 3427 // Length and number of words of that length 3428 5, 4, 3429 // Coordinates where words start and direction (0 = horizontal) 3430 0,0,0, 0,0,1, 1,5,0, 5,1,1, 3431 // Length and number of words of that length 3432 4, 4, 3433 // Coordinates where words start and direction (0 = horizontal) 3434 0,4,0, 1,2,1, 2,1,0, 4,0,1, 3435 // Length and number of words of that length 3436 3, 4, 3437 // Coordinates where words start and direction (0 = horizontal) 3438 0,2,0, 2,0,1, 3,3,0, 3,3,1, 3439 // Length and number of words of that length 3440 2, 4, 3441 // Coordinates where words start and direction (0 = horizontal) 3442 0,3,0, 2,4,1, 3,0,1, 4,2,0, 3443 // Length and number of words of that length 3444 1, 4, 3445 // Coordinates where words start and direction (0 = horizontal) 3446 0,1,0, 1,0,1, 4,5,1, 5,4,0, 3447 // End marker 3448 0 3449 }; 3450 3451 3452 /* 3453 * Name: puzzle08, 7 x 7 3454 * (_ _ _ _ * _ _) 3455 * (_ _ _ * _ _ _) 3456 * (_ _ * _ _ _ *) 3457 * (_ _ _ _ _ _ _) 3458 * (* _ _ _ * _ _) 3459 * (_ _ _ * _ _ _) 3460 * (_ _ * _ _ _ _) 3461 */ 3462 const int g57[] = { 3463 // Width and height of crossword grid 3464 7, 7, 3465 // Number of black fields 3466 8, 3467 // Black field coordinates 3468 0,4, 2,2, 2,6, 3,1, 3,5, 4,0, 4,4, 6,2, 3469 // Length and number of words of that length 3470 7, 3, 3471 // Coordinates where words start and direction (0 = horizontal) 3472 0,3,0, 1,0,1, 5,0,1, 3473 // Length and number of words of that length 3474 4, 4, 3475 // Coordinates where words start and direction (0 = horizontal) 3476 0,0,0, 0,0,1, 3,6,0, 6,3,1, 3477 // Length and number of words of that length 3478 3, 9, 3479 // Coordinates where words start and direction (0 = horizontal) 3480 0,1,0, 0,5,0, 1,4,0, 2,3,1, 3,2,0, 3,2,1, 4,1,0, 4,1,1, 4,5,0, 3481 // Length and number of words of that length 3482 2, 8, 3483 // Coordinates where words start and direction (0 = horizontal) 3484 0,2,0, 0,5,1, 0,6,0, 2,0,1, 4,5,1, 5,0,0, 5,4,0, 6,0,1, 3485 // Length and number of words of that length 3486 1, 2, 3487 // Coordinates where words start and direction (0 = horizontal) 3488 3,0,1, 3,6,1, 3489 // End marker 3490 0 3491 }; 3492 3493 3494 /* 3495 * Name: puzzle09, 7 x 7 3496 * (* * _ _ _ * *) 3497 * (* _ _ _ _ _ *) 3498 * (_ _ _ * _ _ _) 3499 * (_ _ _ _ _ _ _) 3500 * (_ _ _ * _ _ _) 3501 * (* _ _ _ _ _ *) 3502 * (* * _ _ _ * *) 3503 */ 3504 const int g58[] = { 3505 // Width and height of crossword grid 3506 7, 7, 3507 // Number of black fields 3508 14, 3509 // Black field coordinates 3510 0,0, 0,1, 0,5, 0,6, 1,0, 1,6, 3,2, 3,4, 5,0, 5,6, 6,0, 6,1, 6,5, 6,6, 3511 // Length and number of words of that length 3512 7, 3, 3513 // Coordinates where words start and direction (0 = horizontal) 3514 0,3,0, 2,0,1, 4,0,1, 3515 // Length and number of words of that length 3516 5, 4, 3517 // Coordinates where words start and direction (0 = horizontal) 3518 1,1,0, 1,1,1, 1,5,0, 5,1,1, 3519 // Length and number of words of that length 3520 3, 8, 3521 // Coordinates where words start and direction (0 = horizontal) 3522 0,2,0, 0,2,1, 0,4,0, 2,0,0, 2,6,0, 4,2,0, 4,4,0, 6,2,1, 3523 // Length and number of words of that length 3524 2, 2, 3525 // Coordinates where words start and direction (0 = horizontal) 3526 3,0,1, 3,5,1, 3527 // Length and number of words of that length 3528 1, 1, 3529 // Coordinates where words start and direction (0 = horizontal) 3530 3,3,1, 3531 // End marker 3532 0 3533 }; 3534 3535 3536 /* 3537 * Name: puzzle10, 7 x 7 3538 * (_ _ _ * _ _ _) 3539 * (_ _ _ * _ _ _) 3540 * (_ _ _ _ _ _ _) 3541 * (* * _ * _ * *) 3542 * (_ _ _ _ _ _ _) 3543 * (_ _ _ * _ _ _) 3544 * (_ _ _ * _ _ _) 3545 */ 3546 const int g59[] = { 3547 // Width and height of crossword grid 3548 7, 7, 3549 // Number of black fields 3550 9, 3551 // Black field coordinates 3552 0,3, 1,3, 3,0, 3,1, 3,3, 3,5, 3,6, 5,3, 6,3, 3553 // Length and number of words of that length 3554 7, 4, 3555 // Coordinates where words start and direction (0 = horizontal) 3556 0,2,0, 0,4,0, 2,0,1, 4,0,1, 3557 // Length and number of words of that length 3558 3, 16, 3559 // Coordinates where words start and direction (0 = horizontal) 3560 0,0,0, 0,0,1, 0,1,0, 0,4,1, 0,5,0, 0,6,0, 1,0,1, 1,4,1, 4,0,0, 4,1,0, 4,5,0, 4,6,0, 5,0,1, 5,4,1, 6,0,1, 6,4,1, 3561 // Length and number of words of that length 3562 1, 4, 3563 // Coordinates where words start and direction (0 = horizontal) 3564 2,3,0, 3,2,1, 3,4,1, 4,3,0, 3565 // End marker 3566 0 3567 }; 3568 3569 3570 /* 3571 * Name: puzzle11, 7 x 7 3572 * (* * _ _ _ _ *) 3573 * (* _ _ _ _ _ _) 3574 * (_ _ _ * _ _ _) 3575 * (_ _ _ * _ _ _) 3576 * (_ _ _ * _ _ _) 3577 * (_ _ _ _ _ _ *) 3578 * (* _ _ _ _ * *) 3579 */ 3580 const int g60[] = { 3581 // Width and height of crossword grid 3582 7, 7, 3583 // Number of black fields 3584 11, 3585 // Black field coordinates 3586 0,0, 0,1, 0,6, 1,0, 3,2, 3,3, 3,4, 5,6, 6,0, 6,5, 6,6, 3587 // Length and number of words of that length 3588 7, 2, 3589 // Coordinates where words start and direction (0 = horizontal) 3590 2,0,1, 4,0,1, 3591 // Length and number of words of that length 3592 6, 4, 3593 // Coordinates where words start and direction (0 = horizontal) 3594 0,5,0, 1,1,0, 1,1,1, 5,0,1, 3595 // Length and number of words of that length 3596 4, 4, 3597 // Coordinates where words start and direction (0 = horizontal) 3598 0,2,1, 1,6,0, 2,0,0, 6,1,1, 3599 // Length and number of words of that length 3600 3, 6, 3601 // Coordinates where words start and direction (0 = horizontal) 3602 0,2,0, 0,3,0, 0,4,0, 4,2,0, 4,3,0, 4,4,0, 3603 // Length and number of words of that length 3604 2, 2, 3605 // Coordinates where words start and direction (0 = horizontal) 3606 3,0,1, 3,5,1, 3607 // End marker 3608 0 3609 }; 3610 3611 3612 /* 3613 * Name: puzzle12, 8 x 8 3614 * (_ _ _ _ * _ _ _) 3615 * (_ _ _ _ * _ _ _) 3616 * (_ _ _ _ * _ _ _) 3617 * (* * * _ _ _ _ _) 3618 * (_ _ _ _ _ * * *) 3619 * (_ _ _ * _ _ _ _) 3620 * (_ _ _ * _ _ _ _) 3621 * (_ _ _ * _ _ _ _) 3622 */ 3623 const int g61[] = { 3624 // Width and height of crossword grid 3625 8, 8, 3626 // Number of black fields 3627 12, 3628 // Black field coordinates 3629 0,3, 1,3, 2,3, 3,5, 3,6, 3,7, 4,0, 4,1, 4,2, 5,4, 6,4, 7,4, 3630 // Length and number of words of that length 3631 5, 4, 3632 // Coordinates where words start and direction (0 = horizontal) 3633 0,4,0, 3,0,1, 3,3,0, 4,3,1, 3634 // Length and number of words of that length 3635 4, 12, 3636 // Coordinates where words start and direction (0 = horizontal) 3637 0,0,0, 0,1,0, 0,2,0, 0,4,1, 1,4,1, 2,4,1, 4,5,0, 4,6,0, 4,7,0, 5,0,1, 6,0,1, 7,0,1, 3638 // Length and number of words of that length 3639 3, 12, 3640 // Coordinates where words start and direction (0 = horizontal) 3641 0,0,1, 0,5,0, 0,6,0, 0,7,0, 1,0,1, 2,0,1, 5,0,0, 5,1,0, 5,2,0, 5,5,1, 6,5,1, 7,5,1, 3642 // End marker 3643 0 3644 }; 3645 3646 3647 /* 3648 * Name: puzzle13, 9 x 9 3649 * (_ _ _ _ * _ _ _ _) 3650 * (_ _ _ _ * _ _ _ _) 3651 * (_ _ _ * * * _ _ _) 3652 * (_ _ _ _ _ _ _ _ _) 3653 * (* * * _ _ _ * * *) 3654 * (_ _ _ _ _ _ _ _ _) 3655 * (_ _ _ * * * _ _ _) 3656 * (_ _ _ _ * _ _ _ _) 3657 * (_ _ _ _ * _ _ _ _) 3658 */ 3659 const int g62[] = { 3660 // Width and height of crossword grid 3661 9, 9, 3662 // Number of black fields 3663 16, 3664 // Black field coordinates 3665 0,4, 1,4, 2,4, 3,2, 3,6, 4,0, 4,1, 4,2, 4,6, 4,7, 4,8, 5,2, 5,6, 6,4, 7,4, 8,4, 3666 // Length and number of words of that length 3667 9, 2, 3668 // Coordinates where words start and direction (0 = horizontal) 3669 0,3,0, 0,5,0, 3670 // Length and number of words of that length 3671 4, 20, 3672 // Coordinates where words start and direction (0 = horizontal) 3673 0,0,0, 0,0,1, 0,1,0, 0,5,1, 0,7,0, 0,8,0, 1,0,1, 1,5,1, 2,0,1, 2,5,1, 5,0,0, 5,1,0, 5,7,0, 5,8,0, 6,0,1, 6,5,1, 7,0,1, 7,5,1, 8,0,1, 8,5,1, 3674 // Length and number of words of that length 3675 3, 8, 3676 // Coordinates where words start and direction (0 = horizontal) 3677 0,2,0, 0,6,0, 3,3,1, 3,4,0, 4,3,1, 5,3,1, 6,2,0, 6,6,0, 3678 // Length and number of words of that length 3679 2, 4, 3680 // Coordinates where words start and direction (0 = horizontal) 3681 3,0,1, 3,7,1, 5,0,1, 5,7,1, 3682 // End marker 3683 0 3684 }; 3685 3686 3687 /* 3688 * Name: puzzle14, 10 x 10 3689 * (* * * _ _ _ _ * * *) 3690 * (* * _ _ _ _ _ * * *) 3691 * (* _ _ _ _ _ _ _ * *) 3692 * (_ _ _ _ _ * * _ _ _) 3693 * (_ _ _ _ * * * _ _ _) 3694 * (_ _ _ * * * _ _ _ _) 3695 * (_ _ _ * * _ _ _ _ _) 3696 * (* * _ _ _ _ _ _ _ *) 3697 * (* * * _ _ _ _ _ * *) 3698 * (* * * _ _ _ _ * * *) 3699 */ 3700 const int g63[] = { 3701 // Width and height of crossword grid 3702 10, 10, 3703 // Number of black fields 3704 38, 3705 // Black field coordinates 3706 0,0, 0,1, 0,2, 0,7, 0,8, 0,9, 1,0, 1,1, 1,7, 1,8, 1,9, 2,0, 2,8, 2,9, 3,5, 3,6, 4,4, 4,5, 4,6, 5,3, 5,4, 5,5, 6,3, 6,4, 7,0, 7,1, 7,9, 8,0, 8,1, 8,2, 8,8, 8,9, 9,0, 9,1, 9,2, 9,7, 9,8, 9,9, 3707 // Length and number of words of that length 3708 7, 4, 3709 // Coordinates where words start and direction (0 = horizontal) 3710 1,2,0, 2,1,1, 2,7,0, 7,2,1, 3711 // Length and number of words of that length 3712 5, 8, 3713 // Coordinates where words start and direction (0 = horizontal) 3714 0,3,0, 1,2,1, 2,1,0, 3,0,1, 3,8,0, 5,6,0, 6,5,1, 8,3,1, 3715 // Length and number of words of that length 3716 4, 8, 3717 // Coordinates where words start and direction (0 = horizontal) 3718 0,3,1, 0,4,0, 3,0,0, 3,9,0, 4,0,1, 5,6,1, 6,5,0, 9,3,1, 3719 // Length and number of words of that length 3720 3, 8, 3721 // Coordinates where words start and direction (0 = horizontal) 3722 0,5,0, 0,6,0, 3,7,1, 4,7,1, 5,0,1, 6,0,1, 7,3,0, 7,4,0, 3723 // End marker 3724 0 3725 }; 3726 3727 3728 /* 3729 * Name: puzzle15, 11 x 11 3730 * (_ _ _ _ * * * _ _ _ _) 3731 * (_ _ _ _ _ * _ _ _ _ _) 3732 * (_ _ _ _ _ * _ _ _ _ _) 3733 * (_ _ _ * _ _ _ * _ _ _) 3734 * (* _ _ _ _ _ * _ _ _ *) 3735 * (* * * _ _ _ _ _ * * *) 3736 * (* _ _ _ * _ _ _ _ _ *) 3737 * (_ _ _ * _ _ _ * _ _ _) 3738 * (_ _ _ _ _ * _ _ _ _ _) 3739 * (_ _ _ _ _ * _ _ _ _ _) 3740 * (_ _ _ _ * * * _ _ _ _) 3741 */ 3742 const int g64[] = { 3743 // Width and height of crossword grid 3744 11, 11, 3745 // Number of black fields 3746 26, 3747 // Black field coordinates 3748 0,4, 0,5, 0,6, 1,5, 2,5, 3,3, 3,7, 4,0, 4,6, 4,10, 5,0, 5,1, 5,2, 5,8, 5,9, 5,10, 6,0, 6,4, 6,10, 7,3, 7,7, 8,5, 9,5, 10,4, 10,5, 10,6, 3749 // Length and number of words of that length 3750 5, 22, 3751 // Coordinates where words start and direction (0 = horizontal) 3752 0,1,0, 0,2,0, 0,8,0, 0,9,0, 1,0,1, 1,4,0, 1,6,1, 2,0,1, 2,6,1, 3,5,0, 4,1,1, 5,3,1, 5,6,0, 6,1,0, 6,2,0, 6,5,1, 6,8,0, 6,9,0, 8,0,1, 8,6,1, 9,0,1, 9,6,1, 3753 // Length and number of words of that length 3754 4, 8, 3755 // Coordinates where words start and direction (0 = horizontal) 3756 0,0,0, 0,0,1, 0,7,1, 0,10,0, 7,0,0, 7,10,0, 10,0,1, 10,7,1, 3757 // Length and number of words of that length 3758 3, 16, 3759 // Coordinates where words start and direction (0 = horizontal) 3760 0,3,0, 0,7,0, 1,6,0, 3,0,1, 3,4,1, 3,8,1, 4,3,0, 4,7,0, 4,7,1, 6,1,1, 7,0,1, 7,4,0, 7,4,1, 7,8,1, 8,3,0, 8,7,0, 3761 // End marker 3762 0 3763 }; 3764 3765 3766 /* 3767 * Name: puzzle16, 13 x 13 3768 * (_ _ _ * _ _ _ _ * _ _ _ _) 3769 * (_ _ _ * _ _ _ _ * _ _ _ _) 3770 * (_ _ _ * _ _ _ _ * _ _ _ _) 3771 * (_ _ _ _ _ _ * _ _ _ * * *) 3772 * (* * * _ _ _ * _ _ _ _ _ _) 3773 * (_ _ _ _ _ * _ _ _ * _ _ _) 3774 * (_ _ _ _ * _ _ _ * _ _ _ _) 3775 * (_ _ _ * _ _ _ * _ _ _ _ _) 3776 * (_ _ _ _ _ _ * _ _ _ * * *) 3777 * (* * * _ _ _ * _ _ _ _ _ _) 3778 * (_ _ _ _ * _ _ _ _ * _ _ _) 3779 * (_ _ _ _ * _ _ _ _ * _ _ _) 3780 * (_ _ _ _ * _ _ _ _ * _ _ _) 3781 */ 3782 const int g65[] = { 3783 // Width and height of crossword grid 3784 13, 13, 3785 // Number of black fields 3786 34, 3787 // Black field coordinates 3788 0,4, 0,9, 1,4, 1,9, 2,4, 2,9, 3,0, 3,1, 3,2, 3,7, 4,6, 4,10, 4,11, 4,12, 5,5, 6,3, 6,4, 6,8, 6,9, 7,7, 8,0, 8,1, 8,2, 8,6, 9,5, 9,10, 9,11, 9,12, 10,3, 10,8, 11,3, 11,8, 12,3, 12,8, 3789 // Length and number of words of that length 3790 7, 2, 3791 // Coordinates where words start and direction (0 = horizontal) 3792 5,6,1, 7,0,1, 3793 // Length and number of words of that length 3794 6, 6, 3795 // Coordinates where words start and direction (0 = horizontal) 3796 0,3,0, 0,8,0, 4,0,1, 7,4,0, 7,9,0, 8,7,1, 3797 // Length and number of words of that length 3798 5, 6, 3799 // Coordinates where words start and direction (0 = horizontal) 3800 0,5,0, 3,8,1, 5,0,1, 7,8,1, 8,7,0, 9,0,1, 3801 // Length and number of words of that length 3802 4, 28, 3803 // Coordinates where words start and direction (0 = horizontal) 3804 0,0,1, 0,5,1, 0,6,0, 0,10,0, 0,11,0, 0,12,0, 1,0,1, 1,5,1, 2,0,1, 2,5,1, 3,3,1, 4,0,0, 4,1,0, 4,2,0, 5,10,0, 5,11,0, 5,12,0, 9,0,0, 9,1,0, 9,2,0, 9,6,0, 9,6,1, 10,4,1, 10,9,1, 11,4,1, 11,9,1, 12,4,1, 12,9,1, 3805 // Length and number of words of that length 3806 3, 26, 3807 // Coordinates where words start and direction (0 = horizontal) 3808 0,0,0, 0,1,0, 0,2,0, 0,7,0, 0,10,1, 1,10,1, 2,10,1, 3,4,0, 3,9,0, 4,7,0, 4,7,1, 5,6,0, 6,0,1, 6,5,0, 6,5,1, 6,10,1, 7,3,0, 7,8,0, 8,3,1, 10,0,1, 10,5,0, 10,10,0, 10,11,0, 10,12,0, 11,0,1, 12,0,1, 3809 // End marker 3810 0 3811 }; 3812 3813 3814 /* 3815 * Name: puzzle17, 15 x 15 3816 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3817 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3818 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3819 * (* * _ _ _ _ * _ _ _ _ _ _ * *) 3820 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 3821 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3822 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _) 3823 * (* * * _ _ _ * * * _ _ _ * * *) 3824 * (_ _ _ * _ _ _ * _ _ _ _ _ _ _) 3825 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3826 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 3827 * (* * _ _ _ _ _ _ * _ _ _ _ * *) 3828 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3829 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3830 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3831 */ 3832 const int g66[] = { 3833 // Width and height of crossword grid 3834 15, 15, 3835 // Number of black fields 3836 45, 3837 // Black field coordinates 3838 0,3, 0,7, 0,11, 1,3, 1,7, 1,11, 2,7, 3,0, 3,1, 3,8, 3,13, 3,14, 4,5, 4,9, 5,4, 5,10, 6,3, 6,7, 7,0, 7,1, 7,2, 7,6, 7,7, 7,8, 7,12, 7,13, 7,14, 8,7, 8,11, 9,4, 9,10, 10,5, 10,9, 11,0, 11,1, 11,6, 11,13, 11,14, 12,7, 13,3, 13,7, 13,11, 14,3, 14,7, 14,11, 3839 // Length and number of words of that length 3840 7, 12, 3841 // Coordinates where words start and direction (0 = horizontal) 3842 0,2,0, 0,6,0, 0,12,0, 2,0,1, 2,8,1, 6,8,1, 8,0,1, 8,2,0, 8,8,0, 8,12,0, 12,0,1, 12,8,1, 3843 // Length and number of words of that length 3844 6, 4, 3845 // Coordinates where words start and direction (0 = horizontal) 3846 2,11,0, 3,2,1, 7,3,0, 11,7,1, 3847 // Length and number of words of that length 3848 5, 12, 3849 // Coordinates where words start and direction (0 = horizontal) 3850 0,4,0, 0,10,0, 4,0,1, 4,10,1, 5,5,0, 5,5,1, 5,9,0, 9,5,1, 10,0,1, 10,4,0, 10,10,0, 10,10,1, 3851 // Length and number of words of that length 3852 4, 12, 3853 // Coordinates where words start and direction (0 = horizontal) 3854 0,5,0, 0,9,0, 2,3,0, 3,9,1, 5,0,1, 5,11,1, 9,0,1, 9,11,0, 9,11,1, 11,2,1, 11,5,0, 11,9,0, 3855 // Length and number of words of that length 3856 3, 48, 3857 // Coordinates where words start and direction (0 = horizontal) 3858 0,0,0, 0,0,1, 0,1,0, 0,4,1, 0,8,0, 0,8,1, 0,12,1, 0,13,0, 0,14,0, 1,0,1, 1,4,1, 1,8,1, 1,12,1, 3,7,0, 4,0,0, 4,1,0, 4,6,1, 4,8,0, 4,13,0, 4,14,0, 6,0,1, 6,4,0, 6,4,1, 6,10,0, 7,3,1, 7,9,1, 8,0,0, 8,1,0, 8,6,0, 8,8,1, 8,12,1, 8,13,0, 8,14,0, 9,7,0, 10,6,1, 12,0,0, 12,1,0, 12,6,0, 12,13,0, 12,14,0, 13,0,1, 13,4,1, 13,8,1, 13,12,1, 14,0,1, 14,4,1, 14,8,1, 14,12,1, 3859 // End marker 3860 0 3861 }; 3862 3863 3864 /* 3865 * Name: puzzle18, 15 x 15 3866 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3867 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3868 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3869 * (_ _ _ _ _ * _ _ _ * * _ _ _ _) 3870 * (* * * * _ _ _ * * _ _ _ * * *) 3871 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3872 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 3873 * (_ _ _ _ * * _ _ _ * * _ _ _ _) 3874 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 3875 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 3876 * (* * * _ _ _ * * _ _ _ * * * *) 3877 * (_ _ _ _ * * _ _ _ * _ _ _ _ _) 3878 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3879 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3880 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3881 */ 3882 const int g67[] = { 3883 // Width and height of crossword grid 3884 15, 15, 3885 // Number of black fields 3886 48, 3887 // Black field coordinates 3888 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,4, 3,5, 3,9, 4,0, 4,1, 4,2, 4,6, 4,7, 4,11, 4,12, 4,13, 4,14, 5,3, 5,7, 5,11, 6,10, 7,4, 7,5, 7,9, 7,10, 8,4, 9,3, 9,7, 9,11, 10,0, 10,1, 10,2, 10,3, 10,7, 10,8, 10,12, 10,13, 10,14, 11,5, 11,9, 11,10, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 3889 // Length and number of words of that length 3890 10, 4, 3891 // Coordinates where words start and direction (0 = horizontal) 3892 0,8,0, 5,6,0, 6,0,1, 8,5,1, 3893 // Length and number of words of that length 3894 5, 16, 3895 // Coordinates where words start and direction (0 = horizontal) 3896 0,3,0, 0,5,1, 1,5,1, 2,5,1, 3,10,1, 5,0,0, 5,1,0, 5,2,0, 5,12,0, 5,13,0, 5,14,0, 10,11,0, 11,0,1, 12,5,1, 13,5,1, 14,5,1, 3897 // Length and number of words of that length 3898 4, 36, 3899 // Coordinates where words start and direction (0 = horizontal) 3900 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,6,0, 0,7,0, 0,11,0, 0,11,1, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 3,0,1, 6,11,1, 7,0,1, 7,11,1, 8,0,1, 11,0,0, 11,1,0, 11,2,0, 11,3,0, 11,7,0, 11,8,0, 11,11,1, 11,12,0, 11,13,0, 11,14,0, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 3901 // Length and number of words of that length 3902 3, 30, 3903 // Coordinates where words start and direction (0 = horizontal) 3904 0,5,0, 0,9,0, 3,6,1, 3,10,0, 4,3,1, 4,4,0, 4,5,0, 4,8,1, 4,9,0, 5,0,1, 5,4,1, 5,8,1, 5,12,1, 6,3,0, 6,7,0, 6,11,0, 7,6,1, 8,5,0, 8,9,0, 8,10,0, 9,0,1, 9,4,0, 9,4,1, 9,8,1, 9,12,1, 10,4,1, 10,9,1, 11,6,1, 12,5,0, 12,9,0, 3905 // End marker 3906 0 3907 }; 3908 3909 3910 /* 3911 * Name: puzzle19, 15 x 15 3912 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3913 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3914 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3915 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3916 * (* * * _ _ _ * _ _ _ _ _ * * *) 3917 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 3918 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _) 3919 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3920 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _) 3921 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 3922 * (* * * _ _ _ _ _ * _ _ _ * * *) 3923 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 3924 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3925 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3926 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 3927 */ 3928 const int g68[] = { 3929 // Width and height of crossword grid 3930 15, 15, 3931 // Number of black fields 3932 38, 3933 // Black field coordinates 3934 0,4, 0,10, 1,4, 1,10, 2,4, 2,10, 3,8, 4,0, 4,1, 4,2, 4,6, 4,7, 4,12, 4,13, 4,14, 5,5, 5,9, 6,4, 7,3, 7,11, 8,10, 9,5, 9,9, 10,0, 10,1, 10,2, 10,7, 10,8, 10,12, 10,13, 10,14, 11,6, 12,4, 12,10, 13,4, 13,10, 14,4, 14,10, 3935 // Length and number of words of that length 3936 10, 2, 3937 // Coordinates where words start and direction (0 = horizontal) 3938 6,5,1, 8,0,1, 3939 // Length and number of words of that length 3940 8, 2, 3941 // Coordinates where words start and direction (0 = horizontal) 3942 3,0,1, 11,7,1, 3943 // Length and number of words of that length 3944 7, 5, 3945 // Coordinates where words start and direction (0 = horizontal) 3946 0,3,0, 0,11,0, 7,4,1, 8,3,0, 8,11,0, 3947 // Length and number of words of that length 3948 6, 4, 3949 // Coordinates where words start and direction (0 = horizontal) 3950 3,9,1, 4,8,0, 5,6,0, 11,0,1, 3951 // Length and number of words of that length 3952 5, 23, 3953 // Coordinates where words start and direction (0 = horizontal) 3954 0,5,0, 0,5,1, 0,9,0, 1,5,1, 2,5,1, 3,10,0, 5,0,0, 5,0,1, 5,1,0, 5,2,0, 5,7,0, 5,10,1, 5,12,0, 5,13,0, 5,14,0, 7,4,0, 9,0,1, 9,10,1, 10,5,0, 10,9,0, 12,5,1, 13,5,1, 14,5,1, 3955 // Length and number of words of that length 3956 4, 32, 3957 // Coordinates where words start and direction (0 = horizontal) 3958 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,6,0, 0,7,0, 0,11,1, 0,12,0, 0,13,0, 0,14,0, 1,0,1, 1,11,1, 2,0,1, 2,11,1, 4,8,1, 6,0,1, 8,11,1, 10,3,1, 11,0,0, 11,1,0, 11,2,0, 11,7,0, 11,8,0, 11,12,0, 11,13,0, 11,14,0, 12,0,1, 12,11,1, 13,0,1, 13,11,1, 14,0,1, 14,11,1, 3959 // Length and number of words of that length 3960 3, 12, 3961 // Coordinates where words start and direction (0 = horizontal) 3962 0,8,0, 3,4,0, 4,3,1, 5,6,1, 6,5,0, 6,9,0, 7,0,1, 7,12,1, 9,6,1, 9,10,0, 10,9,1, 12,6,0, 3963 // End marker 3964 0 3965 }; 3966 3967 3968 /* 3969 * Name: puzzle20, 9 x 9 3970 * (* * * _ _ _ * * *) 3971 * (* * _ _ _ _ _ * *) 3972 * (* _ _ _ _ _ _ _ *) 3973 * (_ _ _ _ * _ _ _ _) 3974 * (_ _ _ * * * _ _ _) 3975 * (_ _ _ _ * _ _ _ _) 3976 * (* _ _ _ _ _ _ _ *) 3977 * (* * _ _ _ _ _ * *) 3978 * (* * * _ _ _ * * *) 3979 */ 3980 const int g69[] = { 3981 // Width and height of crossword grid 3982 9, 9, 3983 // Number of black fields 3984 29, 3985 // Black field coordinates 3986 0,0, 0,1, 0,2, 0,6, 0,7, 0,8, 1,0, 1,1, 1,7, 1,8, 2,0, 2,8, 3,4, 4,3, 4,4, 4,5, 5,4, 6,0, 6,8, 7,0, 7,1, 7,7, 7,8, 8,0, 8,1, 8,2, 8,6, 8,7, 8,8, 3987 // Length and number of words of that length 3988 7, 4, 3989 // Coordinates where words start and direction (0 = horizontal) 3990 1,2,0, 1,6,0, 2,1,1, 6,1,1, 3991 // Length and number of words of that length 3992 5, 4, 3993 // Coordinates where words start and direction (0 = horizontal) 3994 1,2,1, 2,1,0, 2,7,0, 7,2,1, 3995 // Length and number of words of that length 3996 4, 8, 3997 // Coordinates where words start and direction (0 = horizontal) 3998 0,3,0, 0,5,0, 3,0,1, 3,5,1, 5,0,1, 5,3,0, 5,5,0, 5,5,1, 3999 // Length and number of words of that length 4000 3, 8, 4001 // Coordinates where words start and direction (0 = horizontal) 4002 0,3,1, 0,4,0, 3,0,0, 3,8,0, 4,0,1, 4,6,1, 6,4,0, 8,3,1, 4003 // End marker 4004 0 4005 }; 4006 4007 4008 /* 4009 * Name: puzzle21, 13 x 13 4010 * (_ _ _ _ * _ _ _ * _ _ _ _) 4011 * (_ _ _ _ * _ _ _ * _ _ _ _) 4012 * (_ _ _ _ * _ _ _ * _ _ _ _) 4013 * (_ _ _ _ _ _ * _ _ _ _ _ _) 4014 * (* * * _ _ _ * _ _ _ * * *) 4015 * (_ _ _ _ _ * * * _ _ _ _ _) 4016 * (_ _ _ * * * * * * * _ _ _) 4017 * (_ _ _ _ _ * * * _ _ _ _ _) 4018 * (* * * _ _ _ * _ _ _ * * *) 4019 * (_ _ _ _ _ _ * _ _ _ _ _ _) 4020 * (_ _ _ _ * _ _ _ * _ _ _ _) 4021 * (_ _ _ _ * _ _ _ * _ _ _ _) 4022 * (_ _ _ _ * _ _ _ * _ _ _ _) 4023 */ 4024 const int g70[] = { 4025 // Width and height of crossword grid 4026 13, 13, 4027 // Number of black fields 4028 41, 4029 // Black field coordinates 4030 0,4, 0,8, 1,4, 1,8, 2,4, 2,8, 3,6, 4,0, 4,1, 4,2, 4,6, 4,10, 4,11, 4,12, 5,5, 5,6, 5,7, 6,3, 6,4, 6,5, 6,6, 6,7, 6,8, 6,9, 7,5, 7,6, 7,7, 8,0, 8,1, 8,2, 8,6, 8,10, 8,11, 8,12, 9,6, 10,4, 10,8, 11,4, 11,8, 12,4, 12,8, 4031 // Length and number of words of that length 4032 6, 8, 4033 // Coordinates where words start and direction (0 = horizontal) 4034 0,3,0, 0,9,0, 3,0,1, 3,7,1, 7,3,0, 7,9,0, 9,0,1, 9,7,1, 4035 // Length and number of words of that length 4036 5, 8, 4037 // Coordinates where words start and direction (0 = horizontal) 4038 0,5,0, 0,7,0, 5,0,1, 5,8,1, 7,0,1, 7,8,1, 8,5,0, 8,7,0, 4039 // Length and number of words of that length 4040 4, 24, 4041 // Coordinates where words start and direction (0 = horizontal) 4042 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,9,1, 0,10,0, 0,11,0, 0,12,0, 1,0,1, 1,9,1, 2,0,1, 2,9,1, 9,0,0, 9,1,0, 9,2,0, 9,10,0, 9,11,0, 9,12,0, 10,0,1, 10,9,1, 11,0,1, 11,9,1, 12,0,1, 12,9,1, 4043 // Length and number of words of that length 4044 3, 24, 4045 // Coordinates where words start and direction (0 = horizontal) 4046 0,5,1, 0,6,0, 1,5,1, 2,5,1, 3,4,0, 3,8,0, 4,3,1, 4,7,1, 5,0,0, 5,1,0, 5,2,0, 5,10,0, 5,11,0, 5,12,0, 6,0,1, 6,10,1, 7,4,0, 7,8,0, 8,3,1, 8,7,1, 10,5,1, 10,6,0, 11,5,1, 12,5,1, 4047 // End marker 4048 0 4049 }; 4050 4051 4052 /* 4053 * Name: puzzle22, 13 x 13 4054 * (_ _ _ _ * _ _ _ * _ _ _ _) 4055 * (_ _ _ _ * _ _ _ * _ _ _ _) 4056 * (_ _ _ _ * _ _ _ * _ _ _ _) 4057 * (_ _ _ _ _ _ _ _ _ _ _ _ _) 4058 * (* * * _ _ _ * _ _ _ * * *) 4059 * (_ _ _ _ _ * * * _ _ _ _ _) 4060 * (_ _ _ _ * * * * * _ _ _ _) 4061 * (_ _ _ _ _ * * * _ _ _ _ _) 4062 * (* * * _ _ _ * _ _ _ * * *) 4063 * (_ _ _ _ _ _ _ _ _ _ _ _ _) 4064 * (_ _ _ _ * _ _ _ * _ _ _ _) 4065 * (_ _ _ _ * _ _ _ * _ _ _ _) 4066 * (_ _ _ _ * _ _ _ * _ _ _ _) 4067 */ 4068 const int g71[] = { 4069 // Width and height of crossword grid 4070 13, 13, 4071 // Number of black fields 4072 37, 4073 // Black field coordinates 4074 0,4, 0,8, 1,4, 1,8, 2,4, 2,8, 4,0, 4,1, 4,2, 4,6, 4,10, 4,11, 4,12, 5,5, 5,6, 5,7, 6,4, 6,5, 6,6, 6,7, 6,8, 7,5, 7,6, 7,7, 8,0, 8,1, 8,2, 8,6, 8,10, 8,11, 8,12, 10,4, 10,8, 11,4, 11,8, 12,4, 12,8, 4075 // Length and number of words of that length 4076 13, 4, 4077 // Coordinates where words start and direction (0 = horizontal) 4078 0,3,0, 0,9,0, 3,0,1, 9,0,1, 4079 // Length and number of words of that length 4080 5, 8, 4081 // Coordinates where words start and direction (0 = horizontal) 4082 0,5,0, 0,7,0, 5,0,1, 5,8,1, 7,0,1, 7,8,1, 8,5,0, 8,7,0, 4083 // Length and number of words of that length 4084 4, 28, 4085 // Coordinates where words start and direction (0 = horizontal) 4086 0,0,0, 0,0,1, 0,1,0, 0,2,0, 0,6,0, 0,9,1, 0,10,0, 0,11,0, 0,12,0, 1,0,1, 1,9,1, 2,0,1, 2,9,1, 6,0,1, 6,9,1, 9,0,0, 9,1,0, 9,2,0, 9,6,0, 9,10,0, 9,11,0, 9,12,0, 10,0,1, 10,9,1, 11,0,1, 11,9,1, 12,0,1, 12,9,1, 4087 // Length and number of words of that length 4088 3, 20, 4089 // Coordinates where words start and direction (0 = horizontal) 4090 0,5,1, 1,5,1, 2,5,1, 3,4,0, 3,8,0, 4,3,1, 4,7,1, 5,0,0, 5,1,0, 5,2,0, 5,10,0, 5,11,0, 5,12,0, 7,4,0, 7,8,0, 8,3,1, 8,7,1, 10,5,1, 11,5,1, 12,5,1, 4091 // End marker 4092 0 4093 }; 4094 4095 4096 const int* grids[] = { 4097 &g0[0], &g1[0], &g2[0], &g3[0], &g4[0], &g5[0], &g6[0], &g7[0], &g8[0], 4098 &g9[0], &g10[0], &g11[0], &g12[0], &g13[0], &g14[0], &g15[0], &g16[0], 4099 &g17[0], &g18[0], &g19[0], &g20[0], &g21[0], &g22[0], &g23[0], &g24[0], 4100 &g25[0], &g26[0], &g27[0], &g28[0], &g29[0], &g30[0], &g31[0], &g32[0], 4101 &g33[0], &g34[0], &g35[0], &g36[0], &g37[0], &g38[0], &g39[0], &g40[0], 4102 &g41[0], &g42[0], &g43[0], &g44[0], &g45[0], &g46[0], &g47[0], &g48[0], 4103 &g49[0], &g50[0], &g51[0], &g52[0], &g53[0], &g54[0], &g55[0], &g56[0], 4104 &g57[0], &g58[0], &g59[0], &g60[0], &g61[0], &g62[0], &g63[0], &g64[0], 4105 &g65[0], &g66[0], &g67[0], &g68[0], &g69[0], &g70[0], &g71[0] 4106 }; 4107 4108 const unsigned int n_grids = 72; 4109 4110} 4111 4112// STATISTICS: example-any