dep-selector-libgecode 1.0.0.alpha.0

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