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