crossword.cpp
Go to the documentation of this file.00001 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 00002 /* 00003 * Main authors: 00004 * Christian Schulte <schulte@gecode.org> 00005 * 00006 * Copyright: 00007 * Christian Schulte, 2009 00008 * 00009 * Last modified: 00010 * $Date: 2009-11-04 16:25:16 +0100 (Wed, 04 Nov 2009) $ by $Author: schulte $ 00011 * $Revision: 10044 $ 00012 * 00013 * This file is part of Gecode, the generic constraint 00014 * development environment: 00015 * http://www.gecode.org 00016 * 00017 * Permission is hereby granted, free of charge, to any person obtaining 00018 * a copy of this software and associated documentation files (the 00019 * "Software"), to deal in the Software without restriction, including 00020 * without limitation the rights to use, copy, modify, merge, publish, 00021 * distribute, sublicense, and/or sell copies of the Software, and to 00022 * permit persons to whom the Software is furnished to do so, subject to 00023 * the following conditions: 00024 * 00025 * The above copyright notice and this permission notice shall be 00026 * included in all copies or substantial portions of the Software. 00027 * 00028 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00029 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00030 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00031 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 00032 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 00033 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00034 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00035 * 00036 */ 00037 00038 #include <gecode/driver.hh> 00039 00040 #include <gecode/int.hh> 00041 #include <gecode/minimodel.hh> 00042 00043 #include <examples/scowl.hpp> 00044 00045 using namespace Gecode; 00046 00047 00048 // Grid data 00049 namespace { 00050 // Grid data 00051 extern const int* grids[]; 00052 // Number of grids 00053 extern const unsigned int n_grids; 00054 } 00055 00056 00067 class Crossword : public Script { 00068 protected: 00070 const int w; 00072 const int h; 00074 IntVarArray letters; 00075 public: 00077 enum { 00078 BRANCH_WORDS, 00079 BRANCH_LETTERS 00080 }; 00082 Crossword(const SizeOptions& opt) 00083 : w(grids[opt.size()][0]), h(grids[opt.size()][1]), 00084 letters(*this,w*h,'a','z') { 00085 // Pointer into the grid specification (width and height already skipped) 00086 const int* g = &grids[opt.size()][2]; 00087 00088 // Matrix for letters 00089 Matrix<IntVarArray> ml(letters, w, h); 00090 00091 // Set black fields to 0 00092 { 00093 IntVar z(*this,0,0); 00094 for (int n = *g++; n--; ) { 00095 int x=*g++, y=*g++; 00096 ml(x,y)=z; 00097 } 00098 } 00099 00100 // Array of all words 00101 IntVarArgs allwords(*g++); 00102 int aw_i=0; 00103 00104 // While words of length w_l to process 00105 while (int w_l=*g++) { 00106 if (w_l > max_word_len) 00107 throw Exception("Crossword", 00108 "Dictionary does not have words of required length"); 00109 // Number of words of that length in the dictionary 00110 int n_w = n_words[w_l]; 00111 // Number of words of that length in the puzzle 00112 int n=*g++; 00113 00114 // Array of all words of length w_l 00115 IntVarArgs words(n); 00116 for (int i=n; i--; ) { 00117 words[i].init(*this,0,n_w-1); 00118 allwords[aw_i++]=words[i]; 00119 } 00120 00121 // All words of same length must be different 00122 distinct(*this, words, ICL_BND); 00123 00124 for (int d=0; d<w_l; d++) { 00125 // Array that maps words to a letter at a certain position (shared among all element constraints) 00126 IntSharedArray w2l(n_w); 00127 // Initialize word to letter map 00128 for (int i=n_w; i--; ) 00129 w2l[i] = dict[w_l][i][d]; 00130 // Link word to letter variable 00131 for (int i=0; i<n; i++) { 00132 // Get (x,y) coordinate where word begins 00133 int x=g[3*i+0], y=g[3*i+1]; 00134 // Whether word is horizontal 00135 bool h=(g[3*i+2] == 0); 00136 // Constrain the letters to the words' letters 00137 element(*this, w2l, words[i], h ? ml(x+d,y) : ml(x,y+d)); 00138 } 00139 } 00140 // Skip word coordinates 00141 g += 3*n; 00142 } 00143 switch (opt.branching()) { 00144 case BRANCH_WORDS: 00145 // Branch by assigning words 00146 branch(*this, allwords, INT_VAR_SIZE_AFC_MIN, INT_VAL_SPLIT_MIN); 00147 break; 00148 case BRANCH_LETTERS: 00149 // Branch by assigning letters 00150 branch(*this, letters, INT_VAR_SIZE_AFC_MIN, INT_VAL_MIN); 00151 break; 00152 } 00153 } 00155 Crossword(bool share, Crossword& s) 00156 : Script(share,s), w(s.w), h(s.h) { 00157 letters.update(*this, share, s.letters); 00158 } 00160 virtual Space* 00161 copy(bool share) { 00162 return new Crossword(share,*this); 00163 } 00165 virtual void 00166 print(std::ostream& os) const { 00167 // Matrix for letters 00168 Matrix<IntVarArray> ml(letters, w, h); 00169 for (int i=0; i<h; i++) { 00170 os << '\t'; 00171 for (int j=0; j<w; j++) 00172 if (ml(j,i).assigned()) 00173 if (ml(j,i).val() == 0) 00174 os << '*'; 00175 else 00176 os << static_cast<char>(ml(j,i).val()); 00177 else 00178 os << '?'; 00179 os << std::endl; 00180 } 00181 os << std::endl << std::endl; 00182 } 00183 }; 00184 00185 00189 int 00190 main(int argc, char* argv[]) { 00191 SizeOptions opt("Crossword"); 00192 opt.size(0); 00193 opt.branching(Crossword::BRANCH_WORDS); 00194 opt.branching(Crossword::BRANCH_WORDS, "words"); 00195 opt.branching(Crossword::BRANCH_LETTERS, "letters"); 00196 opt.parse(argc,argv); 00197 if (opt.size() >= n_grids) { 00198 std::cerr << "Error: size must be between 0 and " 00199 << n_grids-1 << std::endl; 00200 return 1; 00201 } 00202 Script::run<Crossword,DFS,SizeOptions>(opt); 00203 return 0; 00204 } 00205 00206 namespace { 00207 00208 /* 00209 * The Grid data has been provided by Peter Van Beek, to 00210 * quote the original README.txt: 00211 * 00212 * The files in this directory contain templates for crossword 00213 * puzzles. Each is a two-dimensional array. A _ indicates 00214 * that the associated square in the crossword template is 00215 * blank, and a * indicates that it is a black square that 00216 * does not need to have a letter inserted. 00217 * 00218 * The crossword puzzles templates came from the following 00219 * sources: 00220 * 00221 * 15.01, ..., 15.10 00222 * 19.01, ..., 19.10 00223 * 21.01, ..., 21.10 00224 * 23.01, ..., 23.10 00225 * 00226 * Herald Tribune Crosswords, Spring, 1999 00227 * 00228 * 05.01, ..., 05.10 00229 * 00230 * All legal 5 x 5 puzzles. 00231 * 00232 * puzzle01, ..., puzzle19 00233 * 00234 * Ginsberg, M.L., "Dynamic Backtracking," 00235 * Journal of Artificial Intelligence Researc (JAIR) 00236 * Volume 1, pages 25-46, 1993. 00237 * 00238 * puzzle20, ..., puzzle22 00239 * 00240 * Ginsberg, M.L. et al., "Search Lessons Learned 00241 * from Crossword Puzzles," AAAI-90, pages 210-215. 00242 * 00243 */ 00244 00245 /* 00246 * Name: 05.01, 5 x 5 00247 * (_ _ _ _ _) 00248 * (_ _ _ _ _) 00249 * (_ _ _ _ _) 00250 * (_ _ _ _ _) 00251 * (_ _ _ _ _) 00252 */ 00253 const int g0[] = { 00254 // Width and height of crossword grid 00255 5, 5, 00256 // Number of black fields 00257 0, 00258 // Black field coordinates 00259 00260 // Total number of words in grid 00261 10, 00262 // Length and number of words of that length 00263 5, 10, 00264 // Coordinates where words start and direction (0 = horizontal) 00265 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, 00266 // End marker 00267 0 00268 }; 00269 00270 00271 /* 00272 * Name: 05.02, 5 x 5 00273 * (_ _ _ _ *) 00274 * (_ _ _ _ _) 00275 * (_ _ _ _ _) 00276 * (_ _ _ _ _) 00277 * (* _ _ _ _) 00278 */ 00279 const int g1[] = { 00280 // Width and height of crossword grid 00281 5, 5, 00282 // Number of black fields 00283 2, 00284 // Black field coordinates 00285 0,4, 4,0, 00286 // Total number of words in grid 00287 10, 00288 // Length and number of words of that length 00289 5, 6, 00290 // Coordinates where words start and direction (0 = horizontal) 00291 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 00292 // Length and number of words of that length 00293 4, 4, 00294 // Coordinates where words start and direction (0 = horizontal) 00295 0,0,0, 0,0,1, 1,4,0, 4,1,1, 00296 // End marker 00297 0 00298 }; 00299 00300 00301 /* 00302 * Name: 05.03, 5 x 5 00303 * (_ _ _ _ *) 00304 * (_ _ _ _ *) 00305 * (_ _ _ _ _) 00306 * (* _ _ _ _) 00307 * (* _ _ _ _) 00308 */ 00309 const int g2[] = { 00310 // Width and height of crossword grid 00311 5, 5, 00312 // Number of black fields 00313 4, 00314 // Black field coordinates 00315 0,3, 0,4, 4,0, 4,1, 00316 // Total number of words in grid 00317 10, 00318 // Length and number of words of that length 00319 5, 4, 00320 // Coordinates where words start and direction (0 = horizontal) 00321 0,2,0, 1,0,1, 2,0,1, 3,0,1, 00322 // Length and number of words of that length 00323 4, 4, 00324 // Coordinates where words start and direction (0 = horizontal) 00325 0,0,0, 0,1,0, 1,3,0, 1,4,0, 00326 // Length and number of words of that length 00327 3, 2, 00328 // Coordinates where words start and direction (0 = horizontal) 00329 0,0,1, 4,2,1, 00330 // End marker 00331 0 00332 }; 00333 00334 00335 /* 00336 * Name: 05.04, 5 x 5 00337 * (_ _ _ * *) 00338 * (_ _ _ _ *) 00339 * (_ _ _ _ _) 00340 * (* _ _ _ _) 00341 * (* * _ _ _) 00342 */ 00343 const int g3[] = { 00344 // Width and height of crossword grid 00345 5, 5, 00346 // Number of black fields 00347 6, 00348 // Black field coordinates 00349 0,3, 0,4, 1,4, 3,0, 4,0, 4,1, 00350 // Total number of words in grid 00351 10, 00352 // Length and number of words of that length 00353 5, 2, 00354 // Coordinates where words start and direction (0 = horizontal) 00355 0,2,0, 2,0,1, 00356 // Length and number of words of that length 00357 4, 4, 00358 // Coordinates where words start and direction (0 = horizontal) 00359 0,1,0, 1,0,1, 1,3,0, 3,1,1, 00360 // Length and number of words of that length 00361 3, 4, 00362 // Coordinates where words start and direction (0 = horizontal) 00363 0,0,0, 0,0,1, 2,4,0, 4,2,1, 00364 // End marker 00365 0 00366 }; 00367 00368 00369 /* 00370 * Name: 05.05, 5 x 5 00371 * (_ _ _ * *) 00372 * (_ _ _ * *) 00373 * (_ _ _ _ _) 00374 * (* * _ _ _) 00375 * (* * _ _ _) 00376 */ 00377 const int g4[] = { 00378 // Width and height of crossword grid 00379 5, 5, 00380 // Number of black fields 00381 8, 00382 // Black field coordinates 00383 0,3, 0,4, 1,3, 1,4, 3,0, 3,1, 4,0, 4,1, 00384 // Total number of words in grid 00385 10, 00386 // Length and number of words of that length 00387 5, 2, 00388 // Coordinates where words start and direction (0 = horizontal) 00389 0,2,0, 2,0,1, 00390 // Length and number of words of that length 00391 3, 8, 00392 // Coordinates where words start and direction (0 = horizontal) 00393 0,0,0, 0,0,1, 0,1,0, 1,0,1, 2,3,0, 2,4,0, 3,2,1, 4,2,1, 00394 // End marker 00395 0 00396 }; 00397 00398 00399 /* 00400 * Name: 05.06, 5 x 5 00401 * (* _ _ _ _) 00402 * (_ _ _ _ _) 00403 * (_ _ _ _ _) 00404 * (_ _ _ _ _) 00405 * (_ _ _ _ *) 00406 */ 00407 const int g5[] = { 00408 // Width and height of crossword grid 00409 5, 5, 00410 // Number of black fields 00411 2, 00412 // Black field coordinates 00413 0,0, 4,4, 00414 // Total number of words in grid 00415 10, 00416 // Length and number of words of that length 00417 5, 6, 00418 // Coordinates where words start and direction (0 = horizontal) 00419 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 00420 // Length and number of words of that length 00421 4, 4, 00422 // Coordinates where words start and direction (0 = horizontal) 00423 0,1,1, 0,4,0, 1,0,0, 4,0,1, 00424 // End marker 00425 0 00426 }; 00427 00428 00429 /* 00430 * Name: 05.07, 5 x 5 00431 * (* _ _ _ _) 00432 * (* _ _ _ _) 00433 * (_ _ _ _ _) 00434 * (_ _ _ _ *) 00435 * (_ _ _ _ *) 00436 */ 00437 const int g6[] = { 00438 // Width and height of crossword grid 00439 5, 5, 00440 // Number of black fields 00441 4, 00442 // Black field coordinates 00443 0,0, 0,1, 4,3, 4,4, 00444 // Total number of words in grid 00445 10, 00446 // Length and number of words of that length 00447 5, 4, 00448 // Coordinates where words start and direction (0 = horizontal) 00449 0,2,0, 1,0,1, 2,0,1, 3,0,1, 00450 // Length and number of words of that length 00451 4, 4, 00452 // Coordinates where words start and direction (0 = horizontal) 00453 0,3,0, 0,4,0, 1,0,0, 1,1,0, 00454 // Length and number of words of that length 00455 3, 2, 00456 // Coordinates where words start and direction (0 = horizontal) 00457 0,2,1, 4,0,1, 00458 // End marker 00459 0 00460 }; 00461 00462 00463 /* 00464 * Name: 05.08, 5 x 5 00465 * (* _ _ _ *) 00466 * (_ _ _ _ _) 00467 * (_ _ _ _ _) 00468 * (_ _ _ _ _) 00469 * (* _ _ _ *) 00470 */ 00471 const int g7[] = { 00472 // Width and height of crossword grid 00473 5, 5, 00474 // Number of black fields 00475 4, 00476 // Black field coordinates 00477 0,0, 0,4, 4,0, 4,4, 00478 // Total number of words in grid 00479 10, 00480 // Length and number of words of that length 00481 5, 6, 00482 // Coordinates where words start and direction (0 = horizontal) 00483 0,1,0, 0,2,0, 0,3,0, 1,0,1, 2,0,1, 3,0,1, 00484 // Length and number of words of that length 00485 3, 4, 00486 // Coordinates where words start and direction (0 = horizontal) 00487 0,1,1, 1,0,0, 1,4,0, 4,1,1, 00488 // End marker 00489 0 00490 }; 00491 00492 00493 /* 00494 * Name: 05.09, 5 x 5 00495 * (* * _ _ _) 00496 * (* _ _ _ _) 00497 * (_ _ _ _ _) 00498 * (_ _ _ _ *) 00499 * (_ _ _ * *) 00500 */ 00501 const int g8[] = { 00502 // Width and height of crossword grid 00503 5, 5, 00504 // Number of black fields 00505 6, 00506 // Black field coordinates 00507 0,0, 0,1, 1,0, 3,4, 4,3, 4,4, 00508 // Total number of words in grid 00509 10, 00510 // Length and number of words of that length 00511 5, 2, 00512 // Coordinates where words start and direction (0 = horizontal) 00513 0,2,0, 2,0,1, 00514 // Length and number of words of that length 00515 4, 4, 00516 // Coordinates where words start and direction (0 = horizontal) 00517 0,3,0, 1,1,0, 1,1,1, 3,0,1, 00518 // Length and number of words of that length 00519 3, 4, 00520 // Coordinates where words start and direction (0 = horizontal) 00521 0,2,1, 0,4,0, 2,0,0, 4,0,1, 00522 // End marker 00523 0 00524 }; 00525 00526 00527 /* 00528 * Name: 05.10, 5 x 5 00529 * (* * _ _ _) 00530 * (* * _ _ _) 00531 * (_ _ _ _ _) 00532 * (_ _ _ * *) 00533 * (_ _ _ * *) 00534 */ 00535 const int g9[] = { 00536 // Width and height of crossword grid 00537 5, 5, 00538 // Number of black fields 00539 8, 00540 // Black field coordinates 00541 0,0, 0,1, 1,0, 1,1, 3,3, 3,4, 4,3, 4,4, 00542 // Total number of words in grid 00543 10, 00544 // Length and number of words of that length 00545 5, 2, 00546 // Coordinates where words start and direction (0 = horizontal) 00547 0,2,0, 2,0,1, 00548 // Length and number of words of that length 00549 3, 8, 00550 // Coordinates where words start and direction (0 = horizontal) 00551 0,2,1, 0,3,0, 0,4,0, 1,2,1, 2,0,0, 2,1,0, 3,0,1, 4,0,1, 00552 // End marker 00553 0 00554 }; 00555 00556 00557 /* 00558 * Name: 15.01, 15 x 15 00559 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00560 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00561 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 00562 * (_ _ _ _ _ _ _ * * _ _ _ _ _ _) 00563 * (* * * _ _ _ * _ _ _ _ _ _ * *) 00564 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 00565 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _) 00566 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 00567 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _) 00568 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 00569 * (* * _ _ _ _ _ _ * _ _ _ * * *) 00570 * (_ _ _ _ _ _ * * _ _ _ _ _ _ _) 00571 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 00572 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00573 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00574 */ 00575 const int g10[] = { 00576 // Width and height of crossword grid 00577 15, 15, 00578 // Number of black fields 00579 36, 00580 // Black field coordinates 00581 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, 00582 // Total number of words in grid 00583 78, 00584 // Length and number of words of that length 00585 10, 4, 00586 // Coordinates where words start and direction (0 = horizontal) 00587 0,2,0, 2,5,1, 5,12,0, 12,0,1, 00588 // Length and number of words of that length 00589 7, 6, 00590 // Coordinates where words start and direction (0 = horizontal) 00591 0,3,0, 3,8,1, 4,7,0, 7,4,1, 8,11,0, 11,0,1, 00592 // Length and number of words of that length 00593 6, 12, 00594 // Coordinates where words start and direction (0 = horizontal) 00595 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, 00596 // Length and number of words of that length 00597 5, 16, 00598 // Coordinates where words start and direction (0 = horizontal) 00599 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, 00600 // Length and number of words of that length 00601 4, 24, 00602 // Coordinates where words start and direction (0 = horizontal) 00603 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, 00604 // Length and number of words of that length 00605 3, 16, 00606 // Coordinates where words start and direction (0 = horizontal) 00607 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, 00608 // End marker 00609 0 00610 }; 00611 00612 00613 /* 00614 * Name: 15.02, 15 x 15 00615 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00616 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 00617 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00618 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 00619 * (_ _ _ * _ _ _ _ * _ _ _ * * *) 00620 * (* * * _ _ _ _ * _ _ _ * _ _ _) 00621 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 00622 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 00623 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 00624 * (_ _ _ * _ _ _ * _ _ _ _ * * *) 00625 * (* * * _ _ _ * _ _ _ _ * _ _ _) 00626 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 00627 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00628 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 00629 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00630 */ 00631 const int g11[] = { 00632 // Width and height of crossword grid 00633 15, 15, 00634 // Number of black fields 00635 34, 00636 // Black field coordinates 00637 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, 00638 // Total number of words in grid 00639 80, 00640 // Length and number of words of that length 00641 15, 2, 00642 // Coordinates where words start and direction (0 = horizontal) 00643 0,2,0, 0,12,0, 00644 // Length and number of words of that length 00645 10, 4, 00646 // Coordinates where words start and direction (0 = horizontal) 00647 0,1,0, 0,11,0, 5,3,0, 5,13,0, 00648 // Length and number of words of that length 00649 7, 2, 00650 // Coordinates where words start and direction (0 = horizontal) 00651 5,8,1, 9,0,1, 00652 // Length and number of words of that length 00653 6, 6, 00654 // Coordinates where words start and direction (0 = horizontal) 00655 0,6,0, 5,1,1, 6,0,1, 8,9,1, 9,8,0, 9,8,1, 00656 // Length and number of words of that length 00657 5, 14, 00658 // Coordinates where words start and direction (0 = horizontal) 00659 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, 00660 // Length and number of words of that length 00661 4, 36, 00662 // Coordinates where words start and direction (0 = horizontal) 00663 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, 00664 // Length and number of words of that length 00665 3, 16, 00666 // Coordinates where words start and direction (0 = horizontal) 00667 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, 00668 // End marker 00669 0 00670 }; 00671 00672 00673 /* 00674 * Name: 15.03, 15 x 15 00675 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00676 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00677 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00678 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 00679 * (* * * _ _ _ _ * _ _ _ _ * * *) 00680 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 00681 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 00682 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00683 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 00684 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 00685 * (* * * _ _ _ _ * _ _ _ _ * * *) 00686 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 00687 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00688 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00689 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00690 */ 00691 const int g12[] = { 00692 // Width and height of crossword grid 00693 15, 15, 00694 // Number of black fields 00695 36, 00696 // Black field coordinates 00697 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, 00698 // Total number of words in grid 00699 78, 00700 // Length and number of words of that length 00701 8, 8, 00702 // Coordinates where words start and direction (0 = horizontal) 00703 0,3,0, 0,9,0, 3,0,1, 5,7,1, 7,5,0, 7,11,0, 9,0,1, 11,7,1, 00704 // Length and number of words of that length 00705 6, 8, 00706 // Coordinates where words start and direction (0 = horizontal) 00707 0,5,0, 0,11,0, 3,9,1, 5,0,1, 9,3,0, 9,9,0, 9,9,1, 11,0,1, 00708 // Length and number of words of that length 00709 5, 22, 00710 // Coordinates where words start and direction (0 = horizontal) 00711 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, 00712 // Length and number of words of that length 00713 4, 36, 00714 // Coordinates where words start and direction (0 = horizontal) 00715 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, 00716 // Length and number of words of that length 00717 3, 4, 00718 // Coordinates where words start and direction (0 = horizontal) 00719 0,8,0, 6,12,1, 8,0,1, 12,6,0, 00720 // End marker 00721 0 00722 }; 00723 00724 00725 /* 00726 * Name: 15.04, 15 x 15 00727 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _) 00728 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 00729 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00730 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 00731 * (* * * _ _ _ * _ _ _ _ _ * * *) 00732 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 00733 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 00734 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00735 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 00736 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 00737 * (* * * _ _ _ _ _ * _ _ _ * * *) 00738 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 00739 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00740 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 00741 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _) 00742 */ 00743 const int g13[] = { 00744 // Width and height of crossword grid 00745 15, 15, 00746 // Number of black fields 00747 32, 00748 // Black field coordinates 00749 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, 00750 // Total number of words in grid 00751 76, 00752 // Length and number of words of that length 00753 15, 4, 00754 // Coordinates where words start and direction (0 = horizontal) 00755 0,2,0, 0,7,0, 0,12,0, 7,0,1, 00756 // Length and number of words of that length 00757 8, 4, 00758 // Coordinates where words start and direction (0 = horizontal) 00759 0,1,0, 4,7,1, 7,13,0, 10,0,1, 00760 // Length and number of words of that length 00761 6, 8, 00762 // Coordinates where words start and direction (0 = horizontal) 00763 0,8,0, 0,13,0, 0,14,0, 4,0,1, 9,0,0, 9,1,0, 9,6,0, 10,9,1, 00764 // Length and number of words of that length 00765 5, 22, 00766 // Coordinates where words start and direction (0 = horizontal) 00767 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, 00768 // Length and number of words of that length 00769 4, 22, 00770 // Coordinates where words start and direction (0 = horizontal) 00771 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, 00772 // Length and number of words of that length 00773 3, 16, 00774 // Coordinates where words start and direction (0 = horizontal) 00775 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, 00776 // End marker 00777 0 00778 }; 00779 00780 00781 /* 00782 * Name: 15.05, 15 x 15 00783 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00784 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00785 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 00786 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00787 * (* * * * _ _ _ * * * _ _ _ _ _) 00788 * (_ _ _ _ _ _ * _ _ _ _ * * * *) 00789 * (_ _ _ _ _ * * _ _ _ _ _ _ _ *) 00790 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 00791 * (* _ _ _ _ _ _ _ * * _ _ _ _ _) 00792 * (* * * * _ _ _ _ * _ _ _ _ _ _) 00793 * (_ _ _ _ _ * * * _ _ _ * * * *) 00794 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00795 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 00796 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00797 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00798 */ 00799 const int g14[] = { 00800 // Width and height of crossword grid 00801 15, 15, 00802 // Number of black fields 00803 44, 00804 // Black field coordinates 00805 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, 00806 // Total number of words in grid 00807 78, 00808 // Length and number of words of that length 00809 15, 1, 00810 // Coordinates where words start and direction (0 = horizontal) 00811 0,7,0, 00812 // Length and number of words of that length 00813 10, 2, 00814 // Coordinates where words start and direction (0 = horizontal) 00815 0,2,0, 5,12,0, 00816 // Length and number of words of that length 00817 7, 4, 00818 // Coordinates where words start and direction (0 = horizontal) 00819 1,8,0, 4,4,1, 7,6,0, 10,4,1, 00820 // Length and number of words of that length 00821 6, 2, 00822 // Coordinates where words start and direction (0 = horizontal) 00823 0,5,0, 9,9,0, 00824 // Length and number of words of that length 00825 5, 21, 00826 // Coordinates where words start and direction (0 = horizontal) 00827 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, 00828 // Length and number of words of that length 00829 4, 38, 00830 // Coordinates where words start and direction (0 = horizontal) 00831 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, 00832 // Length and number of words of that length 00833 3, 10, 00834 // Coordinates where words start and direction (0 = horizontal) 00835 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, 00836 // End marker 00837 0 00838 }; 00839 00840 00841 /* 00842 * Name: 15.06, 15 x 15 00843 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00844 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00845 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00846 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00847 * (* * * _ _ _ * _ _ _ _ _ * * *) 00848 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _) 00849 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _) 00850 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 00851 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _) 00852 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _) 00853 * (* * * _ _ _ _ _ * _ _ _ * * *) 00854 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 00855 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00856 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00857 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00858 */ 00859 const int g15[] = { 00860 // Width and height of crossword grid 00861 15, 15, 00862 // Number of black fields 00863 30, 00864 // Black field coordinates 00865 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, 00866 // Total number of words in grid 00867 72, 00868 // Length and number of words of that length 00869 9, 3, 00870 // Coordinates where words start and direction (0 = horizontal) 00871 0,6,0, 6,8,0, 7,3,1, 00872 // Length and number of words of that length 00873 8, 4, 00874 // Coordinates where words start and direction (0 = horizontal) 00875 0,5,0, 5,0,1, 7,9,0, 9,7,1, 00876 // Length and number of words of that length 00877 7, 19, 00878 // Coordinates where words start and direction (0 = horizontal) 00879 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, 00880 // Length and number of words of that length 00881 6, 4, 00882 // Coordinates where words start and direction (0 = horizontal) 00883 0,9,0, 5,9,1, 9,0,1, 9,5,0, 00884 // Length and number of words of that length 00885 5, 14, 00886 // Coordinates where words start and direction (0 = horizontal) 00887 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, 00888 // Length and number of words of that length 00889 4, 20, 00890 // Coordinates where words start and direction (0 = horizontal) 00891 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, 00892 // Length and number of words of that length 00893 3, 8, 00894 // Coordinates where words start and direction (0 = horizontal) 00895 0,7,0, 3,4,0, 4,0,1, 4,12,1, 9,10,0, 10,0,1, 10,12,1, 12,7,0, 00896 // End marker 00897 0 00898 }; 00899 00900 00901 /* 00902 * Name: 15.07, 15 x 15 00903 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00904 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00905 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _) 00906 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00907 * (* * _ _ _ _ * _ _ _ * _ _ _ _) 00908 * (_ _ _ _ _ * _ _ _ _ _ _ * * *) 00909 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 00910 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 00911 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 00912 * (* * * _ _ _ _ _ _ * _ _ _ _ _) 00913 * (_ _ _ _ * _ _ _ * _ _ _ _ * *) 00914 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00915 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _) 00916 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00917 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00918 */ 00919 const int g16[] = { 00920 // Width and height of crossword grid 00921 15, 15, 00922 // Number of black fields 00923 32, 00924 // Black field coordinates 00925 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, 00926 // Total number of words in grid 00927 74, 00928 // Length and number of words of that length 00929 10, 4, 00930 // Coordinates where words start and direction (0 = horizontal) 00931 0,8,0, 5,6,0, 6,5,1, 8,0,1, 00932 // Length and number of words of that length 00933 9, 4, 00934 // Coordinates where words start and direction (0 = horizontal) 00935 0,2,0, 2,0,1, 6,12,0, 12,6,1, 00936 // Length and number of words of that length 00937 7, 10, 00938 // Coordinates where words start and direction (0 = horizontal) 00939 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, 00940 // Length and number of words of that length 00941 6, 4, 00942 // Coordinates where words start and direction (0 = horizontal) 00943 3,9,0, 5,6,1, 6,5,0, 9,3,1, 00944 // Length and number of words of that length 00945 5, 16, 00946 // Coordinates where words start and direction (0 = horizontal) 00947 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, 00948 // Length and number of words of that length 00949 4, 28, 00950 // Coordinates where words start and direction (0 = horizontal) 00951 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, 00952 // Length and number of words of that length 00953 3, 8, 00954 // Coordinates where words start and direction (0 = horizontal) 00955 0,7,0, 4,7,1, 5,10,0, 7,0,1, 7,4,0, 7,12,1, 10,5,1, 12,7,0, 00956 // End marker 00957 0 00958 }; 00959 00960 00961 /* 00962 * Name: 15.08, 15 x 15 00963 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00964 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00965 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _) 00966 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _) 00967 * (* * * _ _ _ * _ _ _ * _ _ _ _) 00968 * (_ _ _ * _ _ _ _ _ _ _ _ * * *) 00969 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 00970 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 00971 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 00972 * (* * * _ _ _ _ _ _ _ _ * _ _ _) 00973 * (_ _ _ _ * _ _ _ * _ _ _ * * *) 00974 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _) 00975 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00976 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00977 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _) 00978 */ 00979 const int g17[] = { 00980 // Width and height of crossword grid 00981 15, 15, 00982 // Number of black fields 00983 39, 00984 // Black field coordinates 00985 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, 00986 // Total number of words in grid 00987 84, 00988 // Length and number of words of that length 00989 8, 4, 00990 // Coordinates where words start and direction (0 = horizontal) 00991 3,9,0, 4,5,0, 5,4,1, 9,3,1, 00992 // Length and number of words of that length 00993 7, 4, 00994 // Coordinates where words start and direction (0 = horizontal) 00995 0,7,0, 7,0,1, 7,8,1, 8,7,0, 00996 // Length and number of words of that length 00997 6, 4, 00998 // Coordinates where words start and direction (0 = horizontal) 00999 0,8,0, 6,9,1, 8,0,1, 9,6,0, 01000 // Length and number of words of that length 01001 5, 20, 01002 // Coordinates where words start and direction (0 = horizontal) 01003 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, 01004 // Length and number of words of that length 01005 4, 32, 01006 // Coordinates where words start and direction (0 = horizontal) 01007 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, 01008 // Length and number of words of that length 01009 3, 20, 01010 // Coordinates where words start and direction (0 = horizontal) 01011 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, 01012 // End marker 01013 0 01014 }; 01015 01016 01017 /* 01018 * Name: 15.09, 15 x 15 01019 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01020 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01021 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01022 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 01023 * (* * * _ _ _ * _ _ _ _ _ * * *) 01024 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 01025 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _) 01026 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _) 01027 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _) 01028 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 01029 * (* * * _ _ _ _ _ * _ _ _ * * *) 01030 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 01031 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01032 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01033 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01034 */ 01035 const int g18[] = { 01036 // Width and height of crossword grid 01037 15, 15, 01038 // Number of black fields 01039 38, 01040 // Black field coordinates 01041 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, 01042 // Total number of words in grid 01043 82, 01044 // Length and number of words of that length 01045 7, 10, 01046 // Coordinates where words start and direction (0 = horizontal) 01047 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, 01048 // Length and number of words of that length 01049 6, 4, 01050 // Coordinates where words start and direction (0 = horizontal) 01051 0,8,0, 6,9,1, 8,0,1, 9,6,0, 01052 // Length and number of words of that length 01053 5, 24, 01054 // Coordinates where words start and direction (0 = horizontal) 01055 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, 01056 // Length and number of words of that length 01057 4, 28, 01058 // Coordinates where words start and direction (0 = horizontal) 01059 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, 01060 // Length and number of words of that length 01061 3, 16, 01062 // Coordinates where words start and direction (0 = horizontal) 01063 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, 01064 // End marker 01065 0 01066 }; 01067 01068 01069 /* 01070 * Name: 15.10, 15 x 15 01071 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01072 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01073 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 01074 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 01075 * (* * * * _ _ _ _ * _ _ _ _ _ _) 01076 * (_ _ _ _ _ * * _ _ _ _ _ * * *) 01077 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01078 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 01079 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 01080 * (* * * _ _ _ _ _ * * _ _ _ _ _) 01081 * (_ _ _ _ _ _ * _ _ _ _ * * * *) 01082 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01083 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01084 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01085 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 01086 */ 01087 const int g19[] = { 01088 // Width and height of crossword grid 01089 15, 15, 01090 // Number of black fields 01091 35, 01092 // Black field coordinates 01093 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, 01094 // Total number of words in grid 01095 72, 01096 // Length and number of words of that length 01097 10, 8, 01098 // Coordinates where words start and direction (0 = horizontal) 01099 0,2,0, 0,3,0, 0,8,0, 3,5,1, 5,6,0, 5,11,0, 5,12,0, 11,0,1, 01100 // Length and number of words of that length 01101 9, 2, 01102 // Coordinates where words start and direction (0 = horizontal) 01103 5,6,1, 9,0,1, 01104 // Length and number of words of that length 01105 7, 4, 01106 // Coordinates where words start and direction (0 = horizontal) 01107 0,7,0, 7,0,1, 7,8,1, 8,7,0, 01108 // Length and number of words of that length 01109 6, 2, 01110 // Coordinates where words start and direction (0 = horizontal) 01111 0,10,0, 9,4,0, 01112 // Length and number of words of that length 01113 5, 18, 01114 // Coordinates where words start and direction (0 = horizontal) 01115 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, 01116 // Length and number of words of that length 01117 4, 38, 01118 // Coordinates where words start and direction (0 = horizontal) 01119 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, 01120 // End marker 01121 0 01122 }; 01123 01124 01125 /* 01126 * Name: 19.01, 19 x 19 01127 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01128 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01129 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 01130 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 01131 * (* * * _ _ _ * _ _ _ _ * _ _ _ _ * * *) 01132 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 01133 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 01134 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01135 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01136 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 01137 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 01138 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 01139 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01140 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01141 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ * * *) 01142 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 01143 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 01144 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01145 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01146 */ 01147 const int g20[] = { 01148 // Width and height of crossword grid 01149 19, 19, 01150 // Number of black fields 01151 60, 01152 // Black field coordinates 01153 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, 01154 // Total number of words in grid 01155 128, 01156 // Length and number of words of that length 01157 9, 6, 01158 // Coordinates where words start and direction (0 = horizontal) 01159 0,2,0, 0,16,0, 2,5,1, 10,2,0, 10,16,0, 16,5,1, 01160 // Length and number of words of that length 01161 8, 4, 01162 // Coordinates where words start and direction (0 = horizontal) 01163 0,13,0, 5,11,1, 11,5,0, 13,0,1, 01164 // Length and number of words of that length 01165 7, 8, 01166 // Coordinates where words start and direction (0 = horizontal) 01167 0,3,0, 0,8,0, 3,0,1, 8,0,1, 10,12,1, 12,10,0, 12,15,0, 15,12,1, 01168 // Length and number of words of that length 01169 6, 4, 01170 // Coordinates where words start and direction (0 = horizontal) 01171 0,15,0, 3,13,1, 13,3,0, 15,0,1, 01172 // Length and number of words of that length 01173 5, 24, 01174 // Coordinates where words start and direction (0 = horizontal) 01175 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, 01176 // Length and number of words of that length 01177 4, 70, 01178 // Coordinates where words start and direction (0 = horizontal) 01179 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, 01180 // Length and number of words of that length 01181 3, 12, 01182 // Coordinates where words start and direction (0 = horizontal) 01183 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, 01184 // End marker 01185 0 01186 }; 01187 01188 01189 /* 01190 * Name: 19.02, 19 x 19 01191 * (_ _ _ _ _ * * _ _ _ _ _ * * _ _ _ _ _) 01192 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01193 * (_ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 01194 * (_ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _) 01195 * (* * * _ _ _ _ _ _ * _ _ _ _ _ _ _ * *) 01196 * (_ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _) 01197 * (_ _ _ _ _ * * _ _ _ _ _ _ _ * * _ _ _) 01198 * (_ _ _ * * _ _ _ _ _ _ _ _ * _ _ _ _ _) 01199 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ _ _ _) 01200 * (* * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * *) 01201 * (_ _ _ _ _ _ * * * _ _ _ _ _ * _ _ _ _) 01202 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ * * _ _ _) 01203 * (_ _ _ * * _ _ _ _ _ _ _ * * _ _ _ _ _) 01204 * (_ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _) 01205 * (* * _ _ _ _ _ _ _ * _ _ _ _ _ _ * * *) 01206 * (_ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _) 01207 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _) 01208 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01209 * (_ _ _ _ _ * * _ _ _ _ _ * * _ _ _ _ _) 01210 */ 01211 const int g21[] = { 01212 // Width and height of crossword grid 01213 19, 19, 01214 // Number of black fields 01215 65, 01216 // Black field coordinates 01217 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, 01218 // Total number of words in grid 01219 118, 01220 // Length and number of words of that length 01221 14, 2, 01222 // Coordinates where words start and direction (0 = horizontal) 01223 2,5,1, 16,0,1, 01224 // Length and number of words of that length 01225 13, 2, 01226 // Coordinates where words start and direction (0 = horizontal) 01227 0,2,0, 6,16,0, 01228 // Length and number of words of that length 01229 8, 2, 01230 // Coordinates where words start and direction (0 = horizontal) 01231 5,7,0, 6,11,0, 01232 // Length and number of words of that length 01233 7, 16, 01234 // Coordinates where words start and direction (0 = horizontal) 01235 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, 01236 // Length and number of words of that length 01237 6, 6, 01238 // Coordinates where words start and direction (0 = horizontal) 01239 0,10,0, 3,4,0, 3,13,1, 10,14,0, 13,8,0, 15,0,1, 01240 // Length and number of words of that length 01241 5, 30, 01242 // Coordinates where words start and direction (0 = horizontal) 01243 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, 01244 // Length and number of words of that length 01245 4, 44, 01246 // Coordinates where words start and direction (0 = horizontal) 01247 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, 01248 // Length and number of words of that length 01249 3, 16, 01250 // Coordinates where words start and direction (0 = horizontal) 01251 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, 01252 // End marker 01253 0 01254 }; 01255 01256 01257 /* 01258 * Name: 19.03, 19 x 19 01259 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01260 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01261 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01262 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 01263 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01264 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01265 * (* * * _ _ _ _ _ * _ _ _ _ _ _ _ * * *) 01266 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 01267 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 01268 * (_ _ _ * * _ _ _ _ _ _ _ _ _ * * _ _ _) 01269 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 01270 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 01271 * (* * * _ _ _ _ _ _ _ * _ _ _ _ _ * * *) 01272 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01273 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01274 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 01275 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01276 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01277 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01278 */ 01279 const int g22[] = { 01280 // Width and height of crossword grid 01281 19, 19, 01282 // Number of black fields 01283 54, 01284 // Black field coordinates 01285 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, 01286 // Total number of words in grid 01287 118, 01288 // Length and number of words of that length 01289 9, 2, 01290 // Coordinates where words start and direction (0 = horizontal) 01291 5,9,0, 9,5,1, 01292 // Length and number of words of that length 01293 8, 4, 01294 // Coordinates where words start and direction (0 = horizontal) 01295 0,10,0, 8,11,1, 10,0,1, 11,8,0, 01296 // Length and number of words of that length 01297 7, 16, 01298 // Coordinates where words start and direction (0 = horizontal) 01299 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, 01300 // Length and number of words of that length 01301 6, 28, 01302 // Coordinates where words start and direction (0 = horizontal) 01303 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, 01304 // Length and number of words of that length 01305 5, 32, 01306 // Coordinates where words start and direction (0 = horizontal) 01307 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, 01308 // Length and number of words of that length 01309 4, 16, 01310 // Coordinates where words start and direction (0 = horizontal) 01311 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, 01312 // Length and number of words of that length 01313 3, 20, 01314 // Coordinates where words start and direction (0 = horizontal) 01315 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, 01316 // End marker 01317 0 01318 }; 01319 01320 01321 /* 01322 * Name: 19.04, 19 x 19 01323 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01324 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01325 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01326 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 01327 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 01328 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 01329 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01330 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 01331 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01332 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 01333 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01334 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 01335 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01336 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 01337 * (_ _ _ _ * _ _ _ * * * _ _ _ * _ _ _ _) 01338 * (_ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _) 01339 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01340 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01341 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 01342 */ 01343 const int g23[] = { 01344 // Width and height of crossword grid 01345 19, 19, 01346 // Number of black fields 01347 65, 01348 // Black field coordinates 01349 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, 01350 // Total number of words in grid 01351 132, 01352 // Length and number of words of that length 01353 13, 4, 01354 // Coordinates where words start and direction (0 = horizontal) 01355 3,5,0, 3,13,0, 5,3,1, 13,3,1, 01356 // Length and number of words of that length 01357 7, 12, 01358 // Coordinates where words start and direction (0 = horizontal) 01359 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, 01360 // Length and number of words of that length 01361 6, 8, 01362 // Coordinates where words start and direction (0 = horizontal) 01363 0,6,0, 0,12,0, 6,0,1, 6,13,1, 12,0,1, 12,13,1, 13,6,0, 13,12,0, 01364 // Length and number of words of that length 01365 5, 28, 01366 // Coordinates where words start and direction (0 = horizontal) 01367 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, 01368 // Length and number of words of that length 01369 4, 28, 01370 // Coordinates where words start and direction (0 = horizontal) 01371 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, 01372 // Length and number of words of that length 01373 3, 52, 01374 // Coordinates where words start and direction (0 = horizontal) 01375 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, 01376 // End marker 01377 0 01378 }; 01379 01380 01381 /* 01382 * Name: 19.05, 19 x 19 01383 * (_ _ _ _ * * _ _ _ * _ _ _ _ * _ _ _ _) 01384 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01385 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01386 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _ _ * * *) 01387 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01388 * (_ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _) 01389 * (_ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _) 01390 * (_ _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _) 01391 * (_ _ _ _ * * _ _ _ _ _ * _ _ _ _ * * *) 01392 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01393 * (* * * _ _ _ _ * _ _ _ _ _ * * _ _ _ _) 01394 * (_ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ _) 01395 * (_ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _) 01396 * (_ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _) 01397 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 01398 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ _ _ _) 01399 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01400 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01401 * (_ _ _ _ * _ _ _ _ * _ _ _ * * _ _ _ _) 01402 */ 01403 const int g24[] = { 01404 // Width and height of crossword grid 01405 19, 19, 01406 // Number of black fields 01407 70, 01408 // Black field coordinates 01409 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, 01410 // Total number of words in grid 01411 126, 01412 // Length and number of words of that length 01413 19, 1, 01414 // Coordinates where words start and direction (0 = horizontal) 01415 0,9,0, 01416 // Length and number of words of that length 01417 16, 2, 01418 // Coordinates where words start and direction (0 = horizontal) 01419 0,14,0, 3,4,0, 01420 // Length and number of words of that length 01421 7, 10, 01422 // Coordinates where words start and direction (0 = horizontal) 01423 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, 01424 // Length and number of words of that length 01425 6, 8, 01426 // Coordinates where words start and direction (0 = horizontal) 01427 0,5,0, 3,0,1, 7,4,1, 8,0,1, 10,13,1, 11,9,1, 13,13,0, 15,13,1, 01428 // Length and number of words of that length 01429 5, 18, 01430 // Coordinates where words start and direction (0 = horizontal) 01431 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, 01432 // Length and number of words of that length 01433 4, 62, 01434 // Coordinates where words start and direction (0 = horizontal) 01435 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, 01436 // Length and number of words of that length 01437 3, 25, 01438 // Coordinates where words start and direction (0 = horizontal) 01439 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, 01440 // End marker 01441 0 01442 }; 01443 01444 01445 /* 01446 * Name: 19.06, 19 x 19 01447 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01448 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01449 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01450 * (* _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * * *) 01451 * (* * * _ _ _ * * _ _ _ * * _ _ _ _ * *) 01452 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 01453 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 01454 * (_ _ _ _ * _ _ _ * _ _ _ _ _ * * _ _ _) 01455 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01456 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 01457 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 01458 * (_ _ _ * * _ _ _ _ _ * _ _ _ * _ _ _ _) 01459 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 01460 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01461 * (* * _ _ _ _ * * _ _ _ * * _ _ _ * * *) 01462 * (* * * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ *) 01463 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01464 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01465 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01466 */ 01467 const int g25[] = { 01468 // Width and height of crossword grid 01469 19, 19, 01470 // Number of black fields 01471 74, 01472 // Black field coordinates 01473 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, 01474 // Total number of words in grid 01475 128, 01476 // Length and number of words of that length 01477 11, 4, 01478 // Coordinates where words start and direction (0 = horizontal) 01479 3,0,1, 3,15,0, 5,3,0, 15,8,1, 01480 // Length and number of words of that length 01481 10, 2, 01482 // Coordinates where words start and direction (0 = horizontal) 01483 2,5,1, 16,4,1, 01484 // Length and number of words of that length 01485 8, 4, 01486 // Coordinates where words start and direction (0 = horizontal) 01487 0,13,0, 5,11,1, 11,5,0, 13,0,1, 01488 // Length and number of words of that length 01489 7, 4, 01490 // Coordinates where words start and direction (0 = horizontal) 01491 0,8,0, 8,0,1, 10,12,1, 12,10,0, 01492 // Length and number of words of that length 01493 6, 2, 01494 // Coordinates where words start and direction (0 = horizontal) 01495 3,13,1, 15,0,1, 01496 // Length and number of words of that length 01497 5, 22, 01498 // Coordinates where words start and direction (0 = horizontal) 01499 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, 01500 // Length and number of words of that length 01501 4, 58, 01502 // Coordinates where words start and direction (0 = horizontal) 01503 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, 01504 // Length and number of words of that length 01505 3, 32, 01506 // Coordinates where words start and direction (0 = horizontal) 01507 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, 01508 // End marker 01509 0 01510 }; 01511 01512 01513 /* 01514 * Name: 19.07, 19 x 19 01515 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 01516 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 01517 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 01518 * (_ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _) 01519 * (* * * * _ _ _ * _ _ _ _ * _ _ _ * * *) 01520 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 01521 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 01522 * (_ _ _ _ * _ _ _ * * _ _ _ * * _ _ _ _) 01523 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 01524 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ * * *) 01525 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 01526 * (_ _ _ _ * * _ _ _ * * _ _ _ * _ _ _ _) 01527 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01528 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 01529 * (* * * _ _ _ * _ _ _ _ * _ _ _ * * * *) 01530 * (_ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _) 01531 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01532 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01533 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01534 */ 01535 const int g26[] = { 01536 // Width and height of crossword grid 01537 19, 19, 01538 // Number of black fields 01539 70, 01540 // Black field coordinates 01541 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, 01542 // Total number of words in grid 01543 134, 01544 // Length and number of words of that length 01545 15, 2, 01546 // Coordinates where words start and direction (0 = horizontal) 01547 0,2,0, 4,16,0, 01548 // Length and number of words of that length 01549 11, 2, 01550 // Coordinates where words start and direction (0 = horizontal) 01551 3,5,1, 15,3,1, 01552 // Length and number of words of that length 01553 8, 2, 01554 // Coordinates where words start and direction (0 = horizontal) 01555 0,12,0, 11,6,0, 01556 // Length and number of words of that length 01557 7, 8, 01558 // Coordinates where words start and direction (0 = horizontal) 01559 0,8,0, 0,13,0, 4,0,1, 9,0,1, 9,12,1, 12,5,0, 12,10,0, 14,12,1, 01560 // Length and number of words of that length 01561 6, 4, 01562 // Coordinates where words start and direction (0 = horizontal) 01563 0,5,0, 0,10,0, 13,8,0, 13,13,0, 01564 // Length and number of words of that length 01565 5, 10, 01566 // Coordinates where words start and direction (0 = horizontal) 01567 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, 01568 // Length and number of words of that length 01569 4, 66, 01570 // Coordinates where words start and direction (0 = horizontal) 01571 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, 01572 // Length and number of words of that length 01573 3, 40, 01574 // Coordinates where words start and direction (0 = horizontal) 01575 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, 01576 // End marker 01577 0 01578 }; 01579 01580 01581 /* 01582 * Name: 19.08, 19 x 19 01583 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01584 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01585 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01586 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 01587 * (* * * _ _ _ * * _ _ _ _ * _ _ _ * * *) 01588 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01589 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01590 * (_ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _) 01591 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 01592 * (* * * _ _ _ * _ _ _ _ _ * _ _ _ * * *) 01593 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01594 * (_ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _) 01595 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 01596 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 01597 * (* * * _ _ _ * _ _ _ _ * * _ _ _ * * *) 01598 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01599 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01600 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01601 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01602 */ 01603 const int g27[] = { 01604 // Width and height of crossword grid 01605 19, 19, 01606 // Number of black fields 01607 66, 01608 // Black field coordinates 01609 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, 01610 // Total number of words in grid 01611 130, 01612 // Length and number of words of that length 01613 12, 2, 01614 // Coordinates where words start and direction (0 = horizontal) 01615 3,7,1, 15,0,1, 01616 // Length and number of words of that length 01617 10, 2, 01618 // Coordinates where words start and direction (0 = horizontal) 01619 0,3,0, 9,15,0, 01620 // Length and number of words of that length 01621 8, 8, 01622 // Coordinates where words start and direction (0 = horizontal) 01623 0,5,0, 0,15,0, 5,0,1, 7,11,1, 11,0,1, 11,3,0, 11,13,0, 13,11,1, 01624 // Length and number of words of that length 01625 7, 2, 01626 // Coordinates where words start and direction (0 = horizontal) 01627 0,10,0, 12,8,0, 01628 // Length and number of words of that length 01629 6, 2, 01630 // Coordinates where words start and direction (0 = horizontal) 01631 3,0,1, 15,13,1, 01632 // Length and number of words of that length 01633 5, 20, 01634 // Coordinates where words start and direction (0 = horizontal) 01635 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, 01636 // Length and number of words of that length 01637 4, 74, 01638 // Coordinates where words start and direction (0 = horizontal) 01639 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, 01640 // Length and number of words of that length 01641 3, 20, 01642 // Coordinates where words start and direction (0 = horizontal) 01643 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, 01644 // End marker 01645 0 01646 }; 01647 01648 01649 /* 01650 * Name: 19.09, 19 x 19 01651 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01652 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01653 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01654 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 01655 * (* * * _ _ _ _ * _ _ _ * * _ _ _ _ * *) 01656 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 01657 * (_ _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _) 01658 * (_ _ _ * * _ _ _ * _ _ _ _ _ * * _ _ _) 01659 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01660 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 01661 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 01662 * (_ _ _ * * _ _ _ _ _ * _ _ _ * * _ _ _) 01663 * (_ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ _) 01664 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 01665 * (* * _ _ _ _ * * _ _ _ * _ _ _ _ * * *) 01666 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01667 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01668 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01669 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01670 */ 01671 const int g28[] = { 01672 // Width and height of crossword grid 01673 19, 19, 01674 // Number of black fields 01675 66, 01676 // Black field coordinates 01677 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, 01678 // Total number of words in grid 01679 130, 01680 // Length and number of words of that length 01681 15, 2, 01682 // Coordinates where words start and direction (0 = horizontal) 01683 0,3,0, 4,15,0, 01684 // Length and number of words of that length 01685 14, 2, 01686 // Coordinates where words start and direction (0 = horizontal) 01687 2,5,1, 16,0,1, 01688 // Length and number of words of that length 01689 8, 4, 01690 // Coordinates where words start and direction (0 = horizontal) 01691 0,13,0, 5,11,1, 11,5,0, 13,0,1, 01692 // Length and number of words of that length 01693 7, 6, 01694 // Coordinates where words start and direction (0 = horizontal) 01695 0,8,0, 3,0,1, 8,0,1, 10,12,1, 12,10,0, 15,12,1, 01696 // Length and number of words of that length 01697 6, 4, 01698 // Coordinates where words start and direction (0 = horizontal) 01699 0,5,0, 5,0,1, 13,13,0, 13,13,1, 01700 // Length and number of words of that length 01701 5, 18, 01702 // Coordinates where words start and direction (0 = horizontal) 01703 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, 01704 // Length and number of words of that length 01705 4, 62, 01706 // Coordinates where words start and direction (0 = horizontal) 01707 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, 01708 // Length and number of words of that length 01709 3, 32, 01710 // Coordinates where words start and direction (0 = horizontal) 01711 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, 01712 // End marker 01713 0 01714 }; 01715 01716 01717 /* 01718 * Name: 19.10, 19 x 19 01719 * (_ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 01720 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01721 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01722 * (_ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ *) 01723 * (* * * _ _ _ * _ _ _ _ * _ _ _ _ * * *) 01724 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 01725 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _) 01726 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01727 * (* _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _) 01728 * (* * * _ _ _ _ _ _ _ _ _ _ _ _ _ * * *) 01729 * (_ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ *) 01730 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 01731 * (_ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 01732 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01733 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ * * *) 01734 * (* _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _) 01735 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 01736 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 01737 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _) 01738 */ 01739 const int g29[] = { 01740 // Width and height of crossword grid 01741 19, 19, 01742 // Number of black fields 01743 70, 01744 // Black field coordinates 01745 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, 01746 // Total number of words in grid 01747 128, 01748 // Length and number of words of that length 01749 19, 2, 01750 // Coordinates where words start and direction (0 = horizontal) 01751 0,2,0, 0,16,0, 01752 // Length and number of words of that length 01753 13, 1, 01754 // Coordinates where words start and direction (0 = horizontal) 01755 3,9,0, 01756 // Length and number of words of that length 01757 8, 2, 01758 // Coordinates where words start and direction (0 = horizontal) 01759 0,13,0, 11,5,0, 01760 // Length and number of words of that length 01761 7, 4, 01762 // Coordinates where words start and direction (0 = horizontal) 01763 0,3,0, 8,0,1, 10,12,1, 12,15,0, 01764 // Length and number of words of that length 01765 6, 6, 01766 // Coordinates where words start and direction (0 = horizontal) 01767 1,8,0, 3,1,1, 3,13,1, 12,10,0, 15,0,1, 15,12,1, 01768 // Length and number of words of that length 01769 5, 17, 01770 // Coordinates where words start and direction (0 = horizontal) 01771 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, 01772 // Length and number of words of that length 01773 4, 78, 01774 // Coordinates where words start and direction (0 = horizontal) 01775 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, 01776 // Length and number of words of that length 01777 3, 18, 01778 // Coordinates where words start and direction (0 = horizontal) 01779 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, 01780 // End marker 01781 0 01782 }; 01783 01784 01785 /* 01786 * Name: 21.01, 21 x 21 01787 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01788 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01789 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01790 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01791 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 01792 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 01793 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 01794 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 01795 * (_ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 01796 * (_ _ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _ _) 01797 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 01798 * (_ _ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _ _) 01799 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _) 01800 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 01801 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 01802 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 01803 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 01804 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 01805 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 01806 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01807 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01808 */ 01809 const int g30[] = { 01810 // Width and height of crossword grid 01811 21, 21, 01812 // Number of black fields 01813 68, 01814 // Black field coordinates 01815 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, 01816 // Total number of words in grid 01817 138, 01818 // Length and number of words of that length 01819 12, 2, 01820 // Coordinates where words start and direction (0 = horizontal) 01821 5,7,1, 15,2,1, 01822 // Length and number of words of that length 01823 11, 4, 01824 // Coordinates where words start and direction (0 = horizontal) 01825 2,5,1, 4,14,0, 6,6,0, 18,5,1, 01826 // Length and number of words of that length 01827 10, 4, 01828 // Coordinates where words start and direction (0 = horizontal) 01829 0,2,0, 0,18,0, 11,2,0, 11,18,0, 01830 // Length and number of words of that length 01831 9, 2, 01832 // Coordinates where words start and direction (0 = horizontal) 01833 4,8,0, 8,12,0, 01834 // Length and number of words of that length 01835 8, 8, 01836 // Coordinates where words start and direction (0 = horizontal) 01837 0,3,0, 0,9,0, 0,15,0, 3,0,1, 13,5,0, 13,11,0, 13,17,0, 17,13,1, 01838 // Length and number of words of that length 01839 7, 8, 01840 // Coordinates where words start and direction (0 = horizontal) 01841 0,12,0, 4,14,1, 9,0,1, 9,14,1, 11,0,1, 11,14,1, 14,8,0, 16,0,1, 01842 // Length and number of words of that length 01843 6, 10, 01844 // Coordinates where words start and direction (0 = horizontal) 01845 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, 01846 // Length and number of words of that length 01847 5, 50, 01848 // Coordinates where words start and direction (0 = horizontal) 01849 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, 01850 // Length and number of words of that length 01851 4, 40, 01852 // Coordinates where words start and direction (0 = horizontal) 01853 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, 01854 // Length and number of words of that length 01855 3, 10, 01856 // Coordinates where words start and direction (0 = horizontal) 01857 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, 01858 // End marker 01859 0 01860 }; 01861 01862 01863 /* 01864 * Name: 21.02, 21 x 21 01865 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01866 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01867 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01868 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 01869 * (* * * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * * *) 01870 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _) 01871 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 01872 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01873 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 01874 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 01875 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 01876 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _) 01877 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01878 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 01879 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 01880 * (_ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 01881 * (* * * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * * *) 01882 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01883 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01884 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01885 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 01886 */ 01887 const int g31[] = { 01888 // Width and height of crossword grid 01889 21, 21, 01890 // Number of black fields 01891 72, 01892 // Black field coordinates 01893 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, 01894 // Total number of words in grid 01895 150, 01896 // Length and number of words of that length 01897 12, 2, 01898 // Coordinates where words start and direction (0 = horizontal) 01899 0,11,0, 9,9,0, 01900 // Length and number of words of that length 01901 9, 4, 01902 // Coordinates where words start and direction (0 = horizontal) 01903 0,17,0, 3,0,1, 12,3,0, 17,12,1, 01904 // Length and number of words of that length 01905 8, 4, 01906 // Coordinates where words start and direction (0 = horizontal) 01907 9,0,1, 9,9,1, 11,4,1, 11,13,1, 01908 // Length and number of words of that length 01909 7, 8, 01910 // Coordinates where words start and direction (0 = horizontal) 01911 0,5,0, 5,14,1, 6,7,1, 7,6,0, 7,14,0, 14,7,1, 14,15,0, 15,0,1, 01912 // Length and number of words of that length 01913 6, 12, 01914 // Coordinates where words start and direction (0 = horizontal) 01915 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, 01916 // Length and number of words of that length 01917 5, 54, 01918 // Coordinates where words start and direction (0 = horizontal) 01919 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, 01920 // Length and number of words of that length 01921 4, 50, 01922 // Coordinates where words start and direction (0 = horizontal) 01923 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, 01924 // Length and number of words of that length 01925 3, 16, 01926 // Coordinates where words start and direction (0 = horizontal) 01927 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, 01928 // End marker 01929 0 01930 }; 01931 01932 01933 /* 01934 * Name: 21.03, 21 x 21 01935 * (_ _ _ _ * * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01936 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01937 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 01938 * (_ _ _ * _ _ _ _ _ * * _ _ _ _ _ _ _ _ * *) 01939 * (_ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ * _ _ _) 01940 * (* * _ _ _ * _ _ _ _ _ * _ _ _ _ * * _ _ _) 01941 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _) 01942 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 01943 * (_ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _ _ _ *) 01944 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ * * *) 01945 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 01946 * (* * * _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01947 * (* _ _ _ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _) 01948 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _) 01949 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 01950 * (_ _ _ * * _ _ _ _ * _ _ _ _ _ * _ _ _ * *) 01951 * (_ _ _ * _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _) 01952 * (* * _ _ _ _ _ _ _ _ * * _ _ _ _ _ * _ _ _) 01953 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01954 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 01955 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * * _ _ _ _) 01956 */ 01957 const int g32[] = { 01958 // Width and height of crossword grid 01959 21, 21, 01960 // Number of black fields 01961 79, 01962 // Black field coordinates 01963 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, 01964 // Total number of words in grid 01965 144, 01966 // Length and number of words of that length 01967 11, 2, 01968 // Coordinates where words start and direction (0 = horizontal) 01969 2,0,1, 18,10,1, 01970 // Length and number of words of that length 01971 9, 2, 01972 // Coordinates where words start and direction (0 = horizontal) 01973 2,12,1, 18,0,1, 01974 // Length and number of words of that length 01975 8, 12, 01976 // Coordinates where words start and direction (0 = horizontal) 01977 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, 01978 // Length and number of words of that length 01979 7, 8, 01980 // Coordinates where words start and direction (0 = horizontal) 01981 0,7,0, 6,14,1, 7,0,1, 8,9,1, 12,5,1, 13,14,1, 14,0,1, 14,13,0, 01982 // Length and number of words of that length 01983 6, 18, 01984 // Coordinates where words start and direction (0 = horizontal) 01985 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, 01986 // Length and number of words of that length 01987 5, 42, 01988 // Coordinates where words start and direction (0 = horizontal) 01989 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, 01990 // Length and number of words of that length 01991 4, 34, 01992 // Coordinates where words start and direction (0 = horizontal) 01993 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, 01994 // Length and number of words of that length 01995 3, 26, 01996 // Coordinates where words start and direction (0 = horizontal) 01997 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, 01998 // End marker 01999 0 02000 }; 02001 02002 02003 /* 02004 * Name: 21.04, 21 x 21 02005 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02006 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02007 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02008 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02009 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02010 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02011 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 02012 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02013 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02014 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02015 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02016 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02017 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02018 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02019 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 02020 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02021 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02022 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02023 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02024 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02025 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02026 */ 02027 const int g33[] = { 02028 // Width and height of crossword grid 02029 21, 21, 02030 // Number of black fields 02031 63, 02032 // Black field coordinates 02033 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, 02034 // Total number of words in grid 02035 144, 02036 // Length and number of words of that length 02037 8, 8, 02038 // Coordinates where words start and direction (0 = horizontal) 02039 0,6,0, 0,14,0, 6,0,1, 6,13,1, 13,6,0, 13,14,0, 14,0,1, 14,13,1, 02040 // Length and number of words of that length 02041 7, 32, 02042 // Coordinates where words start and direction (0 = horizontal) 02043 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, 02044 // Length and number of words of that length 02045 6, 8, 02046 // Coordinates where words start and direction (0 = horizontal) 02047 0,8,0, 0,12,0, 8,0,1, 8,15,1, 12,0,1, 12,15,1, 15,8,0, 15,12,0, 02048 // Length and number of words of that length 02049 5, 56, 02050 // Coordinates where words start and direction (0 = horizontal) 02051 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, 02052 // Length and number of words of that length 02053 4, 20, 02054 // Coordinates where words start and direction (0 = horizontal) 02055 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, 02056 // Length and number of words of that length 02057 3, 20, 02058 // Coordinates where words start and direction (0 = horizontal) 02059 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, 02060 // End marker 02061 0 02062 }; 02063 02064 02065 /* 02066 * Name: 21.05, 21 x 21 02067 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02068 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02069 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02070 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02071 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02072 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02073 * (* * * _ _ _ * * * _ _ _ * * * _ _ _ * * *) 02074 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02075 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02076 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02077 * (_ _ _ _ * _ _ _ _ * * * _ _ _ _ * _ _ _ _) 02078 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _) 02079 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02080 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02081 * (* * * _ _ _ * * * _ _ _ * * * _ _ _ * * *) 02082 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02083 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02084 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02085 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02086 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02087 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02088 */ 02089 const int g34[] = { 02090 // Width and height of crossword grid 02091 21, 21, 02092 // Number of black fields 02093 73, 02094 // Black field coordinates 02095 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, 02096 // Total number of words in grid 02097 144, 02098 // Length and number of words of that length 02099 7, 24, 02100 // Coordinates where words start and direction (0 = horizontal) 02101 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, 02102 // Length and number of words of that length 02103 6, 44, 02104 // Coordinates where words start and direction (0 = horizontal) 02105 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, 02106 // Length and number of words of that length 02107 5, 28, 02108 // Coordinates where words start and direction (0 = horizontal) 02109 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, 02110 // Length and number of words of that length 02111 4, 20, 02112 // Coordinates where words start and direction (0 = horizontal) 02113 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, 02114 // Length and number of words of that length 02115 3, 28, 02116 // Coordinates where words start and direction (0 = horizontal) 02117 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, 02118 // End marker 02119 0 02120 }; 02121 02122 02123 /* 02124 * Name: 21.06, 21 x 21 02125 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02126 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02127 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 02128 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 02129 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02130 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02131 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02132 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02133 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02134 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02135 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 02136 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02137 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02138 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02139 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02140 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02141 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02142 * (_ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _) 02143 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 02144 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02145 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02146 */ 02147 const int g35[] = { 02148 // Width and height of crossword grid 02149 21, 21, 02150 // Number of black fields 02151 68, 02152 // Black field coordinates 02153 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, 02154 // Total number of words in grid 02155 146, 02156 // Length and number of words of that length 02157 11, 4, 02158 // Coordinates where words start and direction (0 = horizontal) 02159 2,5,1, 5,2,0, 5,18,0, 18,5,1, 02160 // Length and number of words of that length 02161 8, 12, 02162 // Coordinates where words start and direction (0 = horizontal) 02163 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, 02164 // Length and number of words of that length 02165 7, 8, 02166 // Coordinates where words start and direction (0 = horizontal) 02167 4,8,0, 5,7,1, 7,5,0, 7,15,0, 8,10,1, 10,12,0, 12,4,1, 15,7,1, 02168 // Length and number of words of that length 02169 6, 12, 02170 // Coordinates where words start and direction (0 = horizontal) 02171 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, 02172 // Length and number of words of that length 02173 5, 54, 02174 // Coordinates where words start and direction (0 = horizontal) 02175 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, 02176 // Length and number of words of that length 02177 4, 40, 02178 // Coordinates where words start and direction (0 = horizontal) 02179 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, 02180 // Length and number of words of that length 02181 3, 16, 02182 // Coordinates where words start and direction (0 = horizontal) 02183 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, 02184 // End marker 02185 0 02186 }; 02187 02188 02189 /* 02190 * Name: 21.07, 21 x 21 02191 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02192 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02193 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 02194 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02195 * (* * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * *) 02196 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02197 * (_ _ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _ _) 02198 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02199 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 02200 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02201 * (* * * _ _ _ _ _ * * * * * _ _ _ _ _ * * *) 02202 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _) 02203 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 02204 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02205 * (_ _ _ _ * _ _ _ * _ _ _ * _ _ _ * _ _ _ _) 02206 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02207 * (* * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * *) 02208 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02209 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 02210 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02211 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02212 */ 02213 const int g36[] = { 02214 // Width and height of crossword grid 02215 21, 21, 02216 // Number of black fields 02217 73, 02218 // Black field coordinates 02219 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, 02220 // Total number of words in grid 02221 152, 02222 // Length and number of words of that length 02223 10, 8, 02224 // Coordinates where words start and direction (0 = horizontal) 02225 0,2,0, 0,18,0, 2,0,1, 2,11,1, 11,2,0, 11,18,0, 18,0,1, 18,11,1, 02226 // Length and number of words of that length 02227 7, 16, 02228 // Coordinates where words start and direction (0 = horizontal) 02229 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, 02230 // Length and number of words of that length 02231 6, 12, 02232 // Coordinates where words start and direction (0 = horizontal) 02233 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, 02234 // Length and number of words of that length 02235 5, 44, 02236 // Coordinates where words start and direction (0 = horizontal) 02237 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, 02238 // Length and number of words of that length 02239 4, 36, 02240 // Coordinates where words start and direction (0 = horizontal) 02241 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, 02242 // Length and number of words of that length 02243 3, 36, 02244 // Coordinates where words start and direction (0 = horizontal) 02245 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, 02246 // End marker 02247 0 02248 }; 02249 02250 02251 /* 02252 * Name: 21.08, 21 x 21 02253 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02254 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02255 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02256 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02257 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02258 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02259 * (_ _ _ _ _ * * _ _ _ _ * _ _ _ _ _ * _ _ _) 02260 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02261 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02262 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02263 * (* * * _ _ _ _ * * _ _ _ * * _ _ _ _ * * *) 02264 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _) 02265 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02266 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02267 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * * _ _ _ _ _) 02268 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02269 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02270 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02271 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02272 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02273 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02274 */ 02275 const int g37[] = { 02276 // Width and height of crossword grid 02277 21, 21, 02278 // Number of black fields 02279 76, 02280 // Black field coordinates 02281 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, 02282 // Total number of words in grid 02283 150, 02284 // Length and number of words of that length 02285 9, 2, 02286 // Coordinates where words start and direction (0 = horizontal) 02287 0,9,0, 12,11,0, 02288 // Length and number of words of that length 02289 8, 10, 02290 // Coordinates where words start and direction (0 = horizontal) 02291 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, 02292 // Length and number of words of that length 02293 6, 14, 02294 // Coordinates where words start and direction (0 = horizontal) 02295 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, 02296 // Length and number of words of that length 02297 5, 61, 02298 // Coordinates where words start and direction (0 = horizontal) 02299 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, 02300 // Length and number of words of that length 02301 4, 54, 02302 // Coordinates where words start and direction (0 = horizontal) 02303 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, 02304 // Length and number of words of that length 02305 3, 9, 02306 // Coordinates where words start and direction (0 = horizontal) 02307 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, 02308 // End marker 02309 0 02310 }; 02311 02312 02313 /* 02314 * Name: 21.09, 21 x 21 02315 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 02316 * (* _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ *) 02317 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02318 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02319 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02320 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02321 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02322 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02323 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02324 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02325 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02326 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02327 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02328 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02329 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02330 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02331 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02332 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02333 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02334 * (* _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ *) 02335 * (* * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * *) 02336 */ 02337 const int g38[] = { 02338 // Width and height of crossword grid 02339 21, 21, 02340 // Number of black fields 02341 75, 02342 // Black field coordinates 02343 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, 02344 // Total number of words in grid 02345 144, 02346 // Length and number of words of that length 02347 8, 8, 02348 // Coordinates where words start and direction (0 = horizontal) 02349 0,6,0, 0,12,0, 6,0,1, 8,13,1, 12,0,1, 13,8,0, 13,14,0, 14,13,1, 02350 // Length and number of words of that length 02351 7, 12, 02352 // Coordinates where words start and direction (0 = horizontal) 02353 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, 02354 // Length and number of words of that length 02355 6, 16, 02356 // Coordinates where words start and direction (0 = horizontal) 02357 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, 02358 // Length and number of words of that length 02359 5, 72, 02360 // Coordinates where words start and direction (0 = horizontal) 02361 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, 02362 // Length and number of words of that length 02363 4, 20, 02364 // Coordinates where words start and direction (0 = horizontal) 02365 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, 02366 // Length and number of words of that length 02367 3, 16, 02368 // Coordinates where words start and direction (0 = horizontal) 02369 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, 02370 // End marker 02371 0 02372 }; 02373 02374 02375 /* 02376 * Name: 21.10, 21 x 21 02377 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02378 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02379 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02380 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 02381 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _ _) 02382 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _) 02383 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 02384 * (* * * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * * *) 02385 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 02386 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _) 02387 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02388 * (_ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02389 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 02390 * (* * * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * * *) 02391 * (_ _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ _) 02392 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02393 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 02394 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 02395 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02396 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02397 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02398 */ 02399 const int g39[] = { 02400 // Width and height of crossword grid 02401 21, 21, 02402 // Number of black fields 02403 58, 02404 // Black field coordinates 02405 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, 02406 // Total number of words in grid 02407 134, 02408 // Length and number of words of that length 02409 13, 4, 02410 // Coordinates where words start and direction (0 = horizontal) 02411 3,4,1, 4,3,0, 4,17,0, 17,4,1, 02412 // Length and number of words of that length 02413 8, 8, 02414 // Coordinates where words start and direction (0 = horizontal) 02415 0,8,0, 3,13,0, 7,10,1, 8,0,1, 10,7,0, 12,13,1, 13,3,1, 13,12,0, 02416 // Length and number of words of that length 02417 7, 42, 02418 // Coordinates where words start and direction (0 = horizontal) 02419 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, 02420 // Length and number of words of that length 02421 6, 16, 02422 // Coordinates where words start and direction (0 = horizontal) 02423 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, 02424 // Length and number of words of that length 02425 5, 28, 02426 // Coordinates where words start and direction (0 = horizontal) 02427 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, 02428 // Length and number of words of that length 02429 4, 12, 02430 // Coordinates where words start and direction (0 = horizontal) 02431 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, 02432 // Length and number of words of that length 02433 3, 24, 02434 // Coordinates where words start and direction (0 = horizontal) 02435 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, 02436 // End marker 02437 0 02438 }; 02439 02440 02441 /* 02442 * Name: 23.01, 23 x 23 02443 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 02444 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 02445 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 02446 * (_ _ _ _ * _ _ _ * * _ _ _ _ * _ _ _ _ _ _ _ _) 02447 * (_ _ _ * _ _ _ _ _ _ _ _ _ _ _ * * _ _ _ _ _ _) 02448 * (* * * * _ _ _ * _ _ _ * _ _ _ * _ _ _ _ * * *) 02449 * (_ _ _ _ _ _ * _ _ _ * * * _ _ _ _ _ * _ _ _ _) 02450 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02451 * (_ _ _ _ * _ _ _ * * _ _ _ _ _ _ * _ _ _ _ _ _) 02452 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02453 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _ _) 02454 * (* * * _ _ _ _ _ _ _ * * * _ _ _ _ _ _ _ * * *) 02455 * (_ _ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02456 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02457 * (_ _ _ _ _ _ * _ _ _ _ _ _ * * _ _ _ * _ _ _ _) 02458 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02459 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ * _ _ _ _ _ _) 02460 * (* * * _ _ _ _ * _ _ _ * _ _ _ * _ _ _ * * * *) 02461 * (_ _ _ _ _ _ * * _ _ _ _ _ _ _ _ _ _ _ * _ _ _) 02462 * (_ _ _ _ _ _ _ _ * _ _ _ _ * * _ _ _ * _ _ _ _) 02463 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 02464 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 02465 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 02466 */ 02467 const int g40[] = { 02468 // Width and height of crossword grid 02469 23, 23, 02470 // Number of black fields 02471 89, 02472 // Black field coordinates 02473 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, 02474 // Total number of words in grid 02475 172, 02476 // Length and number of words of that length 02477 23, 2, 02478 // Coordinates where words start and direction (0 = horizontal) 02479 0,2,0, 0,20,0, 02480 // Length and number of words of that length 02481 17, 2, 02482 // Coordinates where words start and direction (0 = horizontal) 02483 3,6,1, 19,0,1, 02484 // Length and number of words of that length 02485 12, 2, 02486 // Coordinates where words start and direction (0 = horizontal) 02487 9,9,1, 13,2,1, 02488 // Length and number of words of that length 02489 11, 2, 02490 // Coordinates where words start and direction (0 = horizontal) 02491 4,4,0, 8,18,0, 02492 // Length and number of words of that length 02493 8, 2, 02494 // Coordinates where words start and direction (0 = horizontal) 02495 0,19,0, 15,3,0, 02496 // Length and number of words of that length 02497 7, 16, 02498 // Coordinates where words start and direction (0 = horizontal) 02499 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, 02500 // Length and number of words of that length 02501 6, 24, 02502 // Coordinates where words start and direction (0 = horizontal) 02503 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, 02504 // Length and number of words of that length 02505 5, 38, 02506 // Coordinates where words start and direction (0 = horizontal) 02507 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, 02508 // Length and number of words of that length 02509 4, 40, 02510 // Coordinates where words start and direction (0 = horizontal) 02511 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, 02512 // Length and number of words of that length 02513 3, 44, 02514 // Coordinates where words start and direction (0 = horizontal) 02515 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, 02516 // End marker 02517 0 02518 }; 02519 02520 02521 /* 02522 * Name: 23.02, 23 x 23 02523 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ *) 02524 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02525 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 02526 * (_ _ _ * * _ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _) 02527 * (_ _ _ _ _ _ _ * * _ _ _ _ * _ _ _ _ * _ _ _ _) 02528 * (* * * _ _ _ * _ _ _ _ * * _ _ _ * * _ _ _ _ _) 02529 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * * *) 02530 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 02531 * (_ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 02532 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _) 02533 * (* * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02534 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02535 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * *) 02536 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 02537 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _) 02538 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02539 * (* * * _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02540 * (_ _ _ _ _ * * _ _ _ * * _ _ _ _ * _ _ _ * * *) 02541 * (_ _ _ _ * _ _ _ _ * _ _ _ _ * * _ _ _ _ _ _ _) 02542 * (_ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _ * * _ _ _) 02543 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 02544 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02545 * (* _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02546 */ 02547 const int g41[] = { 02548 // Width and height of crossword grid 02549 23, 23, 02550 // Number of black fields 02551 94, 02552 // Black field coordinates 02553 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, 02554 // Total number of words in grid 02555 182, 02556 // Length and number of words of that length 02557 12, 2, 02558 // Coordinates where words start and direction (0 = horizontal) 02559 0,20,0, 11,2,0, 02560 // Length and number of words of that length 02561 11, 3, 02562 // Coordinates where words start and direction (0 = horizontal) 02563 6,6,1, 11,6,1, 16,6,1, 02564 // Length and number of words of that length 02565 10, 4, 02566 // Coordinates where words start and direction (0 = horizontal) 02567 0,2,0, 2,6,1, 13,20,0, 20,7,1, 02568 // Length and number of words of that length 02569 9, 4, 02570 // Coordinates where words start and direction (0 = horizontal) 02571 5,3,0, 8,10,1, 9,19,0, 14,4,1, 02572 // Length and number of words of that length 02573 8, 2, 02574 // Coordinates where words start and direction (0 = horizontal) 02575 9,0,1, 13,15,1, 02576 // Length and number of words of that length 02577 7, 7, 02578 // Coordinates where words start and direction (0 = horizontal) 02579 0,4,0, 0,11,0, 0,15,0, 8,11,0, 16,7,0, 16,11,0, 16,18,0, 02580 // Length and number of words of that length 02581 6, 8, 02582 // Coordinates where words start and direction (0 = horizontal) 02583 0,21,0, 1,17,1, 2,17,1, 7,17,1, 15,0,1, 17,1,0, 20,0,1, 21,0,1, 02584 // Length and number of words of that length 02585 5, 48, 02586 // Coordinates where words start and direction (0 = horizontal) 02587 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, 02588 // Length and number of words of that length 02589 4, 72, 02590 // Coordinates where words start and direction (0 = horizontal) 02591 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, 02592 // Length and number of words of that length 02593 3, 32, 02594 // Coordinates where words start and direction (0 = horizontal) 02595 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, 02596 // End marker 02597 0 02598 }; 02599 02600 02601 /* 02602 * Name: 23.03, 23 x 23 02603 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02604 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02605 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 02606 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 02607 * (_ _ _ * * _ _ _ * * * _ _ _ _ _ _ _ * _ _ _ _) 02608 * (* * * _ _ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _) 02609 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ * _ _ _ _ * * *) 02610 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 02611 * (_ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _) 02612 * (_ _ _ _ _ _ _ * * _ _ _ _ _ _ _ _ _ * _ _ _ _) 02613 * (_ _ _ * _ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _) 02614 * (* * _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ * *) 02615 * (_ _ _ _ _ _ * _ _ _ _ _ * * _ _ _ _ _ * _ _ _) 02616 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ * * _ _ _ _ _ _ _) 02617 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _) 02618 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02619 * (* * * _ _ _ _ * _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02620 * (_ _ _ _ _ * * _ _ _ _ _ * _ _ _ _ _ _ _ * * *) 02621 * (_ _ _ _ * _ _ _ _ _ _ _ * * * _ _ _ * * _ _ _) 02622 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02623 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 02624 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02625 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02626 */ 02627 const int g42[] = { 02628 // Width and height of crossword grid 02629 23, 23, 02630 // Number of black fields 02631 89, 02632 // Black field coordinates 02633 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, 02634 // Total number of words in grid 02635 174, 02636 // Length and number of words of that length 02637 13, 2, 02638 // Coordinates where words start and direction (0 = horizontal) 02639 8,10,1, 14,0,1, 02640 // Length and number of words of that length 02641 12, 2, 02642 // Coordinates where words start and direction (0 = horizontal) 02643 0,2,0, 11,20,0, 02644 // Length and number of words of that length 02645 11, 2, 02646 // Coordinates where words start and direction (0 = horizontal) 02647 5,0,1, 17,12,1, 02648 // Length and number of words of that length 02649 10, 4, 02650 // Coordinates where words start and direction (0 = horizontal) 02651 0,20,0, 2,6,1, 13,2,0, 20,7,1, 02652 // Length and number of words of that length 02653 9, 2, 02654 // Coordinates where words start and direction (0 = horizontal) 02655 5,13,0, 9,9,0, 02656 // Length and number of words of that length 02657 8, 2, 02658 // Coordinates where words start and direction (0 = horizontal) 02659 5,8,0, 10,14,0, 02660 // Length and number of words of that length 02661 7, 10, 02662 // Coordinates where words start and direction (0 = horizontal) 02663 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, 02664 // Length and number of words of that length 02665 6, 24, 02666 // Coordinates where words start and direction (0 = horizontal) 02667 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, 02668 // Length and number of words of that length 02669 5, 42, 02670 // Coordinates where words start and direction (0 = horizontal) 02671 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, 02672 // Length and number of words of that length 02673 4, 58, 02674 // Coordinates where words start and direction (0 = horizontal) 02675 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, 02676 // Length and number of words of that length 02677 3, 26, 02678 // Coordinates where words start and direction (0 = horizontal) 02679 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, 02680 // End marker 02681 0 02682 }; 02683 02684 02685 /* 02686 * Name: 23.04, 23 x 23 02687 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02688 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02689 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02690 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 02691 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02692 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 02693 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 02694 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02695 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 02696 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 02697 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 02698 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 02699 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _) 02700 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 02701 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02702 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02703 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02704 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 02705 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02706 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 02707 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02708 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02709 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02710 */ 02711 const int g43[] = { 02712 // Width and height of crossword grid 02713 23, 23, 02714 // Number of black fields 02715 80, 02716 // Black field coordinates 02717 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, 02718 // Total number of words in grid 02719 170, 02720 // Length and number of words of that length 02721 9, 8, 02722 // Coordinates where words start and direction (0 = horizontal) 02723 0,3,0, 0,19,0, 3,0,1, 3,14,1, 14,3,0, 14,19,0, 19,0,1, 19,14,1, 02724 // Length and number of words of that length 02725 8, 12, 02726 // Coordinates where words start and direction (0 = horizontal) 02727 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, 02728 // Length and number of words of that length 02729 7, 14, 02730 // Coordinates where words start and direction (0 = horizontal) 02731 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, 02732 // Length and number of words of that length 02733 6, 12, 02734 // Coordinates where words start and direction (0 = horizontal) 02735 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, 02736 // Length and number of words of that length 02737 5, 84, 02738 // Coordinates where words start and direction (0 = horizontal) 02739 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, 02740 // Length and number of words of that length 02741 4, 20, 02742 // Coordinates where words start and direction (0 = horizontal) 02743 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, 02744 // Length and number of words of that length 02745 3, 20, 02746 // Coordinates where words start and direction (0 = horizontal) 02747 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, 02748 // End marker 02749 0 02750 }; 02751 02752 02753 /* 02754 * Name: 23.05, 23 x 23 02755 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02756 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02757 * (_ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02758 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 02759 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02760 * (* * * _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ * * *) 02761 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02762 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 02763 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 02764 * (_ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _ _) 02765 * (_ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02766 * (* * * _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ * * *) 02767 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _) 02768 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ _ _) 02769 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 02770 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02771 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02772 * (* * * _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ * * *) 02773 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02774 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 02775 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _) 02776 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02777 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02778 */ 02779 const int g44[] = { 02780 // Width and height of crossword grid 02781 23, 23, 02782 // Number of black fields 02783 84, 02784 // Black field coordinates 02785 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, 02786 // Total number of words in grid 02787 180, 02788 // Length and number of words of that length 02789 11, 2, 02790 // Coordinates where words start and direction (0 = horizontal) 02791 0,2,0, 12,20,0, 02792 // Length and number of words of that length 02793 9, 6, 02794 // Coordinates where words start and direction (0 = horizontal) 02795 0,13,0, 7,11,0, 9,14,1, 11,7,1, 13,0,1, 14,9,0, 02796 // Length and number of words of that length 02797 8, 4, 02798 // Coordinates where words start and direction (0 = horizontal) 02799 0,9,0, 9,0,1, 13,15,1, 15,13,0, 02800 // Length and number of words of that length 02801 7, 20, 02802 // Coordinates where words start and direction (0 = horizontal) 02803 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, 02804 // Length and number of words of that length 02805 5, 80, 02806 // Coordinates where words start and direction (0 = horizontal) 02807 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, 02808 // Length and number of words of that length 02809 4, 38, 02810 // Coordinates where words start and direction (0 = horizontal) 02811 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, 02812 // Length and number of words of that length 02813 3, 30, 02814 // Coordinates where words start and direction (0 = horizontal) 02815 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, 02816 // End marker 02817 0 02818 }; 02819 02820 02821 /* 02822 * Name: 23.06, 23 x 23 02823 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02824 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02825 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02826 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _) 02827 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 02828 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02829 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02830 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 02831 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 02832 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 02833 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _) 02834 * (_ _ _ _ * _ _ _ _ _ * * * _ _ _ _ _ * _ _ _ _) 02835 * (_ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 02836 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 02837 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 02838 * (* * * _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ * * *) 02839 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02840 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 02841 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 02842 * (_ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 02843 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02844 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02845 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02846 */ 02847 const int g45[] = { 02848 // Width and height of crossword grid 02849 23, 23, 02850 // Number of black fields 02851 69, 02852 // Black field coordinates 02853 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, 02854 // Total number of words in grid 02855 156, 02856 // Length and number of words of that length 02857 9, 12, 02858 // Coordinates where words start and direction (0 = horizontal) 02859 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, 02860 // Length and number of words of that length 02861 8, 12, 02862 // Coordinates where words start and direction (0 = horizontal) 02863 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, 02864 // Length and number of words of that length 02865 7, 44, 02866 // Coordinates where words start and direction (0 = horizontal) 02867 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, 02868 // Length and number of words of that length 02869 6, 24, 02870 // Coordinates where words start and direction (0 = horizontal) 02871 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, 02872 // Length and number of words of that length 02873 5, 24, 02874 // Coordinates where words start and direction (0 = horizontal) 02875 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, 02876 // Length and number of words of that length 02877 4, 24, 02878 // Coordinates where words start and direction (0 = horizontal) 02879 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, 02880 // Length and number of words of that length 02881 3, 16, 02882 // Coordinates where words start and direction (0 = horizontal) 02883 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, 02884 // End marker 02885 0 02886 }; 02887 02888 02889 /* 02890 * Name: 23.07, 23 x 23 02891 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ *) 02892 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02893 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _) 02894 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 02895 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _) 02896 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02897 * (_ _ _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ * * *) 02898 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02899 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 02900 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _) 02901 * (* * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02902 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02903 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * *) 02904 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _) 02905 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 02906 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ * _ _ _ _) 02907 * (* * * _ _ _ * _ _ _ _ * * _ _ _ _ * _ _ _ _ _) 02908 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 02909 * (_ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02910 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02911 * (_ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _) 02912 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02913 * (* _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02914 */ 02915 const int g46[] = { 02916 // Width and height of crossword grid 02917 23, 23, 02918 // Number of black fields 02919 83, 02920 // Black field coordinates 02921 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, 02922 // Total number of words in grid 02923 174, 02924 // Length and number of words of that length 02925 12, 2, 02926 // Coordinates where words start and direction (0 = horizontal) 02927 0,20,0, 11,2,0, 02928 // Length and number of words of that length 02929 11, 2, 02930 // Coordinates where words start and direction (0 = horizontal) 02931 2,5,1, 20,7,1, 02932 // Length and number of words of that length 02933 10, 6, 02934 // Coordinates where words start and direction (0 = horizontal) 02935 0,2,0, 5,7,0, 7,5,1, 8,15,0, 13,20,0, 15,8,1, 02936 // Length and number of words of that length 02937 9, 4, 02938 // Coordinates where words start and direction (0 = horizontal) 02939 5,13,0, 9,9,0, 9,9,1, 13,5,1, 02940 // Length and number of words of that length 02941 8, 8, 02942 // Coordinates where words start and direction (0 = horizontal) 02943 0,3,0, 0,9,0, 3,0,1, 9,0,1, 13,15,1, 15,13,0, 15,19,0, 19,15,1, 02944 // Length and number of words of that length 02945 7, 4, 02946 // Coordinates where words start and direction (0 = horizontal) 02947 0,15,0, 7,16,1, 15,0,1, 16,7,0, 02948 // Length and number of words of that length 02949 6, 14, 02950 // Coordinates where words start and direction (0 = horizontal) 02951 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, 02952 // Length and number of words of that length 02953 5, 54, 02954 // Coordinates where words start and direction (0 = horizontal) 02955 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, 02956 // Length and number of words of that length 02957 4, 64, 02958 // Coordinates where words start and direction (0 = horizontal) 02959 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, 02960 // Length and number of words of that length 02961 3, 16, 02962 // Coordinates where words start and direction (0 = horizontal) 02963 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, 02964 // End marker 02965 0 02966 }; 02967 02968 02969 /* 02970 * Name: 23.08, 23 x 23 02971 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02972 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02973 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02974 * (_ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _) 02975 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02976 * (_ _ _ _ _ * _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 02977 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02978 * (* * * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * * *) 02979 * (_ _ _ * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 02980 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 02981 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 02982 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02983 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 02984 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 02985 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _) 02986 * (* * * _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * * *) 02987 * (_ _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _ _ _ _) 02988 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ * _ _ _ _ _) 02989 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 02990 * (_ _ _ * _ _ _ _ _ * _ _ _ _ * _ _ _ _ * _ _ _) 02991 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02992 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02993 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 02994 */ 02995 const int g47[] = { 02996 // Width and height of crossword grid 02997 23, 23, 02998 // Number of black fields 02999 75, 03000 // Black field coordinates 03001 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, 03002 // Total number of words in grid 03003 172, 03004 // Length and number of words of that length 03005 8, 4, 03006 // Coordinates where words start and direction (0 = horizontal) 03007 0,14,0, 8,15,1, 14,0,1, 15,8,0, 03008 // Length and number of words of that length 03009 7, 44, 03010 // Coordinates where words start and direction (0 = horizontal) 03011 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, 03012 // Length and number of words of that length 03013 6, 24, 03014 // Coordinates where words start and direction (0 = horizontal) 03015 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, 03016 // Length and number of words of that length 03017 5, 40, 03018 // Coordinates where words start and direction (0 = horizontal) 03019 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, 03020 // Length and number of words of that length 03021 4, 44, 03022 // Coordinates where words start and direction (0 = horizontal) 03023 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, 03024 // Length and number of words of that length 03025 3, 16, 03026 // Coordinates where words start and direction (0 = horizontal) 03027 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, 03028 // End marker 03029 0 03030 }; 03031 03032 03033 /* 03034 * Name: 23.09, 23 x 23 03035 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03036 * (_ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03037 * (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _) 03038 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 03039 * (_ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _) 03040 * (* * * _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ *) 03041 * (_ _ _ * _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03042 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ _ _ _) 03043 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03044 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _) 03045 * (_ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _) 03046 * (* * _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ * *) 03047 * (_ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _) 03048 * (_ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 03049 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03050 * (_ _ _ _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ _) 03051 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ * _ _ _) 03052 * (* _ _ _ * _ _ _ * _ _ _ _ _ * _ _ _ _ _ * * *) 03053 * (_ _ _ * _ _ _ _ _ * _ _ _ * _ _ _ * _ _ _ _ _) 03054 * (_ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 03055 * (_ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _) 03056 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _) 03057 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03058 */ 03059 const int g48[] = { 03060 // Width and height of crossword grid 03061 23, 23, 03062 // Number of black fields 03063 76, 03064 // Black field coordinates 03065 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, 03066 // Total number of words in grid 03067 174, 03068 // Length and number of words of that length 03069 17, 4, 03070 // Coordinates where words start and direction (0 = horizontal) 03071 0,2,0, 2,6,1, 6,20,0, 20,0,1, 03072 // Length and number of words of that length 03073 11, 4, 03074 // Coordinates where words start and direction (0 = horizontal) 03075 0,1,0, 1,12,1, 12,21,0, 21,0,1, 03076 // Length and number of words of that length 03077 7, 16, 03078 // Coordinates where words start and direction (0 = horizontal) 03079 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, 03080 // Length and number of words of that length 03081 6, 16, 03082 // Coordinates where words start and direction (0 = horizontal) 03083 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, 03084 // Length and number of words of that length 03085 5, 86, 03086 // Coordinates where words start and direction (0 = horizontal) 03087 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, 03088 // Length and number of words of that length 03089 4, 12, 03090 // Coordinates where words start and direction (0 = horizontal) 03091 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, 03092 // Length and number of words of that length 03093 3, 36, 03094 // Coordinates where words start and direction (0 = horizontal) 03095 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, 03096 // End marker 03097 0 03098 }; 03099 03100 03101 /* 03102 * Name: 23.10, 23 x 23 03103 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ * _ _ _ _ _) 03104 * (_ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 03105 * (_ _ _ _ _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _) 03106 * (_ _ _ * _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 03107 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03108 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ *) 03109 * (* * _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ _ _) 03110 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03111 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 03112 * (_ _ _ _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ * * *) 03113 * (_ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _) 03114 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _) 03115 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _) 03116 * (* * * _ _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _) 03117 * (_ _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ _ _ _) 03118 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03119 * (_ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ * _ _ _ _ * *) 03120 * (* _ _ _ * _ _ _ _ _ _ _ * _ _ _ _ _ * _ _ _ _) 03121 * (_ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _ * _ _ _ _ _) 03122 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _ _ _ * _ _ _) 03123 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _) 03124 * (_ _ _ _ _ _ _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 03125 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _ _ * _ _ _ _ _ _) 03126 */ 03127 const int g49[] = { 03128 // Width and height of crossword grid 03129 23, 23, 03130 // Number of black fields 03131 67, 03132 // Black field coordinates 03133 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, 03134 // Total number of words in grid 03135 156, 03136 // Length and number of words of that length 03137 13, 4, 03138 // Coordinates where words start and direction (0 = horizontal) 03139 0,2,0, 2,0,1, 10,20,0, 20,10,1, 03140 // Length and number of words of that length 03141 9, 16, 03142 // Coordinates where words start and direction (0 = horizontal) 03143 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, 03144 // Length and number of words of that length 03145 8, 12, 03146 // Coordinates where words start and direction (0 = horizontal) 03147 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, 03148 // Length and number of words of that length 03149 7, 16, 03150 // Coordinates where words start and direction (0 = horizontal) 03151 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, 03152 // Length and number of words of that length 03153 6, 40, 03154 // Coordinates where words start and direction (0 = horizontal) 03155 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, 03156 // Length and number of words of that length 03157 5, 32, 03158 // Coordinates where words start and direction (0 = horizontal) 03159 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, 03160 // Length and number of words of that length 03161 4, 12, 03162 // Coordinates where words start and direction (0 = horizontal) 03163 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, 03164 // Length and number of words of that length 03165 3, 24, 03166 // Coordinates where words start and direction (0 = horizontal) 03167 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, 03168 // End marker 03169 0 03170 }; 03171 03172 03173 /* 03174 * Name: puzzle01, 2 x 2 03175 * (_ *) 03176 * (_ _) 03177 */ 03178 const int g50[] = { 03179 // Width and height of crossword grid 03180 2, 2, 03181 // Number of black fields 03182 1, 03183 // Black field coordinates 03184 1,0, 03185 // Total number of words in grid 03186 4, 03187 // Length and number of words of that length 03188 2, 2, 03189 // Coordinates where words start and direction (0 = horizontal) 03190 0,0,1, 0,1,0, 03191 // Length and number of words of that length 03192 1, 2, 03193 // Coordinates where words start and direction (0 = horizontal) 03194 0,0,0, 1,1,1, 03195 // End marker 03196 0 03197 }; 03198 03199 03200 /* 03201 * Name: puzzle02, 3 x 3 03202 * (* _ _) 03203 * (_ _ _) 03204 * (_ _ _) 03205 */ 03206 const int g51[] = { 03207 // Width and height of crossword grid 03208 3, 3, 03209 // Number of black fields 03210 1, 03211 // Black field coordinates 03212 0,0, 03213 // Total number of words in grid 03214 6, 03215 // Length and number of words of that length 03216 3, 4, 03217 // Coordinates where words start and direction (0 = horizontal) 03218 0,1,0, 0,2,0, 1,0,1, 2,0,1, 03219 // Length and number of words of that length 03220 2, 2, 03221 // Coordinates where words start and direction (0 = horizontal) 03222 0,1,1, 1,0,0, 03223 // End marker 03224 0 03225 }; 03226 03227 03228 /* 03229 * Name: puzzle03, 4 x 4 03230 * (_ _ _ *) 03231 * (_ _ _ _) 03232 * (_ _ _ _) 03233 * (* _ _ _) 03234 */ 03235 const int g52[] = { 03236 // Width and height of crossword grid 03237 4, 4, 03238 // Number of black fields 03239 2, 03240 // Black field coordinates 03241 0,3, 3,0, 03242 // Total number of words in grid 03243 8, 03244 // Length and number of words of that length 03245 4, 4, 03246 // Coordinates where words start and direction (0 = horizontal) 03247 0,1,0, 0,2,0, 1,0,1, 2,0,1, 03248 // Length and number of words of that length 03249 3, 4, 03250 // Coordinates where words start and direction (0 = horizontal) 03251 0,0,0, 0,0,1, 1,3,0, 3,1,1, 03252 // End marker 03253 0 03254 }; 03255 03256 03257 /* 03258 * Name: puzzle04, 5 x 5 03259 * (_ _ _ * *) 03260 * (_ _ _ _ *) 03261 * (_ _ _ _ _) 03262 * (* _ _ _ _) 03263 * (* * _ _ _) 03264 */ 03265 const int g53[] = { 03266 // Width and height of crossword grid 03267 5, 5, 03268 // Number of black fields 03269 6, 03270 // Black field coordinates 03271 0,3, 0,4, 1,4, 3,0, 4,0, 4,1, 03272 // Total number of words in grid 03273 10, 03274 // Length and number of words of that length 03275 5, 2, 03276 // Coordinates where words start and direction (0 = horizontal) 03277 0,2,0, 2,0,1, 03278 // Length and number of words of that length 03279 4, 4, 03280 // Coordinates where words start and direction (0 = horizontal) 03281 0,1,0, 1,0,1, 1,3,0, 3,1,1, 03282 // Length and number of words of that length 03283 3, 4, 03284 // Coordinates where words start and direction (0 = horizontal) 03285 0,0,0, 0,0,1, 2,4,0, 4,2,1, 03286 // End marker 03287 0 03288 }; 03289 03290 03291 /* 03292 * Name: puzzle05, 5 x 5 03293 * (_ _ _ _ *) 03294 * (_ _ _ * _) 03295 * (_ _ _ _ _) 03296 * (_ * _ _ _) 03297 * (* _ _ _ _) 03298 */ 03299 const int g54[] = { 03300 // Width and height of crossword grid 03301 5, 5, 03302 // Number of black fields 03303 4, 03304 // Black field coordinates 03305 0,4, 1,3, 3,1, 4,0, 03306 // Total number of words in grid 03307 14, 03308 // Length and number of words of that length 03309 5, 2, 03310 // Coordinates where words start and direction (0 = horizontal) 03311 0,2,0, 2,0,1, 03312 // Length and number of words of that length 03313 4, 4, 03314 // Coordinates where words start and direction (0 = horizontal) 03315 0,0,0, 0,0,1, 1,4,0, 4,1,1, 03316 // Length and number of words of that length 03317 3, 4, 03318 // Coordinates where words start and direction (0 = horizontal) 03319 0,1,0, 1,0,1, 2,3,0, 3,2,1, 03320 // Length and number of words of that length 03321 1, 4, 03322 // Coordinates where words start and direction (0 = horizontal) 03323 0,3,0, 1,4,1, 3,0,1, 4,1,0, 03324 // End marker 03325 0 03326 }; 03327 03328 03329 /* 03330 * Name: puzzle06, 5 x 5 03331 * (_ _ _ _ _) 03332 * (_ _ _ * _) 03333 * (_ _ _ _ _) 03334 * (_ * _ _ _) 03335 * (_ _ _ _ _) 03336 */ 03337 const int g55[] = { 03338 // Width and height of crossword grid 03339 5, 5, 03340 // Number of black fields 03341 2, 03342 // Black field coordinates 03343 1,3, 3,1, 03344 // Total number of words in grid 03345 14, 03346 // Length and number of words of that length 03347 5, 6, 03348 // Coordinates where words start and direction (0 = horizontal) 03349 0,0,0, 0,0,1, 0,2,0, 0,4,0, 2,0,1, 4,0,1, 03350 // Length and number of words of that length 03351 3, 4, 03352 // Coordinates where words start and direction (0 = horizontal) 03353 0,1,0, 1,0,1, 2,3,0, 3,2,1, 03354 // Length and number of words of that length 03355 1, 4, 03356 // Coordinates where words start and direction (0 = horizontal) 03357 0,3,0, 1,4,1, 3,0,1, 4,1,0, 03358 // End marker 03359 0 03360 }; 03361 03362 03363 /* 03364 * Name: puzzle07, 6 x 6 03365 * (_ _ _ _ _ *) 03366 * (_ * _ _ _ _) 03367 * (_ _ _ * _ _) 03368 * (_ _ * _ _ _) 03369 * (_ _ _ _ * _) 03370 * (* _ _ _ _ _) 03371 */ 03372 const int g56[] = { 03373 // Width and height of crossword grid 03374 6, 6, 03375 // Number of black fields 03376 6, 03377 // Black field coordinates 03378 0,5, 1,1, 2,3, 3,2, 4,4, 5,0, 03379 // Total number of words in grid 03380 20, 03381 // Length and number of words of that length 03382 5, 4, 03383 // Coordinates where words start and direction (0 = horizontal) 03384 0,0,0, 0,0,1, 1,5,0, 5,1,1, 03385 // Length and number of words of that length 03386 4, 4, 03387 // Coordinates where words start and direction (0 = horizontal) 03388 0,4,0, 1,2,1, 2,1,0, 4,0,1, 03389 // Length and number of words of that length 03390 3, 4, 03391 // Coordinates where words start and direction (0 = horizontal) 03392 0,2,0, 2,0,1, 3,3,0, 3,3,1, 03393 // Length and number of words of that length 03394 2, 4, 03395 // Coordinates where words start and direction (0 = horizontal) 03396 0,3,0, 2,4,1, 3,0,1, 4,2,0, 03397 // Length and number of words of that length 03398 1, 4, 03399 // Coordinates where words start and direction (0 = horizontal) 03400 0,1,0, 1,0,1, 4,5,1, 5,4,0, 03401 // End marker 03402 0 03403 }; 03404 03405 03406 /* 03407 * Name: puzzle08, 7 x 7 03408 * (_ _ _ _ * _ _) 03409 * (_ _ _ * _ _ _) 03410 * (_ _ * _ _ _ *) 03411 * (_ _ _ _ _ _ _) 03412 * (* _ _ _ * _ _) 03413 * (_ _ _ * _ _ _) 03414 * (_ _ * _ _ _ _) 03415 */ 03416 const int g57[] = { 03417 // Width and height of crossword grid 03418 7, 7, 03419 // Number of black fields 03420 8, 03421 // Black field coordinates 03422 0,4, 2,2, 2,6, 3,1, 3,5, 4,0, 4,4, 6,2, 03423 // Total number of words in grid 03424 26, 03425 // Length and number of words of that length 03426 7, 3, 03427 // Coordinates where words start and direction (0 = horizontal) 03428 0,3,0, 1,0,1, 5,0,1, 03429 // Length and number of words of that length 03430 4, 4, 03431 // Coordinates where words start and direction (0 = horizontal) 03432 0,0,0, 0,0,1, 3,6,0, 6,3,1, 03433 // Length and number of words of that length 03434 3, 9, 03435 // Coordinates where words start and direction (0 = horizontal) 03436 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, 03437 // Length and number of words of that length 03438 2, 8, 03439 // Coordinates where words start and direction (0 = horizontal) 03440 0,2,0, 0,5,1, 0,6,0, 2,0,1, 4,5,1, 5,0,0, 5,4,0, 6,0,1, 03441 // Length and number of words of that length 03442 1, 2, 03443 // Coordinates where words start and direction (0 = horizontal) 03444 3,0,1, 3,6,1, 03445 // End marker 03446 0 03447 }; 03448 03449 03450 /* 03451 * Name: puzzle09, 7 x 7 03452 * (* * _ _ _ * *) 03453 * (* _ _ _ _ _ *) 03454 * (_ _ _ * _ _ _) 03455 * (_ _ _ _ _ _ _) 03456 * (_ _ _ * _ _ _) 03457 * (* _ _ _ _ _ *) 03458 * (* * _ _ _ * *) 03459 */ 03460 const int g58[] = { 03461 // Width and height of crossword grid 03462 7, 7, 03463 // Number of black fields 03464 14, 03465 // Black field coordinates 03466 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, 03467 // Total number of words in grid 03468 18, 03469 // Length and number of words of that length 03470 7, 3, 03471 // Coordinates where words start and direction (0 = horizontal) 03472 0,3,0, 2,0,1, 4,0,1, 03473 // Length and number of words of that length 03474 5, 4, 03475 // Coordinates where words start and direction (0 = horizontal) 03476 1,1,0, 1,1,1, 1,5,0, 5,1,1, 03477 // Length and number of words of that length 03478 3, 8, 03479 // Coordinates where words start and direction (0 = horizontal) 03480 0,2,0, 0,2,1, 0,4,0, 2,0,0, 2,6,0, 4,2,0, 4,4,0, 6,2,1, 03481 // Length and number of words of that length 03482 2, 2, 03483 // Coordinates where words start and direction (0 = horizontal) 03484 3,0,1, 3,5,1, 03485 // Length and number of words of that length 03486 1, 1, 03487 // Coordinates where words start and direction (0 = horizontal) 03488 3,3,1, 03489 // End marker 03490 0 03491 }; 03492 03493 03494 /* 03495 * Name: puzzle10, 7 x 7 03496 * (_ _ _ * _ _ _) 03497 * (_ _ _ * _ _ _) 03498 * (_ _ _ _ _ _ _) 03499 * (* * _ * _ * *) 03500 * (_ _ _ _ _ _ _) 03501 * (_ _ _ * _ _ _) 03502 * (_ _ _ * _ _ _) 03503 */ 03504 const int g59[] = { 03505 // Width and height of crossword grid 03506 7, 7, 03507 // Number of black fields 03508 9, 03509 // Black field coordinates 03510 0,3, 1,3, 3,0, 3,1, 3,3, 3,5, 3,6, 5,3, 6,3, 03511 // Total number of words in grid 03512 24, 03513 // Length and number of words of that length 03514 7, 4, 03515 // Coordinates where words start and direction (0 = horizontal) 03516 0,2,0, 0,4,0, 2,0,1, 4,0,1, 03517 // Length and number of words of that length 03518 3, 16, 03519 // Coordinates where words start and direction (0 = horizontal) 03520 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, 03521 // Length and number of words of that length 03522 1, 4, 03523 // Coordinates where words start and direction (0 = horizontal) 03524 2,3,0, 3,2,1, 3,4,1, 4,3,0, 03525 // End marker 03526 0 03527 }; 03528 03529 03530 /* 03531 * Name: puzzle11, 7 x 7 03532 * (* * _ _ _ _ *) 03533 * (* _ _ _ _ _ _) 03534 * (_ _ _ * _ _ _) 03535 * (_ _ _ * _ _ _) 03536 * (_ _ _ * _ _ _) 03537 * (_ _ _ _ _ _ *) 03538 * (* _ _ _ _ * *) 03539 */ 03540 const int g60[] = { 03541 // Width and height of crossword grid 03542 7, 7, 03543 // Number of black fields 03544 11, 03545 // Black field coordinates 03546 0,0, 0,1, 0,6, 1,0, 3,2, 3,3, 3,4, 5,6, 6,0, 6,5, 6,6, 03547 // Total number of words in grid 03548 18, 03549 // Length and number of words of that length 03550 7, 2, 03551 // Coordinates where words start and direction (0 = horizontal) 03552 2,0,1, 4,0,1, 03553 // Length and number of words of that length 03554 6, 4, 03555 // Coordinates where words start and direction (0 = horizontal) 03556 0,5,0, 1,1,0, 1,1,1, 5,0,1, 03557 // Length and number of words of that length 03558 4, 4, 03559 // Coordinates where words start and direction (0 = horizontal) 03560 0,2,1, 1,6,0, 2,0,0, 6,1,1, 03561 // Length and number of words of that length 03562 3, 6, 03563 // Coordinates where words start and direction (0 = horizontal) 03564 0,2,0, 0,3,0, 0,4,0, 4,2,0, 4,3,0, 4,4,0, 03565 // Length and number of words of that length 03566 2, 2, 03567 // Coordinates where words start and direction (0 = horizontal) 03568 3,0,1, 3,5,1, 03569 // End marker 03570 0 03571 }; 03572 03573 03574 /* 03575 * Name: puzzle12, 8 x 8 03576 * (_ _ _ _ * _ _ _) 03577 * (_ _ _ _ * _ _ _) 03578 * (_ _ _ _ * _ _ _) 03579 * (* * * _ _ _ _ _) 03580 * (_ _ _ _ _ * * *) 03581 * (_ _ _ * _ _ _ _) 03582 * (_ _ _ * _ _ _ _) 03583 * (_ _ _ * _ _ _ _) 03584 */ 03585 const int g61[] = { 03586 // Width and height of crossword grid 03587 8, 8, 03588 // Number of black fields 03589 12, 03590 // Black field coordinates 03591 0,3, 1,3, 2,3, 3,5, 3,6, 3,7, 4,0, 4,1, 4,2, 5,4, 6,4, 7,4, 03592 // Total number of words in grid 03593 28, 03594 // Length and number of words of that length 03595 5, 4, 03596 // Coordinates where words start and direction (0 = horizontal) 03597 0,4,0, 3,0,1, 3,3,0, 4,3,1, 03598 // Length and number of words of that length 03599 4, 12, 03600 // Coordinates where words start and direction (0 = horizontal) 03601 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, 03602 // Length and number of words of that length 03603 3, 12, 03604 // Coordinates where words start and direction (0 = horizontal) 03605 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, 03606 // End marker 03607 0 03608 }; 03609 03610 03611 /* 03612 * Name: puzzle13, 9 x 9 03613 * (_ _ _ _ * _ _ _ _) 03614 * (_ _ _ _ * _ _ _ _) 03615 * (_ _ _ * * * _ _ _) 03616 * (_ _ _ _ _ _ _ _ _) 03617 * (* * * _ _ _ * * *) 03618 * (_ _ _ _ _ _ _ _ _) 03619 * (_ _ _ * * * _ _ _) 03620 * (_ _ _ _ * _ _ _ _) 03621 * (_ _ _ _ * _ _ _ _) 03622 */ 03623 const int g62[] = { 03624 // Width and height of crossword grid 03625 9, 9, 03626 // Number of black fields 03627 16, 03628 // Black field coordinates 03629 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, 03630 // Total number of words in grid 03631 34, 03632 // Length and number of words of that length 03633 9, 2, 03634 // Coordinates where words start and direction (0 = horizontal) 03635 0,3,0, 0,5,0, 03636 // Length and number of words of that length 03637 4, 20, 03638 // Coordinates where words start and direction (0 = horizontal) 03639 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, 03640 // Length and number of words of that length 03641 3, 8, 03642 // Coordinates where words start and direction (0 = horizontal) 03643 0,2,0, 0,6,0, 3,3,1, 3,4,0, 4,3,1, 5,3,1, 6,2,0, 6,6,0, 03644 // Length and number of words of that length 03645 2, 4, 03646 // Coordinates where words start and direction (0 = horizontal) 03647 3,0,1, 3,7,1, 5,0,1, 5,7,1, 03648 // End marker 03649 0 03650 }; 03651 03652 03653 /* 03654 * Name: puzzle14, 10 x 10 03655 * (* * * _ _ _ _ * * *) 03656 * (* * _ _ _ _ _ * * *) 03657 * (* _ _ _ _ _ _ _ * *) 03658 * (_ _ _ _ _ * * _ _ _) 03659 * (_ _ _ _ * * * _ _ _) 03660 * (_ _ _ * * * _ _ _ _) 03661 * (_ _ _ * * _ _ _ _ _) 03662 * (* * _ _ _ _ _ _ _ *) 03663 * (* * * _ _ _ _ _ * *) 03664 * (* * * _ _ _ _ * * *) 03665 */ 03666 const int g63[] = { 03667 // Width and height of crossword grid 03668 10, 10, 03669 // Number of black fields 03670 38, 03671 // Black field coordinates 03672 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, 03673 // Total number of words in grid 03674 28, 03675 // Length and number of words of that length 03676 7, 4, 03677 // Coordinates where words start and direction (0 = horizontal) 03678 1,2,0, 2,1,1, 2,7,0, 7,2,1, 03679 // Length and number of words of that length 03680 5, 8, 03681 // Coordinates where words start and direction (0 = horizontal) 03682 0,3,0, 1,2,1, 2,1,0, 3,0,1, 3,8,0, 5,6,0, 6,5,1, 8,3,1, 03683 // Length and number of words of that length 03684 4, 8, 03685 // Coordinates where words start and direction (0 = horizontal) 03686 0,3,1, 0,4,0, 3,0,0, 3,9,0, 4,0,1, 5,6,1, 6,5,0, 9,3,1, 03687 // Length and number of words of that length 03688 3, 8, 03689 // Coordinates where words start and direction (0 = horizontal) 03690 0,5,0, 0,6,0, 3,7,1, 4,7,1, 5,0,1, 6,0,1, 7,3,0, 7,4,0, 03691 // End marker 03692 0 03693 }; 03694 03695 03696 /* 03697 * Name: puzzle15, 11 x 11 03698 * (_ _ _ _ * * * _ _ _ _) 03699 * (_ _ _ _ _ * _ _ _ _ _) 03700 * (_ _ _ _ _ * _ _ _ _ _) 03701 * (_ _ _ * _ _ _ * _ _ _) 03702 * (* _ _ _ _ _ * _ _ _ *) 03703 * (* * * _ _ _ _ _ * * *) 03704 * (* _ _ _ * _ _ _ _ _ *) 03705 * (_ _ _ * _ _ _ * _ _ _) 03706 * (_ _ _ _ _ * _ _ _ _ _) 03707 * (_ _ _ _ _ * _ _ _ _ _) 03708 * (_ _ _ _ * * * _ _ _ _) 03709 */ 03710 const int g64[] = { 03711 // Width and height of crossword grid 03712 11, 11, 03713 // Number of black fields 03714 26, 03715 // Black field coordinates 03716 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, 03717 // Total number of words in grid 03718 46, 03719 // Length and number of words of that length 03720 5, 22, 03721 // Coordinates where words start and direction (0 = horizontal) 03722 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, 03723 // Length and number of words of that length 03724 4, 8, 03725 // Coordinates where words start and direction (0 = horizontal) 03726 0,0,0, 0,0,1, 0,7,1, 0,10,0, 7,0,0, 7,10,0, 10,0,1, 10,7,1, 03727 // Length and number of words of that length 03728 3, 16, 03729 // Coordinates where words start and direction (0 = horizontal) 03730 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, 03731 // End marker 03732 0 03733 }; 03734 03735 03736 /* 03737 * Name: puzzle16, 13 x 13 03738 * (_ _ _ * _ _ _ _ * _ _ _ _) 03739 * (_ _ _ * _ _ _ _ * _ _ _ _) 03740 * (_ _ _ * _ _ _ _ * _ _ _ _) 03741 * (_ _ _ _ _ _ * _ _ _ * * *) 03742 * (* * * _ _ _ * _ _ _ _ _ _) 03743 * (_ _ _ _ _ * _ _ _ * _ _ _) 03744 * (_ _ _ _ * _ _ _ * _ _ _ _) 03745 * (_ _ _ * _ _ _ * _ _ _ _ _) 03746 * (_ _ _ _ _ _ * _ _ _ * * *) 03747 * (* * * _ _ _ * _ _ _ _ _ _) 03748 * (_ _ _ _ * _ _ _ _ * _ _ _) 03749 * (_ _ _ _ * _ _ _ _ * _ _ _) 03750 * (_ _ _ _ * _ _ _ _ * _ _ _) 03751 */ 03752 const int g65[] = { 03753 // Width and height of crossword grid 03754 13, 13, 03755 // Number of black fields 03756 34, 03757 // Black field coordinates 03758 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, 03759 // Total number of words in grid 03760 68, 03761 // Length and number of words of that length 03762 7, 2, 03763 // Coordinates where words start and direction (0 = horizontal) 03764 5,6,1, 7,0,1, 03765 // Length and number of words of that length 03766 6, 6, 03767 // Coordinates where words start and direction (0 = horizontal) 03768 0,3,0, 0,8,0, 4,0,1, 7,4,0, 7,9,0, 8,7,1, 03769 // Length and number of words of that length 03770 5, 6, 03771 // Coordinates where words start and direction (0 = horizontal) 03772 0,5,0, 3,8,1, 5,0,1, 7,8,1, 8,7,0, 9,0,1, 03773 // Length and number of words of that length 03774 4, 28, 03775 // Coordinates where words start and direction (0 = horizontal) 03776 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, 03777 // Length and number of words of that length 03778 3, 26, 03779 // Coordinates where words start and direction (0 = horizontal) 03780 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, 03781 // End marker 03782 0 03783 }; 03784 03785 03786 /* 03787 * Name: puzzle17, 15 x 15 03788 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03789 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03790 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03791 * (* * _ _ _ _ * _ _ _ _ _ _ * *) 03792 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 03793 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03794 * (_ _ _ _ _ _ _ * _ _ _ * _ _ _) 03795 * (* * * _ _ _ * * * _ _ _ * * *) 03796 * (_ _ _ * _ _ _ * _ _ _ _ _ _ _) 03797 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03798 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 03799 * (* * _ _ _ _ _ _ * _ _ _ _ * *) 03800 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03801 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03802 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03803 */ 03804 const int g66[] = { 03805 // Width and height of crossword grid 03806 15, 15, 03807 // Number of black fields 03808 45, 03809 // Black field coordinates 03810 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, 03811 // Total number of words in grid 03812 88, 03813 // Length and number of words of that length 03814 7, 12, 03815 // Coordinates where words start and direction (0 = horizontal) 03816 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, 03817 // Length and number of words of that length 03818 6, 4, 03819 // Coordinates where words start and direction (0 = horizontal) 03820 2,11,0, 3,2,1, 7,3,0, 11,7,1, 03821 // Length and number of words of that length 03822 5, 12, 03823 // Coordinates where words start and direction (0 = horizontal) 03824 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, 03825 // Length and number of words of that length 03826 4, 12, 03827 // Coordinates where words start and direction (0 = horizontal) 03828 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, 03829 // Length and number of words of that length 03830 3, 48, 03831 // Coordinates where words start and direction (0 = horizontal) 03832 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, 03833 // End marker 03834 0 03835 }; 03836 03837 03838 /* 03839 * Name: puzzle18, 15 x 15 03840 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03841 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03842 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03843 * (_ _ _ _ _ * _ _ _ * * _ _ _ _) 03844 * (* * * * _ _ _ * * _ _ _ * * *) 03845 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03846 * (_ _ _ _ * _ _ _ _ _ _ _ _ _ _) 03847 * (_ _ _ _ * * _ _ _ * * _ _ _ _) 03848 * (_ _ _ _ _ _ _ _ _ _ * _ _ _ _) 03849 * (_ _ _ * _ _ _ * _ _ _ * _ _ _) 03850 * (* * * _ _ _ * * _ _ _ * * * *) 03851 * (_ _ _ _ * * _ _ _ * _ _ _ _ _) 03852 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03853 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03854 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03855 */ 03856 const int g67[] = { 03857 // Width and height of crossword grid 03858 15, 15, 03859 // Number of black fields 03860 48, 03861 // Black field coordinates 03862 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, 03863 // Total number of words in grid 03864 86, 03865 // Length and number of words of that length 03866 10, 4, 03867 // Coordinates where words start and direction (0 = horizontal) 03868 0,8,0, 5,6,0, 6,0,1, 8,5,1, 03869 // Length and number of words of that length 03870 5, 16, 03871 // Coordinates where words start and direction (0 = horizontal) 03872 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, 03873 // Length and number of words of that length 03874 4, 36, 03875 // Coordinates where words start and direction (0 = horizontal) 03876 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, 03877 // Length and number of words of that length 03878 3, 30, 03879 // Coordinates where words start and direction (0 = horizontal) 03880 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, 03881 // End marker 03882 0 03883 }; 03884 03885 03886 /* 03887 * Name: puzzle19, 15 x 15 03888 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03889 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03890 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03891 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03892 * (* * * _ _ _ * _ _ _ _ _ * * *) 03893 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 03894 * (_ _ _ _ * _ _ _ _ _ _ * _ _ _) 03895 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03896 * (_ _ _ * _ _ _ _ _ _ * _ _ _ _) 03897 * (_ _ _ _ _ * _ _ _ * _ _ _ _ _) 03898 * (* * * _ _ _ _ _ * _ _ _ * * *) 03899 * (_ _ _ _ _ _ _ * _ _ _ _ _ _ _) 03900 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03901 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03902 * (_ _ _ _ * _ _ _ _ _ * _ _ _ _) 03903 */ 03904 const int g68[] = { 03905 // Width and height of crossword grid 03906 15, 15, 03907 // Number of black fields 03908 38, 03909 // Black field coordinates 03910 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, 03911 // Total number of words in grid 03912 80, 03913 // Length and number of words of that length 03914 10, 2, 03915 // Coordinates where words start and direction (0 = horizontal) 03916 6,5,1, 8,0,1, 03917 // Length and number of words of that length 03918 8, 2, 03919 // Coordinates where words start and direction (0 = horizontal) 03920 3,0,1, 11,7,1, 03921 // Length and number of words of that length 03922 7, 5, 03923 // Coordinates where words start and direction (0 = horizontal) 03924 0,3,0, 0,11,0, 7,4,1, 8,3,0, 8,11,0, 03925 // Length and number of words of that length 03926 6, 4, 03927 // Coordinates where words start and direction (0 = horizontal) 03928 3,9,1, 4,8,0, 5,6,0, 11,0,1, 03929 // Length and number of words of that length 03930 5, 23, 03931 // Coordinates where words start and direction (0 = horizontal) 03932 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, 03933 // Length and number of words of that length 03934 4, 32, 03935 // Coordinates where words start and direction (0 = horizontal) 03936 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, 03937 // Length and number of words of that length 03938 3, 12, 03939 // Coordinates where words start and direction (0 = horizontal) 03940 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, 03941 // End marker 03942 0 03943 }; 03944 03945 03946 /* 03947 * Name: puzzle20, 9 x 9 03948 * (* * * _ _ _ * * *) 03949 * (* * _ _ _ _ _ * *) 03950 * (* _ _ _ _ _ _ _ *) 03951 * (_ _ _ _ * _ _ _ _) 03952 * (_ _ _ * * * _ _ _) 03953 * (_ _ _ _ * _ _ _ _) 03954 * (* _ _ _ _ _ _ _ *) 03955 * (* * _ _ _ _ _ * *) 03956 * (* * * _ _ _ * * *) 03957 */ 03958 const int g69[] = { 03959 // Width and height of crossword grid 03960 9, 9, 03961 // Number of black fields 03962 29, 03963 // Black field coordinates 03964 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, 03965 // Total number of words in grid 03966 24, 03967 // Length and number of words of that length 03968 7, 4, 03969 // Coordinates where words start and direction (0 = horizontal) 03970 1,2,0, 1,6,0, 2,1,1, 6,1,1, 03971 // Length and number of words of that length 03972 5, 4, 03973 // Coordinates where words start and direction (0 = horizontal) 03974 1,2,1, 2,1,0, 2,7,0, 7,2,1, 03975 // Length and number of words of that length 03976 4, 8, 03977 // Coordinates where words start and direction (0 = horizontal) 03978 0,3,0, 0,5,0, 3,0,1, 3,5,1, 5,0,1, 5,3,0, 5,5,0, 5,5,1, 03979 // Length and number of words of that length 03980 3, 8, 03981 // Coordinates where words start and direction (0 = horizontal) 03982 0,3,1, 0,4,0, 3,0,0, 3,8,0, 4,0,1, 4,6,1, 6,4,0, 8,3,1, 03983 // End marker 03984 0 03985 }; 03986 03987 03988 /* 03989 * Name: puzzle21, 13 x 13 03990 * (_ _ _ _ * _ _ _ * _ _ _ _) 03991 * (_ _ _ _ * _ _ _ * _ _ _ _) 03992 * (_ _ _ _ * _ _ _ * _ _ _ _) 03993 * (_ _ _ _ _ _ * _ _ _ _ _ _) 03994 * (* * * _ _ _ * _ _ _ * * *) 03995 * (_ _ _ _ _ * * * _ _ _ _ _) 03996 * (_ _ _ * * * * * * * _ _ _) 03997 * (_ _ _ _ _ * * * _ _ _ _ _) 03998 * (* * * _ _ _ * _ _ _ * * *) 03999 * (_ _ _ _ _ _ * _ _ _ _ _ _) 04000 * (_ _ _ _ * _ _ _ * _ _ _ _) 04001 * (_ _ _ _ * _ _ _ * _ _ _ _) 04002 * (_ _ _ _ * _ _ _ * _ _ _ _) 04003 */ 04004 const int g70[] = { 04005 // Width and height of crossword grid 04006 13, 13, 04007 // Number of black fields 04008 41, 04009 // Black field coordinates 04010 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, 04011 // Total number of words in grid 04012 64, 04013 // Length and number of words of that length 04014 6, 8, 04015 // Coordinates where words start and direction (0 = horizontal) 04016 0,3,0, 0,9,0, 3,0,1, 3,7,1, 7,3,0, 7,9,0, 9,0,1, 9,7,1, 04017 // Length and number of words of that length 04018 5, 8, 04019 // Coordinates where words start and direction (0 = horizontal) 04020 0,5,0, 0,7,0, 5,0,1, 5,8,1, 7,0,1, 7,8,1, 8,5,0, 8,7,0, 04021 // Length and number of words of that length 04022 4, 24, 04023 // Coordinates where words start and direction (0 = horizontal) 04024 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, 04025 // Length and number of words of that length 04026 3, 24, 04027 // Coordinates where words start and direction (0 = horizontal) 04028 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, 04029 // End marker 04030 0 04031 }; 04032 04033 04034 /* 04035 * Name: puzzle22, 13 x 13 04036 * (_ _ _ _ * _ _ _ * _ _ _ _) 04037 * (_ _ _ _ * _ _ _ * _ _ _ _) 04038 * (_ _ _ _ * _ _ _ * _ _ _ _) 04039 * (_ _ _ _ _ _ _ _ _ _ _ _ _) 04040 * (* * * _ _ _ * _ _ _ * * *) 04041 * (_ _ _ _ _ * * * _ _ _ _ _) 04042 * (_ _ _ _ * * * * * _ _ _ _) 04043 * (_ _ _ _ _ * * * _ _ _ _ _) 04044 * (* * * _ _ _ * _ _ _ * * *) 04045 * (_ _ _ _ _ _ _ _ _ _ _ _ _) 04046 * (_ _ _ _ * _ _ _ * _ _ _ _) 04047 * (_ _ _ _ * _ _ _ * _ _ _ _) 04048 * (_ _ _ _ * _ _ _ * _ _ _ _) 04049 */ 04050 const int g71[] = { 04051 // Width and height of crossword grid 04052 13, 13, 04053 // Number of black fields 04054 37, 04055 // Black field coordinates 04056 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, 04057 // Total number of words in grid 04058 60, 04059 // Length and number of words of that length 04060 13, 4, 04061 // Coordinates where words start and direction (0 = horizontal) 04062 0,3,0, 0,9,0, 3,0,1, 9,0,1, 04063 // Length and number of words of that length 04064 5, 8, 04065 // Coordinates where words start and direction (0 = horizontal) 04066 0,5,0, 0,7,0, 5,0,1, 5,8,1, 7,0,1, 7,8,1, 8,5,0, 8,7,0, 04067 // Length and number of words of that length 04068 4, 28, 04069 // Coordinates where words start and direction (0 = horizontal) 04070 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, 04071 // Length and number of words of that length 04072 3, 20, 04073 // Coordinates where words start and direction (0 = horizontal) 04074 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, 04075 // End marker 04076 0 04077 }; 04078 04079 04080 const int* grids[] = { 04081 &g0[0], &g1[0], &g2[0], &g3[0], &g4[0], &g5[0], &g6[0], &g7[0], &g8[0], 04082 &g9[0], &g10[0], &g11[0], &g12[0], &g13[0], &g14[0], &g15[0], &g16[0], 04083 &g17[0], &g18[0], &g19[0], &g20[0], &g21[0], &g22[0], &g23[0], &g24[0], 04084 &g25[0], &g26[0], &g27[0], &g28[0], &g29[0], &g30[0], &g31[0], &g32[0], 04085 &g33[0], &g34[0], &g35[0], &g36[0], &g37[0], &g38[0], &g39[0], &g40[0], 04086 &g41[0], &g42[0], &g43[0], &g44[0], &g45[0], &g46[0], &g47[0], &g48[0], 04087 &g49[0], &g50[0], &g51[0], &g52[0], &g53[0], &g54[0], &g55[0], &g56[0], 04088 &g57[0], &g58[0], &g59[0], &g60[0], &g61[0], &g62[0], &g63[0], &g64[0], 04089 &g65[0], &g66[0], &g67[0], &g68[0], &g69[0], &g70[0], &g71[0] 04090 }; 04091 04092 const unsigned int n_grids = 72; 04093 04094 } 04095 04096 // STATISTICS: example-any