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