diff options
Diffstat (limited to 'ext/wittle_generator/wittle_generator.cpp')
-rw-r--r-- | ext/wittle_generator/wittle_generator.cpp | 1889 |
1 files changed, 9 insertions, 1880 deletions
diff --git a/ext/wittle_generator/wittle_generator.cpp b/ext/wittle_generator/wittle_generator.cpp index 56f3d9d..5669592 100644 --- a/ext/wittle_generator/wittle_generator.cpp +++ b/ext/wittle_generator/wittle_generator.cpp | |||
@@ -4,394 +4,14 @@ | |||
4 | #include <vector> | 4 | #include <vector> |
5 | 5 | ||
6 | #include "Generate.h" | 6 | #include "Generate.h" |
7 | #include "PuzzlesetEasy.h" | ||
8 | #include "PuzzlesetHard.h" | ||
9 | #include "PuzzlesetMedium.h" | ||
7 | #include "Random.h" | 10 | #include "Random.h" |
8 | 11 | ||
9 | void MakeSecretSymmetryGrid(Generate& generator) { | ||
10 | for (int x : {0, 6, 8, 14}) { | ||
11 | for (int y : {0, 6, 8, 14}) { | ||
12 | generator.setSymbol(Decoration::Start, x, y); | ||
13 | } | ||
14 | } | ||
15 | for (int x : {0, 14}) { | ||
16 | for (int y : {2, 4, 10, 12}) { | ||
17 | generator.setSymbol(Decoration::Exit, x, y); | ||
18 | generator.setSymbol(Decoration::Exit, y, x); | ||
19 | } | ||
20 | } | ||
21 | } | ||
22 | |||
23 | Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | 12 | Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { |
24 | static std::vector<std::function<void(Generate&)>> generator_fns{ | 13 | const std::vector<std::function<void(Generate&)>>& generator_fns = |
25 | [](Generate& generator) { | 14 | GetEasyPuzzles(); |
26 | generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2); | ||
27 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
28 | generator.generate( | ||
29 | 4, 4, {{{Decoration::Dot_Intersection, 25}, {Decoration::Gap, 2}}}); | ||
30 | }, | ||
31 | [](Generate& generator) { | ||
32 | generator.setSymbol(Decoration::Start, 0, 4 * 2); | ||
33 | generator.generate(4, 4, | ||
34 | {{{Decoration::Stone | Decoration::Color::Black, 7}, | ||
35 | {Decoration::Stone | Decoration::Color::White, 5}, | ||
36 | {Decoration::Exit, 1}}}); | ||
37 | }, | ||
38 | [](Generate& generator) { | ||
39 | generator.setFlag(Generate::RegularStartEnd); | ||
40 | generator.setSymmetry(Panel::Rotational); | ||
41 | generator.generate(6, 6, {{{Decoration::Gap, 15}}}); | ||
42 | }, | ||
43 | [](Generate& generator) { | ||
44 | generator.setFlag(Generate::RegularStartEnd); | ||
45 | generator.setSymmetry(Panel::Vertical); | ||
46 | generator.generate(5, 8, {{{Decoration::Gap, 15}}}); | ||
47 | }, | ||
48 | [](Generate& generator) { | ||
49 | generator.setFlag(Generate::RegularStartEnd); | ||
50 | generator.setSymmetry(Panel::Horizontal); | ||
51 | generator.generate(5, 5, {{{Decoration::Dot, 7}}}); | ||
52 | }, | ||
53 | [](Generate& generator) { | ||
54 | generator.setFlag(Generate::RegularStartEnd); | ||
55 | generator.setSymmetry(Panel::Rotational); | ||
56 | generator.generate(5, 5, {{{Decoration::Dot, 6}}}); | ||
57 | }, | ||
58 | [](Generate& generator) { | ||
59 | generator.setFlag(Generate::RegularStartEnd); | ||
60 | generator.setSymmetry(Panel::Rotational); | ||
61 | generator.generate(5, 5, | ||
62 | {{{Decoration::Dot | Decoration::Color::Blue, 1}, | ||
63 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
64 | {Decoration::Dot, 4}}}); | ||
65 | }, | ||
66 | [](Generate& generator) { | ||
67 | generator.setFlag(Generate::RegularStartEnd); | ||
68 | generator.generate( | ||
69 | 4, 4, {{{Decoration::Poly | Decoration::Color::Yellow, 2}}}); | ||
70 | }, | ||
71 | [](Generate& generator) { | ||
72 | generator.setFlag(Generate::FullGaps); | ||
73 | generator.setFlag(Generate::StartEdgeOnly); | ||
74 | generator.generate(5, 5, | ||
75 | {{{Decoration::Gap, 16}, | ||
76 | {Decoration::Dot, 10}, | ||
77 | {Decoration::Exit, 1}, | ||
78 | {Decoration::Start, 1}}}); | ||
79 | }, | ||
80 | [](Generate& generator) { | ||
81 | generator.setFlag(Generate::RegularStartEnd); | ||
82 | generator.generate(3, 3, | ||
83 | {{{Decoration::Eraser | Decoration::Color::Green, 1}, | ||
84 | {Decoration::Dot, 8}}}); | ||
85 | }, | ||
86 | [](Generate& generator) { | ||
87 | generator.setFlag(Generate::RegularStartEnd); | ||
88 | generator.generate( | ||
89 | 4, 4, | ||
90 | {{{Decoration::Stone | Decoration::Color::White, 8}, | ||
91 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
92 | {Decoration::Eraser | Decoration::Color::Green, 1}}}); | ||
93 | }, | ||
94 | [](Generate& generator) { | ||
95 | generator.setFlag(Generate::RegularStartEnd); | ||
96 | generator.generate( | ||
97 | 4, 4, | ||
98 | {{{Decoration::Stone | Decoration::Color::Red, 4}, | ||
99 | {Decoration::Stone | Decoration::Color::White, 4}, | ||
100 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
101 | {Decoration::Eraser | Decoration::Color::Green, 1}}}); | ||
102 | }, | ||
103 | [](Generate& generator) { | ||
104 | generator.setFlag(Generate::RegularStartEnd); | ||
105 | generator.setFlag(Generate::RequireCombineShapes); | ||
106 | generator.generate(4, 4, | ||
107 | {{{Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
108 | {Decoration::Poly | Decoration::Color::Yellow | | ||
109 | Decoration::Can_Rotate, | ||
110 | 1}, | ||
111 | {Decoration::Gap, 5}}}); | ||
112 | }, | ||
113 | [](Generate& generator) { | ||
114 | generator.setFlag(Generate::RegularStartEnd); | ||
115 | generator.generate( | ||
116 | 3, 3, | ||
117 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
118 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
119 | }, | ||
120 | [](Generate& generator) { | ||
121 | generator.setFlag(Generate::FullGaps); | ||
122 | generator.generate(4, 4, | ||
123 | {{{Decoration::Gap, 8}, | ||
124 | {Decoration::Dot_Intersection, 10}, | ||
125 | {Decoration::Exit, 1}, | ||
126 | {Decoration::Start, 3}}}); | ||
127 | }, | ||
128 | [](Generate& generator) { | ||
129 | generator.generate(5, 5, | ||
130 | {{{Decoration::Exit, 1}, | ||
131 | {Decoration::Stone | Decoration::Color::Black, 11}, | ||
132 | {Decoration::Stone | Decoration::Color::White, 8}, | ||
133 | {Decoration::Start, 3}}}); | ||
134 | }, | ||
135 | [](Generate& generator) { | ||
136 | generator.setFlag(Generate::RegularStartEnd); | ||
137 | generator.generate(4, 4, | ||
138 | {{{Decoration::Star | Decoration::Color::Green, 6}, | ||
139 | {Decoration::Star | Decoration::Color::Orange, 5}, | ||
140 | {Decoration::Eraser | Decoration::Orange, 1}}}); | ||
141 | }, | ||
142 | [](Generate& generator) { | ||
143 | generator.setFlag(Generate::RegularStartEnd); | ||
144 | generator.generate(4, 4, | ||
145 | {{{Decoration::Star | Decoration::Color::Orange, 6}, | ||
146 | {Decoration::Star | Decoration::Color::Magenta, 5}, | ||
147 | {Decoration::Star | Decoration::Color::Green, 4}, | ||
148 | {Decoration::Eraser | Decoration::Magenta, 1}}}); | ||
149 | }, | ||
150 | [](Generate& generator) { | ||
151 | generator.setFlag(Generate::RegularStartEnd); | ||
152 | generator.generate(4, 4, | ||
153 | {{{Decoration::Star | Decoration::Color::Magenta, 6}, | ||
154 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
155 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
156 | }, | ||
157 | [](Generate& generator) { | ||
158 | generator.setFlag(Generate::RegularStartEnd); | ||
159 | generator.generate(4, 4, | ||
160 | {{{Decoration::Star | Decoration::Color::Magenta, 5}, | ||
161 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
162 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
163 | }, | ||
164 | [](Generate& generator) { | ||
165 | generator.setFlag(Generate::TreehouseLayout); | ||
166 | generator.generate(4, 4, | ||
167 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
168 | {Decoration::Gap, 10}}}); | ||
169 | }, | ||
170 | [](Generate& generator) { | ||
171 | generator.setFlag(Generate::RegularStartEnd); | ||
172 | generator.generate(5, 5, | ||
173 | {{{Decoration::Star | Decoration::Color::Orange, 10}, | ||
174 | {Decoration::Gap, 3}}}); | ||
175 | }, | ||
176 | [](Generate& generator) { | ||
177 | generator.setFlag(Generate::TreehouseLayout); | ||
178 | generator.generate(4, 4, | ||
179 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
180 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
181 | {Decoration::Gap, 8}}}); | ||
182 | }, | ||
183 | [](Generate& generator) { | ||
184 | generator.setFlag(Generate::TreehouseLayout); | ||
185 | generator.generate(4, 4, | ||
186 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
187 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
188 | {Decoration::Star | Decoration::Color::Green, 2}, | ||
189 | {Decoration::Gap, 8}}}); | ||
190 | }, | ||
191 | [](Generate& generator) { | ||
192 | generator.setFlag(Generate::TreehouseLayout); | ||
193 | generator.generate( | ||
194 | 4, 3, | ||
195 | {{{Decoration::Star | Decoration::Color::Orange, 6}, | ||
196 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
197 | {Decoration::Star | Decoration::Color::Green, 2}}}); | ||
198 | }, | ||
199 | [](Generate& generator) { | ||
200 | generator.setFlag(Generate::TreehouseLayout); | ||
201 | generator.setFlag(Generate::FullGaps); | ||
202 | generator.generate(4, 4, | ||
203 | {{{Decoration::Star | Decoration::Color::Magenta, 6}, | ||
204 | {Decoration::Dot_Intersection, 6}, | ||
205 | {Decoration::Gap, 3}}}); | ||
206 | }, | ||
207 | [](Generate& generator) { | ||
208 | generator.setFlag(Generate::TreehouseLayout); | ||
209 | generator.generate( | ||
210 | 4, 4, | ||
211 | {{{Decoration::Star | Decoration::Color::Magenta, 4}, | ||
212 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
213 | {Decoration::Stone | Decoration::Color::White, 4}}}); | ||
214 | }, | ||
215 | [](Generate& generator) { | ||
216 | generator.setFlag(Generate::TreehouseLayout); | ||
217 | generator.generate( | ||
218 | 3, 3, | ||
219 | {{{Decoration::Star | Decoration::Color::Black, 1}, | ||
220 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
221 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
222 | }, | ||
223 | [](Generate& generator) { | ||
224 | generator.setFlag(Generate::TreehouseLayout); | ||
225 | generator.generate( | ||
226 | 4, 4, | ||
227 | {{{Decoration::Star | Decoration::Color::White, 2}, | ||
228 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
229 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
230 | {Decoration::Stone | Decoration::Color::Purple, 2}}}); | ||
231 | }, | ||
232 | [](Generate& generator) { | ||
233 | generator.setFlag(Generate::TreehouseLayout); | ||
234 | generator.generate( | ||
235 | 4, 4, | ||
236 | {{{Decoration::Poly | Decoration::Color::Orange, 2}, | ||
237 | {Decoration::Star | Decoration::Color::Magenta, 4}}}); | ||
238 | }, | ||
239 | [](Generate& generator) { | ||
240 | generator.setFlag(Generate::TreehouseLayout); | ||
241 | generator.generate( | ||
242 | 4, 5, | ||
243 | {{{Decoration::Stone | Decoration::Color::White, 8}, | ||
244 | {Decoration::Stone | Decoration::Color::Black, 8}, | ||
245 | {Decoration::Eraser | Decoration::Color::White, 2}}}); | ||
246 | }, | ||
247 | [](Generate& generator) { | ||
248 | generator.setFlag(Generate::TreehouseLayout); | ||
249 | generator.generate(4, 5, | ||
250 | {{{Decoration::Poly | Decoration::Color::Orange, 2}, | ||
251 | {Decoration::Stone | Decoration::Color::White, 4}, | ||
252 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
253 | {Decoration::Gap, 4}}}); | ||
254 | }, | ||
255 | [](Generate& generator) { | ||
256 | generator.setFlag(Generate::RegularStartEnd); | ||
257 | generator.generate( | ||
258 | 4, 4, | ||
259 | {{{Decoration::Dot_Intersection, 25}, | ||
260 | {Decoration::Poly | Decoration::Color::Yellow, 2}}}); | ||
261 | }, | ||
262 | [](Generate& generator) { | ||
263 | generator.setFlag(Generate::RegularStartEnd); | ||
264 | generator.generate( | ||
265 | 4, 4, | ||
266 | {{{Decoration::Dot_Intersection, 25}, | ||
267 | {Decoration::Poly | Decoration::Color::Yellow | | ||
268 | Decoration::Can_Rotate, | ||
269 | 2}, | ||
270 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
271 | }, | ||
272 | [](Generate& generator) { | ||
273 | generator.setFlag(Generate::RegularStartEnd); | ||
274 | generator.setSymmetry(Panel::Rotational); | ||
275 | generator.generate( | ||
276 | 5, 5, | ||
277 | {{{Decoration::Stone | Decoration::Color::Black, 6}, | ||
278 | {Decoration::Stone | Decoration::Color::White, 6}}}); | ||
279 | }, | ||
280 | [](Generate& generator) { | ||
281 | generator.setFlag(Generate::RegularStartEnd); | ||
282 | generator.setSymmetry(Panel::Rotational); | ||
283 | generator.generate(5, 5, | ||
284 | {{{Decoration::Stone | Decoration::Color::Black, 5}, | ||
285 | {Decoration::Stone | Decoration::Color::White, 5}, | ||
286 | {Decoration::Dot, 3}}}); | ||
287 | }, | ||
288 | [](Generate& generator) { | ||
289 | generator.setFlag(Generate::RegularStartEnd); | ||
290 | generator.setFlag(Generate::SplitShapes); | ||
291 | generator.generate(4, 4, | ||
292 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
293 | {Decoration::Gap, 8}}}); | ||
294 | }, | ||
295 | [](Generate& generator) { | ||
296 | generator.setFlag(Generate::RegularStartEnd); | ||
297 | generator.setFlag(Generate::BigShapes); | ||
298 | generator.generate(5, 5, | ||
299 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
300 | {Decoration::Gap, 12}}}); | ||
301 | }, | ||
302 | [](Generate& generator) { | ||
303 | generator.setFlag(Generate::RegularStartEnd); | ||
304 | generator.setFlag(Generate::DisconnectShapes); | ||
305 | generator.generate( | ||
306 | 3, 3, {{{Decoration::Poly | Decoration::Color::Yellow, 2}}}); | ||
307 | }, | ||
308 | [](Generate& generator) { | ||
309 | generator.setFlag(Generate::RegularStartEnd); | ||
310 | generator.setFlag(Generate::DisconnectShapes); | ||
311 | generator.setFlag(Generate::BigShapes); | ||
312 | generator.generate( | ||
313 | 4, 4, {{{Decoration::Poly | Decoration::Color::Yellow, 2}}}); | ||
314 | }, | ||
315 | [](Generate& generator) { | ||
316 | generator.setFlag(Generate::RegularStartEnd); | ||
317 | generator.setFlag(Generate::RequireCombineShapes); | ||
318 | generator.setFlag(Generate::DisableCancelShapes); | ||
319 | generator.generate(3, 3, | ||
320 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
321 | {Decoration::Poly | Decoration::Negative | | ||
322 | Decoration::Color::Blue, | ||
323 | 1}}}); | ||
324 | }, | ||
325 | [](Generate& generator) { | ||
326 | generator.setFlag(Generate::RegularStartEnd); | ||
327 | generator.setFlag(Generate::RequireCombineShapes); | ||
328 | generator.setFlag(Generate::DisableCancelShapes); | ||
329 | generator.generate(4, 4, | ||
330 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
331 | {Decoration::Poly | Decoration::Negative | | ||
332 | Decoration::Color::Blue, | ||
333 | 1}}}); | ||
334 | }, | ||
335 | [](Generate& generator) { | ||
336 | generator.setFlag(Generate::RegularStartEnd); | ||
337 | generator.setFlag(Generate::BigShapes); | ||
338 | generator.setFlag(Generate::DisableCancelShapes); | ||
339 | generator.generate(4, 4, | ||
340 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
341 | {Decoration::Poly | Decoration::Negative | | ||
342 | Decoration::Color::Blue, | ||
343 | 1}}}); | ||
344 | }, | ||
345 | [](Generate& generator) { | ||
346 | generator.setFlag(Generate::RegularStartEnd); | ||
347 | generator.setFlag(Generate::RequireCancelShapes); | ||
348 | generator.generate(4, 4, | ||
349 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
350 | {Decoration::Poly | Decoration::Negative | | ||
351 | Decoration::Color::Blue, | ||
352 | 2}}}); | ||
353 | }, | ||
354 | [](Generate& generator) { | ||
355 | generator.setFlag(Generate::RegularStartEnd); | ||
356 | generator.generate( | ||
357 | 4, 4, {{{Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
358 | }, | ||
359 | [](Generate& generator) { | ||
360 | generator.setFlag(Generate::TreehouseLayout); | ||
361 | generator.setFlag(Generate::LongPath); | ||
362 | generator.generate( | ||
363 | 5, 4, | ||
364 | {{{Decoration::Star | Decoration::Color::Magenta, 6}, | ||
365 | {Decoration::Stone | Decoration::Color::Orange, 4}, | ||
366 | {Decoration::Stone | Decoration::Color::Green, 4}}}); | ||
367 | }, | ||
368 | [](Generate& generator) { | ||
369 | generator.setFlag(Generate::RegularStartEnd); | ||
370 | generator.generate( | ||
371 | 4, 4, | ||
372 | {{{Decoration::Dot, 6}, | ||
373 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
374 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
375 | }, | ||
376 | [](Generate& generator) { | ||
377 | generator.setFlag(Generate::RegularStartEnd); | ||
378 | generator.generate( | ||
379 | 4, 4, | ||
380 | {{{Decoration::Dot, 4}, | ||
381 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
382 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
383 | {Decoration::Poly | Decoration::Color::Yellow, 1}}}); | ||
384 | }, | ||
385 | [](Generate& generator) { | ||
386 | generator.setSymmetry(Panel::Rotational); | ||
387 | generator.generate(5, 5, | ||
388 | {{{Decoration::Dot | Decoration::Color::Blue, 2}, | ||
389 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
390 | {Decoration::Dot, 4}, | ||
391 | {Decoration::Start, 2}, | ||
392 | {Decoration::Exit, 1}}}); | ||
393 | }, | ||
394 | }; | ||
395 | 15 | ||
396 | Generate generator; | 16 | Generate generator; |
397 | 17 | ||
@@ -405,594 +25,8 @@ Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | |||
405 | } | 25 | } |
406 | 26 | ||
407 | Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | 27 | Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { |
408 | static std::vector<std::function<void(Generate&)>> generator_fns{ | 28 | const std::vector<std::function<void(Generate&)>>& generator_fns = |
409 | [](Generate& generator) { | 29 | GetMediumPuzzles(); |
410 | generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2); | ||
411 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
412 | generator.generate( | ||
413 | 4, 4, | ||
414 | {{{Decoration::Stone | Decoration::Color::White, 5}, | ||
415 | {Decoration::Stone | Decoration::Color::Black, 5}, | ||
416 | {Decoration::Dot, 4}, | ||
417 | {Decoration::Eraser | Decoration::Color::Green, 1}}}); | ||
418 | }, | ||
419 | [](Generate& generator) { | ||
420 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
421 | generator.setSymbol(Decoration::Exit, 7 * 2, 0); | ||
422 | generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2); | ||
423 | generator.generate(7, 7, | ||
424 | {{{Decoration::Stone | Decoration::Color::White, 10}, | ||
425 | {Decoration::Stone | Decoration::Color::Black, 10}, | ||
426 | {Decoration::Dot, 10}, | ||
427 | {Decoration::Start, 4}}}); | ||
428 | }, | ||
429 | [](Generate& generator) { | ||
430 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
431 | generator.setSymbol(Decoration::Exit, 7 * 2, 0); | ||
432 | generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2); | ||
433 | generator.generate( | ||
434 | 7, 7, | ||
435 | {{{Decoration::Stone | Decoration::Color::White, 10}, | ||
436 | {Decoration::Stone | Decoration::Color::Black, 10}, | ||
437 | {Decoration::Dot, 10}, | ||
438 | {Decoration::Eraser | Decoration::Color::Purple, 1}, | ||
439 | {Decoration::Start, 3}}}); | ||
440 | }, | ||
441 | [](Generate& generator) { | ||
442 | generator.setFlag(Generate::RegularStartEnd); | ||
443 | generator.generate(5, 5, | ||
444 | {{{Decoration::Star | Decoration::White, 8}, | ||
445 | {Decoration::Star | Decoration::Black, 6}}}); | ||
446 | }, | ||
447 | [](Generate& generator) { | ||
448 | generator.setFlag(Generate::RegularStartEnd); | ||
449 | generator.setFlag(Generate::DisconnectShapes); | ||
450 | generator.generate( | ||
451 | 4, 4, | ||
452 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
453 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
454 | }, | ||
455 | [](Generate& generator) { | ||
456 | generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2); | ||
457 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
458 | generator.generate( | ||
459 | 4, 4, | ||
460 | {{{Decoration::Dot_Intersection, 25}, | ||
461 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
462 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
463 | }, | ||
464 | [](Generate& generator) { | ||
465 | generator.setFlag(Generate::RegularStartEnd); | ||
466 | generator.setFlag(Generate::RequireCancelShapes); | ||
467 | generator.generate(6, 6, | ||
468 | {{{Decoration::Dot_Intersection, 49}, | ||
469 | {Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
470 | {Decoration::Poly | Decoration::Color::Yellow | | ||
471 | Decoration::Can_Rotate, | ||
472 | 2}, | ||
473 | {Decoration::Poly | Decoration::Color::Blue | | ||
474 | Decoration::Negative, | ||
475 | 3}}}); | ||
476 | }, | ||
477 | [](Generate& generator) { | ||
478 | generator.setFlag(Generate::RegularStartEnd); | ||
479 | generator.generate( | ||
480 | 4, 4, | ||
481 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
482 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
483 | }, | ||
484 | [](Generate& generator) { | ||
485 | generator.setSymbol(Decoration::Start, 0, 3 * 2); | ||
486 | generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2); | ||
487 | generator.generate(6, 3, | ||
488 | {{{Decoration::Star | Decoration::Color::Magenta, 3}, | ||
489 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
490 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
491 | }, | ||
492 | [](Generate& generator) { | ||
493 | generator.setSymbol(Decoration::Start, 0, 3 * 2); | ||
494 | generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2); | ||
495 | generator.generate(6, 3, | ||
496 | {{{Decoration::Star | Decoration::Color::Magenta, 5}, | ||
497 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
498 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
499 | }, | ||
500 | [](Generate& generator) { | ||
501 | generator.setSymbol(Decoration::Start, 0, 3 * 2); | ||
502 | generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2); | ||
503 | generator.generate(6, 3, | ||
504 | {{{Decoration::Star | Decoration::Color::Magenta, 6}, | ||
505 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
506 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
507 | }, | ||
508 | [](Generate& generator) { | ||
509 | generator.setSymbol(Decoration::Start, 0, 3 * 2); | ||
510 | generator.setSymbol(Decoration::Exit, 7 * 2, 3 * 2); | ||
511 | generator.generate(7, 3, | ||
512 | {{{Decoration::Star | Decoration::Color::Magenta, 5}, | ||
513 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
514 | {Decoration::Eraser | Decoration::White, 1}}}); | ||
515 | }, | ||
516 | [](Generate& generator) { | ||
517 | generator.setFlag(Generate::TreehouseLayout); | ||
518 | generator.generate( | ||
519 | 4, 4, | ||
520 | {{{Decoration::Star | Decoration::Color::Orange, 6}, | ||
521 | {Decoration::Star | Decoration::Color::Magenta, 6}, | ||
522 | {Decoration::Star | Decoration::Color::Green, 4}}}); | ||
523 | }, | ||
524 | [](Generate& generator) { | ||
525 | generator.setFlag(Generate::TreehouseLayout); | ||
526 | generator.setFlag(Generate::FullGaps); | ||
527 | generator.generate(5, 5, | ||
528 | {{{Decoration::Star | Decoration::Color::Magenta, 8}, | ||
529 | {Decoration::Dot_Intersection, 9}, | ||
530 | {Decoration::Gap, 5}}}); | ||
531 | }, | ||
532 | [](Generate& generator) { | ||
533 | generator.setFlag(Generate::TreehouseLayout); | ||
534 | generator.generate( | ||
535 | 4, 4, | ||
536 | {{{Decoration::Star | Decoration::Color::Black, 4}, | ||
537 | {Decoration::Star | Decoration::Color::White, 4}, | ||
538 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
539 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
540 | }, | ||
541 | [](Generate& generator) { | ||
542 | generator.setFlag(Generate::TreehouseLayout); | ||
543 | generator.generate( | ||
544 | 5, 5, | ||
545 | {{{Decoration::Poly | Decoration::Color::Orange, 2}, | ||
546 | {Decoration::Poly | Decoration::Color::Magenta, 1}, | ||
547 | {Decoration::Star | Decoration::Color::Magenta, 3}}}); | ||
548 | }, | ||
549 | [](Generate& generator) { | ||
550 | generator.setFlag(Generate::TreehouseLayout); | ||
551 | generator.setFlag(Generate::RequireCombineShapes); | ||
552 | generator.generate( | ||
553 | 5, 5, | ||
554 | {{{Decoration::Poly | Decoration::Color::Orange, 1}, | ||
555 | {Decoration::Poly | Decoration::Can_Rotate | | ||
556 | Decoration::Color::Orange, | ||
557 | 1}, | ||
558 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
559 | {Decoration::Star | Decoration::Color::Green, 4}}}); | ||
560 | }, | ||
561 | [](Generate& generator) { | ||
562 | generator.setFlag(Generate::RegularStartEnd); | ||
563 | generator.generate( | ||
564 | 4, 4, | ||
565 | {{{Decoration::Poly | Decoration::Color::Orange, 3}, | ||
566 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
567 | {Decoration::Stone | Decoration::Color::Black, 2}}}); | ||
568 | }, | ||
569 | [](Generate& generator) { | ||
570 | generator.setFlag(Generate::RegularStartEnd); | ||
571 | generator.generate(4, 4, | ||
572 | {{{Decoration::Dot_Intersection, 25}, | ||
573 | {Decoration::Poly | Decoration::Can_Rotate | | ||
574 | Decoration::Color::Yellow, | ||
575 | 2}}}); | ||
576 | }, | ||
577 | [](Generate& generator) { | ||
578 | generator.setFlag(Generate::RegularStartEnd); | ||
579 | generator.setFlag(Generate::SmallShapes); | ||
580 | generator.generate( | ||
581 | 5, 5, | ||
582 | {{{Decoration::Poly | Decoration::Can_Rotate | | ||
583 | Decoration::Color::Yellow, | ||
584 | 4}, | ||
585 | {Decoration::Star | Decoration::Color::Orange, 6}}}); | ||
586 | }, | ||
587 | [](Generate& generator) { | ||
588 | generator.setFlag(Generate::RegularStartEnd); | ||
589 | generator.generate(5, 5, | ||
590 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
591 | {Decoration::Gap, 5}}}); | ||
592 | }, | ||
593 | [](Generate& generator) { | ||
594 | generator.setFlag(Generate::RegularStartEnd); | ||
595 | generator.generate( | ||
596 | 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 4}}}); | ||
597 | }, | ||
598 | [](Generate& generator) { | ||
599 | generator.setFlag(Generate::RegularStartEnd); | ||
600 | generator.setFlag(Generate::DisconnectShapes); | ||
601 | generator.generate( | ||
602 | 4, 4, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
603 | }, | ||
604 | [](Generate& generator) { | ||
605 | generator.setFlag(Generate::RegularStartEnd); | ||
606 | generator.generate(5, 5, | ||
607 | {{{Decoration::Poly | Decoration::Can_Rotate | | ||
608 | Decoration::Color::Yellow, | ||
609 | 2}, | ||
610 | {Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
611 | {Decoration::Gap, 2}}}); | ||
612 | }, | ||
613 | [](Generate& generator) { | ||
614 | generator.setFlag(Generate::RegularStartEnd); | ||
615 | generator.setFlag(Generate::BigShapes); | ||
616 | generator.generate(5, 5, | ||
617 | {{{Decoration::Poly | Decoration::Can_Rotate | | ||
618 | Decoration::Color::Yellow, | ||
619 | 3}}}); | ||
620 | }, | ||
621 | [](Generate& generator) { | ||
622 | generator.setFlag(Generate::RegularStartEnd); | ||
623 | generator.generate( | ||
624 | 5, 6, {{{Decoration::Poly | Decoration::Color::Yellow, 5}}}); | ||
625 | }, | ||
626 | [](Generate& generator) { | ||
627 | generator.setFlag(Generate::RegularStartEnd); | ||
628 | generator.setFlag(Generate::BigShapes); | ||
629 | generator.generate(4, 4, | ||
630 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
631 | {Decoration::Poly | Decoration::Negative | | ||
632 | Decoration::Color::Blue, | ||
633 | 2}}}); | ||
634 | }, | ||
635 | [](Generate& generator) { | ||
636 | generator.setFlag(Generate::RegularStartEnd); | ||
637 | generator.generate(4, 4, | ||
638 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
639 | {Decoration::Poly | Decoration::Negative | | ||
640 | Decoration::Color::Blue, | ||
641 | 2}}}); | ||
642 | }, | ||
643 | [](Generate& generator) { | ||
644 | generator.setFlag(Generate::RegularStartEnd); | ||
645 | generator.generate( | ||
646 | 4, 4, {{{Decoration::Triangle | Decoration::Color::Orange, 8}}}); | ||
647 | }, | ||
648 | [](Generate& generator) { | ||
649 | generator.setFlag(Generate::RegularStartEnd); | ||
650 | generator.setFlag(Generate::LongestPath); | ||
651 | generator.setFlag(Generate::FullGaps); | ||
652 | generator.generate( | ||
653 | 6, 6, | ||
654 | {{{Decoration::Dot_Intersection, 12}, {Decoration::Gap, 18}}}); | ||
655 | }, | ||
656 | [](Generate& generator) { | ||
657 | generator.generate(5, 5, | ||
658 | {{{Decoration::Start, 8}, | ||
659 | {Decoration::Exit, 1}, | ||
660 | {Decoration::Dot_Intersection, 36}}}); | ||
661 | }, | ||
662 | [](Generate& generator) { | ||
663 | generator.setFlag(Generate::RegularStartEnd); | ||
664 | generator.setSymmetry(Panel::Horizontal); | ||
665 | generator.generate( | ||
666 | 6, 6, | ||
667 | {{{Decoration::Triangle | Decoration::Color::Orange, 12}, | ||
668 | {Decoration::Start, 1}, | ||
669 | {Decoration::Exit, 1}}}); | ||
670 | }, | ||
671 | [](Generate& generator) { | ||
672 | generator.setFlag(Generate::RegularStartEnd); | ||
673 | generator.generate( | ||
674 | 4, 4, | ||
675 | {{{Decoration::Dot, 4}, | ||
676 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
677 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
678 | {Decoration::Star | Decoration::Color::Black, 2}, | ||
679 | {Decoration::Star | Decoration::Color::White, 2}}}); | ||
680 | }, | ||
681 | [](Generate& generator) { | ||
682 | generator.setFlag(Generate::RegularStartEnd); | ||
683 | generator.generate( | ||
684 | 4, 4, | ||
685 | {{{Decoration::Dot, 4}, | ||
686 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
687 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
688 | {Decoration::Star | Decoration::Color::Black, 3}, | ||
689 | {Decoration::Star | Decoration::Color::White, 1}}}); | ||
690 | }, | ||
691 | [](Generate& generator) { | ||
692 | generator.setFlag(Generate::RegularStartEnd); | ||
693 | generator.generate( | ||
694 | 5, 5, | ||
695 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
696 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
697 | {Decoration::Stone | Decoration::Color::White, 4}}}); | ||
698 | }, | ||
699 | [](Generate& generator) { | ||
700 | generator.setFlag(Generate::RegularStartEnd); | ||
701 | generator.generate( | ||
702 | 5, 5, | ||
703 | {{{Decoration::Stone | Decoration::Color::Cyan, 2}, | ||
704 | {Decoration::Stone | Decoration::Color::Yellow, 2}, | ||
705 | {Decoration::Star | Decoration::Color::Cyan, 3}, | ||
706 | {Decoration::Star | Decoration::Color::Yellow, 3}}}); | ||
707 | }, | ||
708 | [](Generate& generator) { | ||
709 | generator.setFlag(Generate::RegularStartEnd); | ||
710 | generator.generate( | ||
711 | 6, 6, | ||
712 | {{{Decoration::Stone | Decoration::Color::Cyan, 2}, | ||
713 | {Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
714 | {Decoration::Star | Decoration::Color::Cyan, 2}, | ||
715 | {Decoration::Star | Decoration::Color::Magenta, 1}, | ||
716 | {Decoration::Poly | Decoration::Color::Cyan, 1}, | ||
717 | {Decoration::Poly | Decoration::Color::Magenta, 1}}}); | ||
718 | }, | ||
719 | [](Generate& generator) { | ||
720 | generator.setFlag(Generate::RegularStartEnd); | ||
721 | generator.generate( | ||
722 | 5, 5, {{{Decoration::Triangle | Decoration::Color::Orange, 10}}}); | ||
723 | }, | ||
724 | [](Generate& generator) { | ||
725 | generator.setFlag(Generate::RegularStartEnd); | ||
726 | generator.generate( | ||
727 | 5, 3, | ||
728 | {{{Decoration::Stone | Decoration::Color::Black, 4}, | ||
729 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
730 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
731 | }, | ||
732 | [](Generate& generator) { | ||
733 | generator.setFlag(Generate::RegularStartEnd); | ||
734 | generator.generate( | ||
735 | 4, 4, | ||
736 | {{{Decoration::Dot, 25}, | ||
737 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
738 | }, | ||
739 | [](Generate& generator) { | ||
740 | generator.setFlag(Generate::RegularStartEnd); | ||
741 | generator.setFlag(Generate::RequireCombineShapes); | ||
742 | generator.setSymmetry(Panel::Rotational); | ||
743 | generator.generate( | ||
744 | 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
745 | }, | ||
746 | [](Generate& generator) { | ||
747 | generator.setFlag(Generate::RegularStartEnd); | ||
748 | generator.setFlag(Generate::DisconnectShapes); | ||
749 | generator.setFlag(Generate::BigShapes); | ||
750 | generator.generate( | ||
751 | 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
752 | }, | ||
753 | [](Generate& generator) { | ||
754 | generator.setFlag(Generate::RegularStartEnd); | ||
755 | generator.setFlag(Generate::DisconnectShapes); | ||
756 | generator.generate(4, 4, | ||
757 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
758 | {Decoration::Poly | Decoration::Color::Blue | | ||
759 | Decoration::Negative, | ||
760 | 1}}}); | ||
761 | }, | ||
762 | [](Generate& generator) { | ||
763 | generator.setFlag(Generate::RegularStartEnd); | ||
764 | generator.generate( | ||
765 | 4, 4, | ||
766 | {{{Decoration::Stone | Decoration::Color::Black, 3}, | ||
767 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
768 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
769 | }, | ||
770 | [](Generate& generator) { | ||
771 | generator.setFlag(Generate::RegularStartEnd); | ||
772 | generator.generate( | ||
773 | 4, 4, | ||
774 | {{{Decoration::Star | Decoration::Color::Black, 4}, | ||
775 | {Decoration::Star | Decoration::Color::White, 4}, | ||
776 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
777 | }, | ||
778 | [](Generate& generator) { | ||
779 | generator.setFlag(Generate::RegularStartEnd); | ||
780 | generator.generate( | ||
781 | 4, 4, | ||
782 | {{{Decoration::Star | Decoration::Color::Orange, 3}, | ||
783 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
784 | }, | ||
785 | [](Generate& generator) { | ||
786 | generator.setFlag(Generate::RegularStartEnd); | ||
787 | generator.generate( | ||
788 | 4, 4, | ||
789 | {{{Decoration::Star | Decoration::Color::Black, 2}, | ||
790 | {Decoration::Star | Decoration::Color::Orange, 2}, | ||
791 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
792 | {Decoration::Stone | Decoration::Color::Orange, 1}, | ||
793 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
794 | }, | ||
795 | [](Generate& generator) { | ||
796 | generator.setFlag(Generate::RegularStartEnd); | ||
797 | generator.setFlag(Generate::BigShapes); | ||
798 | generator.generate( | ||
799 | 4, 4, | ||
800 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
801 | Decoration::Can_Rotate, | ||
802 | 1}, | ||
803 | {Decoration::Triangle | Decoration::Color::Orange, 3}}}); | ||
804 | }, | ||
805 | [](Generate& generator) { | ||
806 | generator.setFlag(Generate::RegularStartEnd); | ||
807 | generator.setFlag(Generate::BigShapes); | ||
808 | generator.generate( | ||
809 | 5, 5, | ||
810 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
811 | Decoration::Can_Rotate, | ||
812 | 1}, | ||
813 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
814 | }, | ||
815 | [](Generate& generator) { | ||
816 | generator.setFlag(Generate::RegularStartEnd); | ||
817 | generator.setFlag(Generate::BigShapes); | ||
818 | generator.generate( | ||
819 | 5, 5, | ||
820 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
821 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
822 | }, | ||
823 | [](Generate& generator) { | ||
824 | generator.setFlag(Generate::RegularStartEnd); | ||
825 | generator.generate( | ||
826 | 4, 4, | ||
827 | {{{Decoration::Dot, 25}, | ||
828 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
829 | }, | ||
830 | [](Generate& generator) { | ||
831 | generator.setSymbol(Decoration::Start, 0, 4 * 2); | ||
832 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
833 | generator.generate( | ||
834 | 4, 4, | ||
835 | {{{Decoration::Dot, 25}, | ||
836 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
837 | }, | ||
838 | [](Generate& generator) { | ||
839 | generator.setSymbol(Decoration::Start, 0, 4 * 2); | ||
840 | generator.setSymbol(Decoration::Exit, 4 * 2, 4 * 2); | ||
841 | generator.generate( | ||
842 | 4, 4, | ||
843 | {{{Decoration::Dot, 25}, | ||
844 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
845 | }, | ||
846 | [](Generate& generator) { | ||
847 | generator.setFlag(Generate::RegularStartEnd); | ||
848 | generator.generate( | ||
849 | 4, 4, | ||
850 | {{{Decoration::Dot, 25}, | ||
851 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
852 | }, | ||
853 | [](Generate& generator) { | ||
854 | generator.setFlag(Generate::RegularStartEnd); | ||
855 | generator.setFlag(Generate::DisconnectShapes); | ||
856 | generator.generate(5, 5, | ||
857 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
858 | Decoration::Can_Rotate, | ||
859 | 3}}}); | ||
860 | }, | ||
861 | [](Generate& generator) { | ||
862 | generator.setFlag(Generate::TreehouseLayout); | ||
863 | generator.generate( | ||
864 | 4, 4, | ||
865 | {{{Decoration::Star | Decoration::Color::Black, 4}, | ||
866 | {Decoration::Star | Decoration::Color::White, 4}, | ||
867 | {Decoration::Star | Decoration::Color::Orange, 4}, | ||
868 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
869 | {Decoration::Stone | Decoration::Color::White, 1}}}); | ||
870 | }, | ||
871 | [](Generate& generator) { | ||
872 | generator.setFlag(Generate::RegularStartEnd); | ||
873 | generator.generate( | ||
874 | 3, 3, | ||
875 | {{{Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
876 | {Decoration::Stone | Decoration::Color::Green, 1}, | ||
877 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
878 | {Decoration::Star | Decoration::Color::Green, 3}, | ||
879 | {Decoration::Eraser | Decoration::Color::Magenta, 1}}}); | ||
880 | }, | ||
881 | [](Generate& generator) { | ||
882 | generator.setFlag(Generate::RegularStartEnd); | ||
883 | generator.generate( | ||
884 | 4, 4, | ||
885 | {{{Decoration::Dot_Intersection, 25}, | ||
886 | {Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
887 | }, | ||
888 | [](Generate& generator) { | ||
889 | generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2); | ||
890 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
891 | generator.generate(4, 4, | ||
892 | {{{Decoration::Dot_Intersection, 25}, | ||
893 | {Decoration::Poly | Decoration::Color::Yellow | | ||
894 | Decoration::Can_Rotate, | ||
895 | 2}}}); | ||
896 | }, | ||
897 | [](Generate& generator) { | ||
898 | generator.setFlag(Generate::RegularStartEnd); | ||
899 | generator.generate( | ||
900 | 5, 5, | ||
901 | {{{Decoration::Poly | Decoration::Color::Green, 4}, | ||
902 | {Decoration::Star | Decoration::Color::Green, 3}}}); | ||
903 | }, | ||
904 | [](Generate& generator) { | ||
905 | generator.setFlag(Generate::RegularStartEnd); | ||
906 | generator.generate( | ||
907 | 4, 4, {{{Decoration::Triangle2 | Decoration::Color::Orange, 12}}}); | ||
908 | }, | ||
909 | [](Generate& generator) { | ||
910 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
911 | generator.setSymbol(Decoration::Exit, 7 * 2, 0); | ||
912 | generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2); | ||
913 | generator.generate( | ||
914 | 7, 7, | ||
915 | {{{Decoration::Triangle | Decoration::Color::Orange, 12}, | ||
916 | {Decoration::Start, 3}}}); | ||
917 | }, | ||
918 | [](Generate& generator) { | ||
919 | generator.setFlag(Generate::TreehouseLayout); | ||
920 | generator.generate( | ||
921 | 4, 4, | ||
922 | {{{Decoration::Star | Decoration::Color::Orange, 1}, | ||
923 | {Decoration::Triangle | Decoration::Color::Orange, 7}}}); | ||
924 | }, | ||
925 | [](Generate& generator) { | ||
926 | generator.setFlag(Generate::TreehouseLayout); | ||
927 | generator.generate( | ||
928 | 4, 4, | ||
929 | {{{Decoration::Star | Decoration::Color::Orange, 3}, | ||
930 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
931 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
932 | {Decoration::Triangle | Decoration::Color::Magenta, 2}}}); | ||
933 | }, | ||
934 | [](Generate& generator) { | ||
935 | generator.setFlag(Generate::TreehouseLayout); | ||
936 | generator.generate(4, 4, | ||
937 | {{{Decoration::Star | Decoration::Color::Magenta, 4}, | ||
938 | {Decoration::Dot_Intersection, 25}}}); | ||
939 | }, | ||
940 | [](Generate& generator) { | ||
941 | generator.setSymmetry(Panel::Symmetry::FlipNegXY); | ||
942 | generator.generate(7, 7, | ||
943 | {{{Decoration::Gap, 10}, | ||
944 | {Decoration::Dot_Intersection, 8}, | ||
945 | {Decoration::Start, 2}, | ||
946 | {Decoration::Exit, 1}}}); | ||
947 | }, | ||
948 | [](Generate& generator) { | ||
949 | generator.setGridSize(7, 7); | ||
950 | generator.setSymmetry(Panel::Symmetry::ParallelV); | ||
951 | generator.generate(7, 7, | ||
952 | {{{Decoration::Gap, 12}, | ||
953 | {Decoration::Dot_Intersection, 10}, | ||
954 | {Decoration::Start, 2}, | ||
955 | {Decoration::Exit, 1}}}); | ||
956 | }, | ||
957 | [](Generate& generator) { | ||
958 | generator.setGridSize(7, 7); | ||
959 | generator.setSymmetry(Panel::Symmetry::ParallelHFlip); | ||
960 | generator.generate(7, 7, | ||
961 | {{{Decoration::Gap, 12}, | ||
962 | {Decoration::Dot_Intersection, 10}, | ||
963 | {Decoration::Start, 2}, | ||
964 | {Decoration::Exit, 1}}}); | ||
965 | }, | ||
966 | [](Generate& generator) { | ||
967 | generator.setFlag(Generate::StartEdgeOnly); | ||
968 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
969 | generator.generate(4, 4, | ||
970 | {{{Decoration::Dot_Intersection, 25}, | ||
971 | {Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
972 | {Decoration::Poly | Decoration::Color::Yellow | | ||
973 | Decoration::Can_Rotate, | ||
974 | 2}, | ||
975 | {Decoration::Start, 1}}}); | ||
976 | }, | ||
977 | [](Generate& generator) { | ||
978 | generator.setFlag(Generate::RegularStartEnd); | ||
979 | generator.setSymmetry(Panel::Vertical); | ||
980 | generator.generate( | ||
981 | 7, 7, {{{Decoration::Poly | Decoration::Color::Yellow, 5}}}); | ||
982 | }, | ||
983 | [](Generate& generator) { | ||
984 | generator.setFlag(Generate::TreehouseLayout); | ||
985 | generator.generate( | ||
986 | 4, 4, | ||
987 | {{{Decoration::Star | Decoration::Color::Black, 1}, | ||
988 | {Decoration::Star | Decoration::Color::White, 2}, | ||
989 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
990 | {Decoration::Stone | Decoration::Color::White, 1}, | ||
991 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Orange, | ||
992 | 1}, | ||
993 | {Decoration::Poly | Decoration::Orange, 1}}}); | ||
994 | }, | ||
995 | }; | ||
996 | 30 | ||
997 | Generate generator; | 31 | Generate generator; |
998 | 32 | ||
@@ -1006,913 +40,8 @@ Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | |||
1006 | } | 40 | } |
1007 | 41 | ||
1008 | Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { | 42 | Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { |
1009 | static std::vector<std::function<void(Generate&)>> generator_fns{ | 43 | const std::vector<std::function<void(Generate&)>>& generator_fns = |
1010 | [](Generate& generator) { | 44 | GetHardPuzzles(); |
1011 | generator.setFlag(Generate::StartEdgeOnly); | ||
1012 | generator.setSymmetry(Panel::Rotational); | ||
1013 | generator.generate( | ||
1014 | 6, 6, | ||
1015 | {{{Decoration::Triangle | Decoration::Color::Orange, 12}, | ||
1016 | {Decoration::Start, 1}, | ||
1017 | {Decoration::Exit, 1}}}); | ||
1018 | }, | ||
1019 | [](Generate& generator) { | ||
1020 | generator.setFlag(Generate::StartEdgeOnly); | ||
1021 | generator.setFlag(Generate::WriteInvisible); | ||
1022 | generator.setSymmetry(Panel::Rotational); | ||
1023 | generator.generate(7, 7, | ||
1024 | {{{Decoration::Dot | Decoration::Color::Blue, 4}, | ||
1025 | {Decoration::Dot | Decoration::Color::Yellow, 4}, | ||
1026 | {Decoration::Dot, 7}, | ||
1027 | {Decoration::Start, 1}, | ||
1028 | {Decoration::Exit, 1}}}); | ||
1029 | }, | ||
1030 | [](Generate& generator) { | ||
1031 | generator.setFlag(Generate::StartEdgeOnly); | ||
1032 | generator.setFlag(Generate::WriteInvisible); | ||
1033 | generator.setSymmetry(Panel::Rotational); | ||
1034 | generator.generate(7, 7, | ||
1035 | {{{Decoration::Stone | Decoration::Color::Black, 6}, | ||
1036 | {Decoration::Stone | Decoration::Color::White, 6}, | ||
1037 | {Decoration::Start, 1}, | ||
1038 | {Decoration::Exit, 1}}}); | ||
1039 | }, | ||
1040 | [](Generate& generator) { | ||
1041 | generator.setFlag(Generate::StartEdgeOnly); | ||
1042 | generator.setFlag(Generate::WriteInvisible); | ||
1043 | generator.setSymmetry(Panel::Rotational); | ||
1044 | generator.generate(7, 7, | ||
1045 | {{{Decoration::Star | Decoration::Color::Orange, 6}, | ||
1046 | {Decoration::Star | Decoration::Color::Green, 6}, | ||
1047 | {Decoration::Start, 1}, | ||
1048 | {Decoration::Exit, 1}}}); | ||
1049 | }, | ||
1050 | [](Generate& generator) { | ||
1051 | generator.setFlag(Generate::StartEdgeOnly); | ||
1052 | generator.setFlag(Generate::WriteInvisible); | ||
1053 | generator.setFlag(Generate::RequireCombineShapes); | ||
1054 | generator.setSymmetry(Panel::Rotational); | ||
1055 | generator.generate(5, 5, | ||
1056 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1057 | {Decoration::Start, 1}, | ||
1058 | {Decoration::Exit, 1}}}); | ||
1059 | }, | ||
1060 | [](Generate& generator) { | ||
1061 | generator.setFlag(Generate::StartEdgeOnly); | ||
1062 | generator.setFlag(Generate::WriteInvisible); | ||
1063 | generator.setSymmetry(Panel::Rotational); | ||
1064 | generator.generate( | ||
1065 | 7, 7, | ||
1066 | {{{Decoration::Dot | Decoration::Color::Blue, 2}, | ||
1067 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1068 | {Decoration::Dot, 8}, | ||
1069 | {Decoration::Eraser | Decoration::Color::Purple, 1}, | ||
1070 | {Decoration::Start, 1}, | ||
1071 | {Decoration::Exit, 1}}}); | ||
1072 | }, | ||
1073 | [](Generate& generator) { | ||
1074 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
1075 | generator.setSymbol(Decoration::Exit, 0, 4 * 4); | ||
1076 | generator.setSymbol(Decoration::Exit, 4 * 4, 0); | ||
1077 | generator.setSymbol(Decoration::Exit, 4 * 4, 4 * 4); | ||
1078 | generator.generate(8, 8, | ||
1079 | {{{Decoration::Stone | Decoration::Color::White, 10}, | ||
1080 | {Decoration::Stone | Decoration::Color::Black, 10}, | ||
1081 | {Decoration::Dot_Intersection, 81}, | ||
1082 | {Decoration::Start, 8}}}); | ||
1083 | }, | ||
1084 | [](Generate& generator) { | ||
1085 | generator.setFlag(Generate::RegularStartEnd); | ||
1086 | generator.generate( | ||
1087 | 6, 6, | ||
1088 | {{{Decoration::Dot_Intersection, 49}, | ||
1089 | {Decoration::Poly | Decoration::Color::Orange, 1}, | ||
1090 | {Decoration::Poly | Decoration::Color::Blue, 1}, | ||
1091 | {Decoration::Poly | Decoration::Negative | | ||
1092 | Decoration::Color::Blue, | ||
1093 | 2}, | ||
1094 | {Decoration::Poly | Decoration::Negative | | ||
1095 | Decoration::Color::Orange, | ||
1096 | 1}, | ||
1097 | {Decoration::Star | Decoration::Color::Orange, 4}, | ||
1098 | {Decoration::Star | Decoration::Color::Blue, 3}, | ||
1099 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
1100 | {Decoration::Triangle | Decoration::Color::Blue, 1}, | ||
1101 | {Decoration::Stone | Decoration::Color::Orange, 1}, | ||
1102 | {Decoration::Stone | Decoration::Color::Blue, 2}, | ||
1103 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1104 | }, | ||
1105 | [](Generate& generator) { | ||
1106 | generator.setFlag(Generate::RegularStartEnd); | ||
1107 | generator.setSymmetry(Panel::Rotational); | ||
1108 | generator.generate( | ||
1109 | 7, 7, {{{Decoration::Poly | Decoration::Color::Yellow, 5}}}); | ||
1110 | }, | ||
1111 | [](Generate& generator) { | ||
1112 | generator.setFlag(Generate::RegularStartEnd); | ||
1113 | generator.generate( | ||
1114 | 5, 5, | ||
1115 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1116 | {Decoration::Poly | Decoration::Color::Yellow | | ||
1117 | Decoration::Can_Rotate, | ||
1118 | 1}, | ||
1119 | {Decoration::Stone | Decoration::Color::Black, 5}, | ||
1120 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
1121 | }, | ||
1122 | [](Generate& generator) { | ||
1123 | generator.setFlag(Generate::RegularStartEnd); | ||
1124 | generator.setFlag(Generate::BigShapes); | ||
1125 | generator.generate( | ||
1126 | 5, 5, | ||
1127 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
1128 | Decoration::Can_Rotate, | ||
1129 | 2}, | ||
1130 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1131 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
1132 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
1133 | }, | ||
1134 | [](Generate& generator) { | ||
1135 | generator.setFlag(Generate::StartEdgeOnly); | ||
1136 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
1137 | generator.generate(5, 5, | ||
1138 | {{{Decoration::Dot_Intersection, 36}, | ||
1139 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1140 | {Decoration::Start, 1}}}); | ||
1141 | }, | ||
1142 | [](Generate& generator) { | ||
1143 | generator.setFlag(Generate::RegularStartEnd); | ||
1144 | generator.setFlag(Generate::BigShapes); | ||
1145 | generator.setFlag(Generate::RequireCancelShapes); | ||
1146 | generator.generate(5, 5, | ||
1147 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1148 | {Decoration::Poly | Decoration::Negative | | ||
1149 | Decoration::Color::Blue, | ||
1150 | 3}}}); | ||
1151 | }, | ||
1152 | [](Generate& generator) { | ||
1153 | generator.setFlag(Generate::RegularStartEnd); | ||
1154 | generator.generate( | ||
1155 | 5, 6, | ||
1156 | {{{Decoration::Dot_Intersection, 42}, | ||
1157 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1158 | {Decoration::Poly | Decoration::Color::Yellow | | ||
1159 | Decoration::Can_Rotate, | ||
1160 | 1}, | ||
1161 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1162 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1163 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
1164 | }, | ||
1165 | [](Generate& generator) { | ||
1166 | generator.setFlag(Generate::RegularStartEnd); | ||
1167 | generator.generate( | ||
1168 | 5, 5, | ||
1169 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1170 | {Decoration::Poly | Decoration::Negative | | ||
1171 | Decoration::Color::Blue, | ||
1172 | 1}, | ||
1173 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
1174 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
1175 | }, | ||
1176 | [](Generate& generator) { | ||
1177 | generator.setFlag(Generate::RegularStartEnd); | ||
1178 | generator.generate( | ||
1179 | 5, 5, | ||
1180 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1181 | {Decoration::Poly | Decoration::Negative | | ||
1182 | Decoration::Color::Blue, | ||
1183 | 2}, | ||
1184 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
1185 | }, | ||
1186 | [](Generate& generator) { | ||
1187 | generator.setFlag(Generate::RegularStartEnd); | ||
1188 | generator.generate( | ||
1189 | 5, 5, | ||
1190 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1191 | {Decoration::Poly | Decoration::Negative | | ||
1192 | Decoration::Color::Blue, | ||
1193 | 1}, | ||
1194 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1195 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1196 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
1197 | }, | ||
1198 | [](Generate& generator) { | ||
1199 | generator.setFlag(Generate::RegularStartEnd); | ||
1200 | generator.generate( | ||
1201 | 5, 5, | ||
1202 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1203 | {Decoration::Poly | Decoration::Negative | | ||
1204 | Decoration::Color::Blue, | ||
1205 | 2}, | ||
1206 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1207 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1208 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
1209 | }, | ||
1210 | [](Generate& generator) { | ||
1211 | generator.setFlag(Generate::DisconnectShapes); | ||
1212 | generator.setFlag(Generate::BigShapes); | ||
1213 | generator.setSymbol(Decoration::Start, 0, 5 * 2); | ||
1214 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
1215 | generator.generate( | ||
1216 | 5, 5, | ||
1217 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1218 | {Decoration::Poly | Decoration::Negative | | ||
1219 | Decoration::Color::Blue, | ||
1220 | 1}, | ||
1221 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1222 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1223 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
1224 | }, | ||
1225 | [](Generate& generator) { | ||
1226 | generator.setFlag(Generate::BigShapes); | ||
1227 | generator.setSymbol(Decoration::Exit, 5 * 2, 0); | ||
1228 | generator.generate(5, 5, | ||
1229 | {{{Decoration::Dot_Intersection, 36}, | ||
1230 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1231 | {Decoration::Poly | Decoration::Negative | | ||
1232 | Decoration::Color::Blue, | ||
1233 | 1}, | ||
1234 | {Decoration::Start, 1}}}); | ||
1235 | }, | ||
1236 | [](Generate& generator) { | ||
1237 | generator.setFlag(Generate::BigShapes); | ||
1238 | generator.setSymbol(Decoration::Exit, 5 * 2, 0); | ||
1239 | generator.generate(5, 5, | ||
1240 | {{{Decoration::Dot_Intersection, 36}, | ||
1241 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1242 | {Decoration::Poly | Decoration::Negative | | ||
1243 | Decoration::Color::Blue, | ||
1244 | 2}, | ||
1245 | {Decoration::Start, 1}}}); | ||
1246 | }, | ||
1247 | [](Generate& generator) { | ||
1248 | generator.setFlag(Generate::TreehouseLayout); | ||
1249 | generator.generate( | ||
1250 | 5, 5, | ||
1251 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
1252 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
1253 | }, | ||
1254 | [](Generate& generator) { | ||
1255 | generator.setFlag(Generate::TreehouseLayout); | ||
1256 | generator.generate( | ||
1257 | 5, 5, | ||
1258 | {{{Decoration::Star | Decoration::Color::Orange, 6}, | ||
1259 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
1260 | }, | ||
1261 | [](Generate& generator) { | ||
1262 | generator.setFlag(Generate::RegularStartEnd); | ||
1263 | generator.generate( | ||
1264 | 5, 5, | ||
1265 | {{{Decoration::Star | Decoration::Color::Orange, 5}, | ||
1266 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
1267 | {Decoration::Stone | Decoration::Color::Orange, 3}}}); | ||
1268 | }, | ||
1269 | [](Generate& generator) { | ||
1270 | generator.setFlag(Generate::TreehouseLayout); | ||
1271 | generator.generate(5, 5, | ||
1272 | {{{Decoration::Poly | Decoration::Color::Orange, 3}, | ||
1273 | {Decoration::Poly | Decoration::Negative | | ||
1274 | Decoration::Color::Blue, | ||
1275 | 1}, | ||
1276 | {Decoration::Star | Decoration::Color::Orange, 5}, | ||
1277 | {Decoration::Star | Decoration::Color::Blue, 3}}}); | ||
1278 | }, | ||
1279 | [](Generate& generator) { | ||
1280 | generator.setFlag(Generate::TreehouseLayout); | ||
1281 | generator.generate(5, 5, | ||
1282 | {{{Decoration::Poly | Decoration::Color::Orange, 3}, | ||
1283 | {Decoration::Poly | Decoration::Negative | | ||
1284 | Decoration::Color::Blue, | ||
1285 | 2}, | ||
1286 | {Decoration::Star | Decoration::Color::Orange, 5}, | ||
1287 | {Decoration::Star | Decoration::Color::Blue, 3}}}); | ||
1288 | }, | ||
1289 | [](Generate& generator) { | ||
1290 | generator.setFlag(Generate::TreehouseLayout); | ||
1291 | generator.generate( | ||
1292 | 5, 5, | ||
1293 | {{{Decoration::Poly | Decoration::Color::Orange, 1}, | ||
1294 | {Decoration::Poly | Decoration::Color::Magenta, 2}, | ||
1295 | {Decoration::Poly | Decoration::Negative | | ||
1296 | Decoration::Color::Orange, | ||
1297 | 2}, | ||
1298 | {Decoration::Poly | Decoration::Negative | | ||
1299 | Decoration::Color::Blue, | ||
1300 | 2}, | ||
1301 | {Decoration::Star | Decoration::Color::Orange, 3}, | ||
1302 | {Decoration::Star | Decoration::Color::Blue, 3}, | ||
1303 | {Decoration::Star | Decoration::Color::Magenta, 3}}}); | ||
1304 | }, | ||
1305 | [](Generate& generator) { | ||
1306 | generator.setFlag(Generate::TreehouseLayout); | ||
1307 | generator.generate( | ||
1308 | 5, 5, | ||
1309 | {{{Decoration::Poly | Decoration::Color::Magenta, 2}, | ||
1310 | {Decoration::Poly | Decoration::Negative | | ||
1311 | Decoration::Color::Blue, | ||
1312 | 2}, | ||
1313 | {Decoration::Star | Decoration::Color::Magenta, 3}, | ||
1314 | {Decoration::Star | Decoration::Color::Blue, 3}, | ||
1315 | {Decoration::Triangle | Decoration::Color::Magenta, 2}, | ||
1316 | {Decoration::Triangle | Decoration::Color::Blue, 2}}}); | ||
1317 | }, | ||
1318 | [](Generate& generator) { | ||
1319 | generator.setFlag(Generate::TreehouseLayout); | ||
1320 | generator.generate( | ||
1321 | 5, 5, | ||
1322 | {{{Decoration::Poly | Decoration::Color::Orange, 1}, | ||
1323 | {Decoration::Poly | Decoration::Color::Blue, 1}, | ||
1324 | {Decoration::Poly | Decoration::Color::Green, 1}, | ||
1325 | {Decoration::Poly | Decoration::Negative | | ||
1326 | Decoration::Color::Blue, | ||
1327 | 1}, | ||
1328 | {Decoration::Poly | Decoration::Negative | | ||
1329 | Decoration::Color::Magenta, | ||
1330 | 2}, | ||
1331 | {Decoration::Star | Decoration::Color::Green, 2}, | ||
1332 | {Decoration::Star | Decoration::Color::Magenta, 1}, | ||
1333 | {Decoration::Star | Decoration::Color::Orange, 1}, | ||
1334 | {Decoration::Star | Decoration::Color::Blue, 2}, | ||
1335 | {Decoration::Triangle | Decoration::Color::Magenta, 2}, | ||
1336 | {Decoration::Triangle | Decoration::Color::Orange, 1}, | ||
1337 | {Decoration::Triangle | Decoration::Color::Green, 2}}}); | ||
1338 | }, | ||
1339 | [](Generate& generator) { | ||
1340 | generator.setFlag(Generate::TreehouseLayout); | ||
1341 | generator.generate( | ||
1342 | 5, 5, | ||
1343 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
1344 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
1345 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
1346 | {Decoration::Triangle | Decoration::Color::Magenta, 2}}}); | ||
1347 | }, | ||
1348 | [](Generate& generator) { | ||
1349 | generator.setFlag(Generate::TreehouseLayout); | ||
1350 | generator.generate( | ||
1351 | 5, 5, | ||
1352 | {{{Decoration::Star | Decoration::Color::Orange, 3}, | ||
1353 | {Decoration::Star | Decoration::Color::Magenta, 3}, | ||
1354 | {Decoration::Star | Decoration::Color::Green, 6}, | ||
1355 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
1356 | {Decoration::Triangle | Decoration::Color::Magenta, 2}}}); | ||
1357 | }, | ||
1358 | [](Generate& generator) { | ||
1359 | generator.setFlag(Generate::TreehouseLayout); | ||
1360 | generator.generate( | ||
1361 | 5, 5, | ||
1362 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
1363 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
1364 | {Decoration::Star | Decoration::Color::Green, 6}, | ||
1365 | {Decoration::Triangle | Decoration::Color::Orange, 1}, | ||
1366 | {Decoration::Triangle | Decoration::Color::Magenta, 1}}}); | ||
1367 | }, | ||
1368 | [](Generate& generator) { | ||
1369 | generator.setFlag(Generate::TreehouseLayout); | ||
1370 | generator.generate( | ||
1371 | 5, 5, | ||
1372 | {{{Decoration::Star | Decoration::Color::Orange, 2}, | ||
1373 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
1374 | {Decoration::Star | Decoration::Color::White, 2}, | ||
1375 | {Decoration::Star | Decoration::Color::Green, 2}, | ||
1376 | {Decoration::Star | Decoration::Color::Black, 2}, | ||
1377 | {Decoration::Triangle | Decoration::Color::Orange, 1}, | ||
1378 | {Decoration::Triangle | Decoration::Color::Magenta, 1}, | ||
1379 | {Decoration::Triangle | Decoration::Color::White, 1}, | ||
1380 | {Decoration::Triangle | Decoration::Color::Green, 1}, | ||
1381 | {Decoration::Triangle | Decoration::Color::Black, 1}}}); | ||
1382 | }, | ||
1383 | [](Generate& generator) { | ||
1384 | generator.setFlag(Generate::TreehouseLayout); | ||
1385 | generator.generate(5, 5, | ||
1386 | {{{Decoration::Star | Decoration::Color::Magenta, 4}, | ||
1387 | {Decoration::Star | Decoration::Color::Orange, 6}, | ||
1388 | {Decoration::Dot_Intersection, 36}}}); | ||
1389 | }, | ||
1390 | [](Generate& generator) { | ||
1391 | generator.setGridSize(7, 7); | ||
1392 | generator.setFlag(Generate::RequireCombineShapes); | ||
1393 | generator.setSymmetry(Panel::ParallelV); | ||
1394 | generator.setSymbol(Decoration::Start, 0, 14); | ||
1395 | generator.setSymbol(Decoration::Start, 8, 14); | ||
1396 | generator.setSymbol(Decoration::Exit, 6, 0); | ||
1397 | generator.setSymbol(Decoration::Exit, 14, 0); | ||
1398 | generator.generate( | ||
1399 | 7, 7, {{{Decoration::Poly | Decoration::Color::Orange, 5}}}); | ||
1400 | }, | ||
1401 | [](Generate& generator) { | ||
1402 | generator.setGridSize(7, 7); | ||
1403 | generator.setFlag(Generate::RequireCombineShapes); | ||
1404 | generator.setSymmetry(Panel::ParallelHFlip); | ||
1405 | generator.setSymbol(Decoration::Start, 0, 14); | ||
1406 | generator.setSymbol(Decoration::Start, 14, 6); | ||
1407 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
1408 | generator.setSymbol(Decoration::Exit, 14, 8); | ||
1409 | generator.generate( | ||
1410 | 7, 7, {{{Decoration::Poly | Decoration::Color::Orange, 5}}}); | ||
1411 | }, | ||
1412 | [](Generate& generator) { | ||
1413 | generator.setGridSize(7, 7); | ||
1414 | generator.setFlag(Generate::RequireCombineShapes); | ||
1415 | generator.setSymmetry(Panel::ParallelVFlip); | ||
1416 | generator.setSymbol(Decoration::Start, 0, 14); | ||
1417 | generator.setSymbol(Decoration::Start, 8, 0); | ||
1418 | generator.setSymbol(Decoration::Exit, 6, 0); | ||
1419 | generator.setSymbol(Decoration::Exit, 14, 14); | ||
1420 | generator.generate( | ||
1421 | 7, 7, {{{Decoration::Poly | Decoration::Color::Orange, 5}}}); | ||
1422 | }, | ||
1423 | [](Generate& generator) { | ||
1424 | generator.setSymmetry(Panel::Symmetry::RotateLeft); | ||
1425 | generator.setSymbol(Decoration::Start, 4, 4); | ||
1426 | generator.setSymbol(Decoration::Start, 10, 4); | ||
1427 | generator.setSymbol(Decoration::Start, 4, 10); | ||
1428 | generator.setSymbol(Decoration::Start, 10, 10); | ||
1429 | generator.setSymbol(Decoration::Exit, 4, 0); | ||
1430 | generator.setSymbol(Decoration::Exit, 14, 4); | ||
1431 | generator.setSymbol(Decoration::Exit, 0, 10); | ||
1432 | generator.setSymbol(Decoration::Exit, 10, 14); | ||
1433 | generator.generate( | ||
1434 | 7, 7, | ||
1435 | {{{Decoration::Triangle4 | Decoration::Color::Orange, 1}, | ||
1436 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
1437 | }, | ||
1438 | [](Generate& generator) { | ||
1439 | generator.setFlag(Generate::WriteInvisible); | ||
1440 | generator.setFlag(Generate::StartEdgeOnly); | ||
1441 | generator.setSymmetry(Panel::Symmetry::FlipXY); | ||
1442 | generator.setSymbol(Decoration::Exit, 0, 8); | ||
1443 | generator.setSymbol(Decoration::Exit, 8, 0); | ||
1444 | generator.generate(7, 7, | ||
1445 | {{{Decoration::Dot | Decoration::Color::Blue, 2}, | ||
1446 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1447 | {Decoration::Dot, 8}, | ||
1448 | {Decoration::Eraser | Decoration::Color::White, 1}, | ||
1449 | {Decoration::Start, 1}}}); | ||
1450 | }, | ||
1451 | [](Generate& generator) { | ||
1452 | generator.setSymmetry(Panel::Symmetry::FlipXY); | ||
1453 | generator.setSymbol(Decoration::Start, 0, 16); | ||
1454 | generator.setSymbol(Decoration::Start, 16, 0); | ||
1455 | generator.setSymbol(Decoration::Exit, 8, 0); | ||
1456 | generator.setSymbol(Decoration::Exit, 8, 16); | ||
1457 | generator.setSymbol(Decoration::Exit, 0, 8); | ||
1458 | generator.setSymbol(Decoration::Exit, 16, 8); | ||
1459 | generator.generate( | ||
1460 | 8, 8, | ||
1461 | {{{Decoration::Triangle | Decoration::Color::Cyan, 3}, | ||
1462 | {Decoration::Triangle | Decoration::Color::Yellow, 2}, | ||
1463 | {Decoration::Star | Decoration::Color::Cyan, 3}, | ||
1464 | {Decoration::Star | Decoration::Color::Yellow, 3}, | ||
1465 | {Decoration::Stone | Decoration::Color::Cyan, 2}, | ||
1466 | {Decoration::Stone | Decoration::Color::Yellow, 3}}}); | ||
1467 | }, | ||
1468 | [](Generate& generator) { | ||
1469 | generator.setGridSize(7, 7); | ||
1470 | generator.setSymmetry((Random::rand() % 2) == 0 | ||
1471 | ? Panel::Symmetry::Vertical | ||
1472 | : Panel::Symmetry::Horizontal); | ||
1473 | generator.setFlag(Generate::WriteInvisible); | ||
1474 | generator.setFlag(Generate::DisableDotIntersection); | ||
1475 | MakeSecretSymmetryGrid(generator); | ||
1476 | generator.generate( | ||
1477 | 7, 7, | ||
1478 | {{{Decoration::Dot | Decoration::Color::Cyan, 2}, | ||
1479 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1480 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
1481 | }, | ||
1482 | [](Generate& generator) { | ||
1483 | generator.setGridSize(7, 7); | ||
1484 | generator.setSymmetry((Random::rand() % 2) == 0 | ||
1485 | ? Panel::Symmetry::ParallelH | ||
1486 | : Panel::Symmetry::ParallelV); | ||
1487 | generator.setFlag(Generate::WriteInvisible); | ||
1488 | generator.setFlag(Generate::DisableDotIntersection); | ||
1489 | MakeSecretSymmetryGrid(generator); | ||
1490 | generator.generate( | ||
1491 | 7, 7, | ||
1492 | {{{Decoration::Dot | Decoration::Color::Cyan, 2}, | ||
1493 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1494 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
1495 | }, | ||
1496 | [](Generate& generator) { | ||
1497 | generator.setGridSize(7, 7); | ||
1498 | generator.setSymmetry(Panel::Symmetry::Rotational); | ||
1499 | generator.setFlag(Generate::WriteInvisible); | ||
1500 | generator.setFlag(Generate::DisableDotIntersection); | ||
1501 | MakeSecretSymmetryGrid(generator); | ||
1502 | generator.generate( | ||
1503 | 7, 7, | ||
1504 | {{{Decoration::Dot | Decoration::Color::Cyan, 2}, | ||
1505 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1506 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
1507 | }, | ||
1508 | [](Generate& generator) { | ||
1509 | generator.setGridSize(7, 7); | ||
1510 | generator.setSymmetry((Random::rand() % 2) == 0 | ||
1511 | ? Panel::Symmetry::ParallelHFlip | ||
1512 | : Panel::Symmetry::ParallelVFlip); | ||
1513 | generator.setFlag(Generate::WriteInvisible); | ||
1514 | generator.setFlag(Generate::DisableDotIntersection); | ||
1515 | MakeSecretSymmetryGrid(generator); | ||
1516 | generator.generate( | ||
1517 | 7, 7, | ||
1518 | {{{Decoration::Dot | Decoration::Color::Cyan, 2}, | ||
1519 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | ||
1520 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
1521 | }, | ||
1522 | [](Generate& generator) { | ||
1523 | generator.setFlag(Generate::RegularStartEnd); | ||
1524 | generator.generate( | ||
1525 | 4, 4, | ||
1526 | {{{Decoration::Triangle | Decoration::Color::Orange, 15}, | ||
1527 | {Decoration::Eraser | Decoration::Color::Purple, 1}}}); | ||
1528 | }, | ||
1529 | [](Generate& generator) { | ||
1530 | generator.setFlag(Generate::RegularStartEnd); | ||
1531 | generator.generate( | ||
1532 | 4, 4, | ||
1533 | {{{Decoration::Stone | Decoration::Color::White, 1}, | ||
1534 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1535 | {Decoration::Stone | Decoration::Color::Red, 2}, | ||
1536 | {Decoration::Star | Decoration::Color::White, 4}, | ||
1537 | {Decoration::Star | Decoration::Color::Black, 3}, | ||
1538 | {Decoration::Star | Decoration::Color::Red, 3}, | ||
1539 | {Decoration::Decoration::Eraser | Decoration::Color::Green, 1}}}); | ||
1540 | }, | ||
1541 | [](Generate& generator) { | ||
1542 | generator.setFlag(Generate::RegularStartEnd); | ||
1543 | generator.generate( | ||
1544 | 4, 4, | ||
1545 | {{{Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
1546 | {Decoration::Poly | Decoration::Color::Yellow | | ||
1547 | Decoration::Can_Rotate, | ||
1548 | 1}, | ||
1549 | {Decoration::Triangle | Decoration::Color::Orange, 3}}}); | ||
1550 | }, | ||
1551 | [](Generate& generator) { | ||
1552 | generator.setFlag(Generate::RegularStartEnd); | ||
1553 | generator.generate( | ||
1554 | 4, 4, | ||
1555 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1556 | {Decoration::Poly | Decoration::Color::Yellow | | ||
1557 | Decoration::Can_Rotate, | ||
1558 | 1}, | ||
1559 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
1560 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1561 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
1562 | }, | ||
1563 | [](Generate& generator) { | ||
1564 | generator.setSymbol(Decoration::Start, 4, 4); | ||
1565 | generator.setSymbol(Decoration::Exit, 8, 0); | ||
1566 | generator.generate(4, 4, | ||
1567 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
1568 | Decoration::Can_Rotate, | ||
1569 | 3}, | ||
1570 | {Decoration::Gap, 3}}}); | ||
1571 | }, | ||
1572 | [](Generate& generator) { | ||
1573 | generator.setSymbol(Decoration::Start, 4, 6); | ||
1574 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1575 | generator.generate(5, 5, | ||
1576 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
1577 | Decoration::Can_Rotate, | ||
1578 | 3}, | ||
1579 | {Decoration::Gap, 3}}}); | ||
1580 | }, | ||
1581 | [](Generate& generator) { | ||
1582 | generator.setFlag(Generate::DisconnectShapes); | ||
1583 | generator.setSymbol(Decoration::Start, 4, 6); | ||
1584 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1585 | generator.generate(5, 5, | ||
1586 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
1587 | Decoration::Can_Rotate, | ||
1588 | 3}}}); | ||
1589 | }, | ||
1590 | [](Generate& generator) { | ||
1591 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1592 | generator.generate(5, 5, | ||
1593 | {{{Decoration::Dot_Intersection, 36}, | ||
1594 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
1595 | {Decoration::Poly | Decoration::Color::Yellow | | ||
1596 | Decoration::Can_Rotate, | ||
1597 | 1}, | ||
1598 | {Decoration::Start, 1}}}); | ||
1599 | }, | ||
1600 | [](Generate& generator) { | ||
1601 | generator.setFlag(Generate::BigShapes); | ||
1602 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1603 | generator.generate(5, 5, | ||
1604 | {{{Decoration::Dot_Intersection, 36}, | ||
1605 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1606 | {Decoration::Start, 1}}}); | ||
1607 | }, | ||
1608 | [](Generate& generator) { | ||
1609 | generator.setFlag(Generate::DisconnectShapes); | ||
1610 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1611 | generator.generate(5, 5, | ||
1612 | {{{Decoration::Dot_Intersection, 36}, | ||
1613 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1614 | {Decoration::Start, 1}}}); | ||
1615 | }, | ||
1616 | [](Generate& generator) { | ||
1617 | generator.setFlag(Generate::TreehouseLayout); | ||
1618 | generator.generate( | ||
1619 | 4, 4, | ||
1620 | {{{Decoration::Triangle | Decoration::Color::Magenta, 4}, | ||
1621 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1622 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
1623 | {Decoration::Star | Decoration::Color::Black, 1}, | ||
1624 | {Decoration::Star | Decoration::Color::White, 1}}}); | ||
1625 | }, | ||
1626 | [](Generate& generator) { | ||
1627 | generator.setFlag(Generate::TreehouseLayout); | ||
1628 | generator.generate( | ||
1629 | 4, 4, | ||
1630 | {{{Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
1631 | {Decoration::Triangle | Decoration::Color::Magenta, 2}, | ||
1632 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
1633 | {Decoration::Star | Decoration::Color::Green, 2}, | ||
1634 | {Decoration::Stone | Decoration::Color::Orange, 2}, | ||
1635 | {Decoration::Stone | Decoration::Color::Green, 2}}}); | ||
1636 | }, | ||
1637 | [](Generate& generator) { | ||
1638 | generator.setFlag(Generate::TreehouseLayout); | ||
1639 | generator.generate( | ||
1640 | 5, 4, | ||
1641 | {{{Decoration::Triangle | Decoration::Color::Green, 3}, | ||
1642 | {Decoration::Triangle | Decoration::Color::Magenta, 2}, | ||
1643 | {Decoration::Star | Decoration::Color::Magenta, 3}, | ||
1644 | {Decoration::Star | Decoration::Color::Orange, 3}, | ||
1645 | {Decoration::Stone | Decoration::Color::Orange, 2}, | ||
1646 | {Decoration::Stone | Decoration::Color::Green, 2}}}); | ||
1647 | }, | ||
1648 | [](Generate& generator) { | ||
1649 | generator.setFlag(Generate::TreehouseLayout); | ||
1650 | generator.generate( | ||
1651 | 4, 4, | ||
1652 | {{{Decoration::Star | Decoration::Color::Black, 1}, | ||
1653 | {Decoration::Star | Decoration::Color::White, 2}, | ||
1654 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1655 | {Decoration::Stone | Decoration::Color::White, 1}, | ||
1656 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Black, | ||
1657 | 1}, | ||
1658 | {Decoration::Poly | Decoration::Black, 1}}}); | ||
1659 | }, | ||
1660 | [](Generate& generator) { | ||
1661 | generator.setFlag(Generate::TreehouseLayout); | ||
1662 | generator.generate( | ||
1663 | 4, 4, | ||
1664 | {{{Decoration::Star | Decoration::Color::Black, 1}, | ||
1665 | {Decoration::Star | Decoration::Color::White, 2}, | ||
1666 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1667 | {Decoration::Stone | Decoration::Color::White, 1}, | ||
1668 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Black, | ||
1669 | 1}, | ||
1670 | {Decoration::Poly | Decoration::White, 1}}}); | ||
1671 | }, | ||
1672 | [](Generate& generator) { | ||
1673 | generator.setFlag(Generate::TreehouseLayout); | ||
1674 | generator.generate( | ||
1675 | 5, 5, | ||
1676 | {{{Decoration::Star | Decoration::Color::Green, 2}, | ||
1677 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
1678 | {Decoration::Stone | Decoration::Color::Green, 2}, | ||
1679 | {Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
1680 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Green, | ||
1681 | 1}, | ||
1682 | {Decoration::Poly | Decoration::Green, 1}}}); | ||
1683 | }, | ||
1684 | [](Generate& generator) { | ||
1685 | generator.setFlag(Generate::TreehouseLayout); | ||
1686 | generator.setFlag(Generate::BigShapes); | ||
1687 | generator.generate( | ||
1688 | 5, 5, | ||
1689 | {{{Decoration::Star | Decoration::Color::Green, 3}, | ||
1690 | {Decoration::Star | Decoration::Color::Magenta, 4}, | ||
1691 | {Decoration::Stone | Decoration::Color::Green, 2}, | ||
1692 | {Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
1693 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Green, | ||
1694 | 1}, | ||
1695 | {Decoration::Poly | Decoration::Magenta, 1}}}); | ||
1696 | }, | ||
1697 | [](Generate& generator) { | ||
1698 | generator.setFlag(Generate::TreehouseLayout); | ||
1699 | generator.generate( | ||
1700 | 5, 5, | ||
1701 | {{{Decoration::Star | Decoration::Color::Black, 2}, | ||
1702 | {Decoration::Star | Decoration::Color::White, 3}, | ||
1703 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
1704 | {Decoration::Stone | Decoration::Color::White, 1}, | ||
1705 | {Decoration::Triangle | Decoration::Color::Black, 2}, | ||
1706 | {Decoration::Triangle | Decoration::Color::White, 1}, | ||
1707 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Black, | ||
1708 | 1}, | ||
1709 | {Decoration::Poly | Decoration::White, 1}}}); | ||
1710 | }, | ||
1711 | [](Generate& generator) { | ||
1712 | generator.setFlag(Generate::TreehouseLayout); | ||
1713 | generator.generate( | ||
1714 | 5, 5, | ||
1715 | {{{Decoration::Star | Decoration::Color::Black, 3}, | ||
1716 | {Decoration::Star | Decoration::Color::White, 3}, | ||
1717 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
1718 | {Decoration::Stone | Decoration::Color::White, 1}, | ||
1719 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::Black, | ||
1720 | 1}, | ||
1721 | {Decoration::Poly | Decoration::Can_Rotate | Decoration::White, | ||
1722 | 1}, | ||
1723 | {Decoration::Triangle | Decoration::Black, 1}, | ||
1724 | {Decoration::Triangle | Decoration::White, 1}}}); | ||
1725 | }, | ||
1726 | [](Generate& generator) { | ||
1727 | generator.setGridSize(5, 5); | ||
1728 | generator.setSymbol(Decoration::Start, 10, 10); | ||
1729 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
1730 | generator.generate( | ||
1731 | 5, 5, | ||
1732 | {{{Decoration::Star | Decoration::White, 3}, | ||
1733 | {Decoration::Star | Decoration::Black, 8}, | ||
1734 | {Decoration::Star | Decoration::Magenta, 6}, | ||
1735 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1736 | }, | ||
1737 | [](Generate& generator) { | ||
1738 | generator.setFlag(Generate::RegularStartEnd); | ||
1739 | generator.setFlag(Generate::DisconnectShapes); | ||
1740 | generator.generate( | ||
1741 | 4, 4, | ||
1742 | {{{Decoration::Poly | Decoration::Color::Yellow, 4}, | ||
1743 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1744 | }, | ||
1745 | [](Generate& generator) { | ||
1746 | generator.setFlag(Generate::RegularStartEnd); | ||
1747 | generator.generate( | ||
1748 | 4, 4, | ||
1749 | {{{Decoration::Poly | Decoration::Color::Yellow, 4}, | ||
1750 | {Decoration::Poly | Decoration::Negative | | ||
1751 | Decoration::Color::Blue, | ||
1752 | 1}, | ||
1753 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1754 | }, | ||
1755 | [](Generate& generator) { | ||
1756 | generator.setFlag(Generate::RegularStartEnd); | ||
1757 | generator.setFlag(Generate::DisconnectShapes); | ||
1758 | generator.generate( | ||
1759 | 4, 4, | ||
1760 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1761 | {Decoration::Poly | Decoration::Negative | | ||
1762 | Decoration::Color::Blue, | ||
1763 | 1}, | ||
1764 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1765 | }, | ||
1766 | [](Generate& generator) { | ||
1767 | generator.setFlag(Generate::RegularStartEnd); | ||
1768 | generator.generate(4, 4, | ||
1769 | {{{Decoration::Star | Decoration::Color::Green, 7}, | ||
1770 | {Decoration::Star | Decoration::Color::Orange, 5}, | ||
1771 | {Decoration::Eraser | Decoration::Green, 1}, | ||
1772 | {Decoration::Eraser | Decoration::Orange, 1}}}); | ||
1773 | }, | ||
1774 | [](Generate& generator) { | ||
1775 | generator.setFlag(Generate::RegularStartEnd); | ||
1776 | generator.generate(5, 5, | ||
1777 | {{{Decoration::Star | Decoration::Color::Magenta, 8}, | ||
1778 | {Decoration::Star | Decoration::Color::Orange, 6}, | ||
1779 | {Decoration::Star | Decoration::Color::Green, 4}, | ||
1780 | {Decoration::Eraser | Decoration::Magenta, 1}, | ||
1781 | {Decoration::Eraser | Decoration::Orange, 1}}}); | ||
1782 | }, | ||
1783 | [](Generate& generator) { | ||
1784 | generator.setFlag(Generate::RegularStartEnd); | ||
1785 | generator.generate( | ||
1786 | 4, 4, | ||
1787 | {{{Decoration::Poly | Decoration::Color::Green, 4}, | ||
1788 | {Decoration::Eraser | Decoration::Color::White, 2}}}); | ||
1789 | }, | ||
1790 | [](Generate& generator) { | ||
1791 | generator.setFlag(Generate::RegularStartEnd); | ||
1792 | generator.setFlag(Generate::DisconnectShapes); | ||
1793 | generator.generate( | ||
1794 | 4, 4, | ||
1795 | {{{Decoration::Poly | Decoration::Color::Green, 4}, | ||
1796 | {Decoration::Eraser | Decoration::Color::White, 2}}}); | ||
1797 | }, | ||
1798 | [](Generate& generator) { | ||
1799 | generator.setFlag(Generate::RegularStartEnd); | ||
1800 | generator.generate( | ||
1801 | 4, 4, | ||
1802 | {{{Decoration::Poly | Decoration::Color::Green, 2}, | ||
1803 | {Decoration::Poly | Decoration::Color::Magenta, 1}, | ||
1804 | {Decoration::Star | Decoration::Color::Green, 2}, | ||
1805 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
1806 | {Decoration::Eraser | Decoration::Color::White, 2}}}); | ||
1807 | }, | ||
1808 | [](Generate& generator) { | ||
1809 | generator.setFlag(Generate::RegularStartEnd); | ||
1810 | generator.generate(6, 3, | ||
1811 | {{{Decoration::Star | Decoration::Color::Orange, 4}, | ||
1812 | {Decoration::Poly | Decoration::Color::Orange, 2}, | ||
1813 | {Decoration::Poly | Decoration::Negative | | ||
1814 | Decoration::Color::Magenta, | ||
1815 | 2}, | ||
1816 | {Decoration::Eraser | Decoration::White, 2}}}); | ||
1817 | }, | ||
1818 | [](Generate& generator) { | ||
1819 | generator.setFlag(Generate::RegularStartEnd); | ||
1820 | generator.generate(6, 3, | ||
1821 | {{{Decoration::Star | Decoration::Color::Magenta, 2}, | ||
1822 | {Decoration::Star | Decoration::Color::Orange, 3}, | ||
1823 | {Decoration::Poly | Decoration::Color::Orange, 2}, | ||
1824 | {Decoration::Poly | Decoration::Negative | | ||
1825 | Decoration::Color::Magenta, | ||
1826 | 2}, | ||
1827 | {Decoration::Eraser | Decoration::White, 2}}}); | ||
1828 | }, | ||
1829 | [](Generate& generator) { | ||
1830 | generator.setFlag(Generate::FalseParity); | ||
1831 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
1832 | generator.setSymbol(Decoration::Exit, 16, 0); | ||
1833 | generator.setSymbol(Decoration::Exit, 0, 16); | ||
1834 | generator.setSymbol(Decoration::Exit, 16, 16); | ||
1835 | generator.generate( | ||
1836 | 8, 8, | ||
1837 | {{{Decoration::Stone | Decoration::Color::White, 10}, | ||
1838 | {Decoration::Stone | Decoration::Color::Black, 10}, | ||
1839 | {Decoration::Dot_Intersection, 81}, | ||
1840 | {Decoration::Start, 7}, | ||
1841 | {Decoration::Eraser | Decoration::Color::Purple, 1}}}); | ||
1842 | }, | ||
1843 | [](Generate& generator) { | ||
1844 | generator.setFlag(Generate::TreehouseLayout); | ||
1845 | generator.generate( | ||
1846 | 4, 5, | ||
1847 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
1848 | {Decoration::Triangle | Decoration::Color::Orange, 5}, | ||
1849 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1850 | }, | ||
1851 | [](Generate& generator) { | ||
1852 | generator.setFlag(Generate::RegularStartEnd); | ||
1853 | generator.generate( | ||
1854 | 5, 5, | ||
1855 | {{{Decoration::Poly | Decoration::Color::Yellow, 7}, | ||
1856 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
1857 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
1858 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
1859 | }, | ||
1860 | [](Generate& generator) { | ||
1861 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1862 | generator.generate( | ||
1863 | 5, 5, | ||
1864 | {{{Decoration::Dot_Intersection, 36}, | ||
1865 | {Decoration::Triangle1 | Decoration::Color::Orange, 4}, | ||
1866 | {Decoration::Start, 1}}}); | ||
1867 | }, | ||
1868 | [](Generate& generator) { | ||
1869 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1870 | generator.generate( | ||
1871 | 5, 5, | ||
1872 | {{{Decoration::Dot_Intersection, 36}, | ||
1873 | {Decoration::Triangle3 | Decoration::Color::Orange, 6}, | ||
1874 | {Decoration::Start, 1}}}); | ||
1875 | }, | ||
1876 | [](Generate& generator) { | ||
1877 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1878 | generator.generate( | ||
1879 | 5, 5, | ||
1880 | {{{Decoration::Dot_Intersection, 36}, | ||
1881 | {Decoration::Triangle2 | Decoration::Color::Orange, 10}, | ||
1882 | {Decoration::Start, 1}}}); | ||
1883 | }, | ||
1884 | [](Generate& generator) { | ||
1885 | generator.setSymbol(Decoration::Exit, 10, 0); | ||
1886 | generator.generate( | ||
1887 | 5, 5, | ||
1888 | {{{Decoration::Dot_Intersection, 36}, | ||
1889 | {Decoration::Triangle | Decoration::Color::Orange, 8}, | ||
1890 | {Decoration::Start, 1}}}); | ||
1891 | }, | ||
1892 | [](Generate& generator) { | ||
1893 | generator.setFlag(Generate::RegularStartEnd); | ||
1894 | generator.setFlag(Generate::FalseParity); | ||
1895 | generator.generate( | ||
1896 | 5, 5, | ||
1897 | {{{Decoration::Dot_Intersection, 36}, | ||
1898 | {Decoration::Triangle | Decoration::Color::Orange, 7}, | ||
1899 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
1900 | }, | ||
1901 | [](Generate& generator) { | ||
1902 | generator.setFlag(Generate::RegularStartEnd); | ||
1903 | generator.setFlag(Generate::SmallShapes); | ||
1904 | generator.generate( | ||
1905 | 5, 5, | ||
1906 | {{{Decoration::Poly | Decoration::Can_Rotate | | ||
1907 | Decoration::Color::Orange, | ||
1908 | 3}, | ||
1909 | {Decoration::Poly | Decoration::Can_Rotate | | ||
1910 | Decoration::Color::Magenta, | ||
1911 | 2}, | ||
1912 | {Decoration::Star | Decoration::Color::Orange, 4}, | ||
1913 | {Decoration::Star | Decoration::Color::Magenta, 5}}}); | ||
1914 | }, | ||
1915 | }; | ||
1916 | 45 | ||
1917 | Generate generator; | 46 | Generate generator; |
1918 | 47 | ||