about summary refs log tree commit diff stats
path: root/ext/wittle_generator/PuzzlesetMedium.cpp
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-01-14 19:35:34 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2025-01-14 19:35:34 -0500
commit0822404cf75fb6ad04faf55861faaf8330effa59 (patch)
tree3848f7a74b1433246beb16db9f90efb67df0c42a /ext/wittle_generator/PuzzlesetMedium.cpp
parentd00531cb6c36e061bf5b9a4361ea74ae473d6946 (diff)
downloadwittle-0822404cf75fb6ad04faf55861faaf8330effa59.tar.gz
wittle-0822404cf75fb6ad04faf55861faaf8330effa59.tar.bz2
wittle-0822404cf75fb6ad04faf55861faaf8330effa59.zip
Split puzzle generators into separate files
Diffstat (limited to 'ext/wittle_generator/PuzzlesetMedium.cpp')
-rw-r--r--ext/wittle_generator/PuzzlesetMedium.cpp596
1 files changed, 596 insertions, 0 deletions
diff --git a/ext/wittle_generator/PuzzlesetMedium.cpp b/ext/wittle_generator/PuzzlesetMedium.cpp new file mode 100644 index 0000000..afc7e45 --- /dev/null +++ b/ext/wittle_generator/PuzzlesetMedium.cpp
@@ -0,0 +1,596 @@
1#include "PuzzlesetMedium.h"
2
3#include "Generate.h"
4
5const std::vector<std::function<void(Generate&)>>& GetMediumPuzzles() {
6 static std::vector<std::function<void(Generate&)>> generator_fns{
7 [](Generate& generator) {
8 generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2);
9 generator.setSymbol(Decoration::Exit, 4 * 2, 0);
10 generator.generate(
11 4, 4,
12 {{{Decoration::Stone | Decoration::Color::White, 5},
13 {Decoration::Stone | Decoration::Color::Black, 5},
14 {Decoration::Dot, 4},
15 {Decoration::Eraser | Decoration::Color::Green, 1}}});
16 },
17 [](Generate& generator) {
18 generator.setSymbol(Decoration::Exit, 0, 0);
19 generator.setSymbol(Decoration::Exit, 7 * 2, 0);
20 generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2);
21 generator.generate(7, 7,
22 {{{Decoration::Stone | Decoration::Color::White, 10},
23 {Decoration::Stone | Decoration::Color::Black, 10},
24 {Decoration::Dot, 10},
25 {Decoration::Start, 4}}});
26 },
27 [](Generate& generator) {
28 generator.setSymbol(Decoration::Exit, 0, 0);
29 generator.setSymbol(Decoration::Exit, 7 * 2, 0);
30 generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2);
31 generator.generate(
32 7, 7,
33 {{{Decoration::Stone | Decoration::Color::White, 10},
34 {Decoration::Stone | Decoration::Color::Black, 10},
35 {Decoration::Dot, 10},
36 {Decoration::Eraser | Decoration::Color::Purple, 1},
37 {Decoration::Start, 3}}});
38 },
39 [](Generate& generator) {
40 generator.setFlag(Generate::RegularStartEnd);
41 generator.generate(5, 5,
42 {{{Decoration::Star | Decoration::White, 8},
43 {Decoration::Star | Decoration::Black, 6}}});
44 },
45 [](Generate& generator) {
46 generator.setFlag(Generate::RegularStartEnd);
47 generator.setFlag(Generate::DisconnectShapes);
48 generator.generate(
49 4, 4,
50 {{{Decoration::Poly | Decoration::Color::Yellow, 3},
51 {Decoration::Eraser | Decoration::Color::White, 1}}});
52 },
53 [](Generate& generator) {
54 generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2);
55 generator.setSymbol(Decoration::Exit, 4 * 2, 0);
56 generator.generate(
57 4, 4,
58 {{{Decoration::Dot_Intersection, 25},
59 {Decoration::Stone | Decoration::Color::Black, 2},
60 {Decoration::Stone | Decoration::Color::White, 2}}});
61 },
62 [](Generate& generator) {
63 generator.setFlag(Generate::RegularStartEnd);
64 generator.setFlag(Generate::RequireCancelShapes);
65 generator.generate(6, 6,
66 {{{Decoration::Dot_Intersection, 49},
67 {Decoration::Poly | Decoration::Color::Yellow, 1},
68 {Decoration::Poly | Decoration::Color::Yellow |
69 Decoration::Can_Rotate,
70 2},
71 {Decoration::Poly | Decoration::Color::Blue |
72 Decoration::Negative,
73 3}}});
74 },
75 [](Generate& generator) {
76 generator.setFlag(Generate::RegularStartEnd);
77 generator.generate(
78 4, 4,
79 {{{Decoration::Poly | Decoration::Color::Yellow, 3},
80 {Decoration::Eraser | Decoration::Color::White, 1}}});
81 },
82 [](Generate& generator) {
83 generator.setSymbol(Decoration::Start, 0, 3 * 2);
84 generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2);
85 generator.generate(6, 3,
86 {{{Decoration::Star | Decoration::Color::Magenta, 3},
87 {Decoration::Poly | Decoration::Color::Yellow, 3},
88 {Decoration::Eraser | Decoration::White, 1}}});
89 },
90 [](Generate& generator) {
91 generator.setSymbol(Decoration::Start, 0, 3 * 2);
92 generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2);
93 generator.generate(6, 3,
94 {{{Decoration::Star | Decoration::Color::Magenta, 5},
95 {Decoration::Poly | Decoration::Color::Yellow, 3},
96 {Decoration::Eraser | Decoration::White, 1}}});
97 },
98 [](Generate& generator) {
99 generator.setSymbol(Decoration::Start, 0, 3 * 2);
100 generator.setSymbol(Decoration::Exit, 6 * 2, 3 * 2);
101 generator.generate(6, 3,
102 {{{Decoration::Star | Decoration::Color::Magenta, 6},
103 {Decoration::Poly | Decoration::Color::Yellow, 3},
104 {Decoration::Eraser | Decoration::White, 1}}});
105 },
106 [](Generate& generator) {
107 generator.setSymbol(Decoration::Start, 0, 3 * 2);
108 generator.setSymbol(Decoration::Exit, 7 * 2, 3 * 2);
109 generator.generate(7, 3,
110 {{{Decoration::Star | Decoration::Color::Magenta, 5},
111 {Decoration::Poly | Decoration::Color::Yellow, 3},
112 {Decoration::Eraser | Decoration::White, 1}}});
113 },
114 [](Generate& generator) {
115 generator.setFlag(Generate::TreehouseLayout);
116 generator.generate(
117 4, 4,
118 {{{Decoration::Star | Decoration::Color::Orange, 6},
119 {Decoration::Star | Decoration::Color::Magenta, 6},
120 {Decoration::Star | Decoration::Color::Green, 4}}});
121 },
122 [](Generate& generator) {
123 generator.setFlag(Generate::TreehouseLayout);
124 generator.setFlag(Generate::FullGaps);
125 generator.generate(5, 5,
126 {{{Decoration::Star | Decoration::Color::Magenta, 8},
127 {Decoration::Dot_Intersection, 9},
128 {Decoration::Gap, 5}}});
129 },
130 [](Generate& generator) {
131 generator.setFlag(Generate::TreehouseLayout);
132 generator.generate(
133 4, 4,
134 {{{Decoration::Star | Decoration::Color::Black, 4},
135 {Decoration::Star | Decoration::Color::White, 4},
136 {Decoration::Stone | Decoration::Color::Black, 2},
137 {Decoration::Stone | Decoration::Color::White, 2}}});
138 },
139 [](Generate& generator) {
140 generator.setFlag(Generate::TreehouseLayout);
141 generator.generate(
142 5, 5,
143 {{{Decoration::Poly | Decoration::Color::Orange, 2},
144 {Decoration::Poly | Decoration::Color::Magenta, 1},
145 {Decoration::Star | Decoration::Color::Magenta, 3}}});
146 },
147 [](Generate& generator) {
148 generator.setFlag(Generate::TreehouseLayout);
149 generator.setFlag(Generate::RequireCombineShapes);
150 generator.generate(
151 5, 5,
152 {{{Decoration::Poly | Decoration::Color::Orange, 1},
153 {Decoration::Poly | Decoration::Can_Rotate |
154 Decoration::Color::Orange,
155 1},
156 {Decoration::Star | Decoration::Color::Magenta, 4},
157 {Decoration::Star | Decoration::Color::Green, 4}}});
158 },
159 [](Generate& generator) {
160 generator.setFlag(Generate::RegularStartEnd);
161 generator.generate(
162 4, 4,
163 {{{Decoration::Poly | Decoration::Color::Orange, 3},
164 {Decoration::Stone | Decoration::Color::White, 2},
165 {Decoration::Stone | Decoration::Color::Black, 2}}});
166 },
167 [](Generate& generator) {
168 generator.setFlag(Generate::RegularStartEnd);
169 generator.generate(4, 4,
170 {{{Decoration::Dot_Intersection, 25},
171 {Decoration::Poly | Decoration::Can_Rotate |
172 Decoration::Color::Yellow,
173 2}}});
174 },
175 [](Generate& generator) {
176 generator.setFlag(Generate::RegularStartEnd);
177 generator.setFlag(Generate::SmallShapes);
178 generator.generate(
179 5, 5,
180 {{{Decoration::Poly | Decoration::Can_Rotate |
181 Decoration::Color::Yellow,
182 4},
183 {Decoration::Star | Decoration::Color::Orange, 6}}});
184 },
185 [](Generate& generator) {
186 generator.setFlag(Generate::RegularStartEnd);
187 generator.generate(5, 5,
188 {{{Decoration::Poly | Decoration::Color::Yellow, 3},
189 {Decoration::Gap, 5}}});
190 },
191 [](Generate& generator) {
192 generator.setFlag(Generate::RegularStartEnd);
193 generator.generate(
194 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 4}}});
195 },
196 [](Generate& generator) {
197 generator.setFlag(Generate::RegularStartEnd);
198 generator.setFlag(Generate::DisconnectShapes);
199 generator.generate(
200 4, 4, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}});
201 },
202 [](Generate& generator) {
203 generator.setFlag(Generate::RegularStartEnd);
204 generator.generate(5, 5,
205 {{{Decoration::Poly | Decoration::Can_Rotate |
206 Decoration::Color::Yellow,
207 2},
208 {Decoration::Poly | Decoration::Color::Yellow, 1},
209 {Decoration::Gap, 2}}});
210 },
211 [](Generate& generator) {
212 generator.setFlag(Generate::RegularStartEnd);
213 generator.setFlag(Generate::BigShapes);
214 generator.generate(5, 5,
215 {{{Decoration::Poly | Decoration::Can_Rotate |
216 Decoration::Color::Yellow,
217 3}}});
218 },
219 [](Generate& generator) {
220 generator.setFlag(Generate::RegularStartEnd);
221 generator.generate(
222 5, 6, {{{Decoration::Poly | Decoration::Color::Yellow, 5}}});
223 },
224 [](Generate& generator) {
225 generator.setFlag(Generate::RegularStartEnd);
226 generator.setFlag(Generate::BigShapes);
227 generator.generate(4, 4,
228 {{{Decoration::Poly | Decoration::Color::Yellow, 2},
229 {Decoration::Poly | Decoration::Negative |
230 Decoration::Color::Blue,
231 2}}});
232 },
233 [](Generate& generator) {
234 generator.setFlag(Generate::RegularStartEnd);
235 generator.generate(4, 4,
236 {{{Decoration::Poly | Decoration::Color::Yellow, 3},
237 {Decoration::Poly | Decoration::Negative |
238 Decoration::Color::Blue,
239 2}}});
240 },
241 [](Generate& generator) {
242 generator.setFlag(Generate::RegularStartEnd);
243 generator.generate(
244 4, 4, {{{Decoration::Triangle | Decoration::Color::Orange, 8}}});
245 },
246 [](Generate& generator) {
247 generator.setFlag(Generate::RegularStartEnd);
248 generator.setFlag(Generate::LongestPath);
249 generator.setFlag(Generate::FullGaps);
250 generator.generate(
251 6, 6,
252 {{{Decoration::Dot_Intersection, 12}, {Decoration::Gap, 18}}});
253 },
254 [](Generate& generator) {
255 generator.generate(5, 5,
256 {{{Decoration::Start, 8},
257 {Decoration::Exit, 1},
258 {Decoration::Dot_Intersection, 36}}});
259 },
260 [](Generate& generator) {
261 generator.setFlag(Generate::RegularStartEnd);
262 generator.setSymmetry(Panel::Horizontal);
263 generator.generate(
264 6, 6,
265 {{{Decoration::Triangle | Decoration::Color::Orange, 12},
266 {Decoration::Start, 1},
267 {Decoration::Exit, 1}}});
268 },
269 [](Generate& generator) {
270 generator.setFlag(Generate::RegularStartEnd);
271 generator.generate(
272 4, 4,
273 {{{Decoration::Dot, 4},
274 {Decoration::Stone | Decoration::Color::Black, 2},
275 {Decoration::Stone | Decoration::Color::White, 2},
276 {Decoration::Star | Decoration::Color::Black, 2},
277 {Decoration::Star | Decoration::Color::White, 2}}});
278 },
279 [](Generate& generator) {
280 generator.setFlag(Generate::RegularStartEnd);
281 generator.generate(
282 4, 4,
283 {{{Decoration::Dot, 4},
284 {Decoration::Stone | Decoration::Color::Black, 1},
285 {Decoration::Stone | Decoration::Color::White, 3},
286 {Decoration::Star | Decoration::Color::Black, 3},
287 {Decoration::Star | Decoration::Color::White, 1}}});
288 },
289 [](Generate& generator) {
290 generator.setFlag(Generate::RegularStartEnd);
291 generator.generate(
292 5, 5,
293 {{{Decoration::Poly | Decoration::Color::Yellow, 2},
294 {Decoration::Stone | Decoration::Color::Black, 4},
295 {Decoration::Stone | Decoration::Color::White, 4}}});
296 },
297 [](Generate& generator) {
298 generator.setFlag(Generate::RegularStartEnd);
299 generator.generate(
300 5, 5,
301 {{{Decoration::Stone | Decoration::Color::Cyan, 2},
302 {Decoration::Stone | Decoration::Color::Yellow, 2},
303 {Decoration::Star | Decoration::Color::Cyan, 3},
304 {Decoration::Star | Decoration::Color::Yellow, 3}}});
305 },
306 [](Generate& generator) {
307 generator.setFlag(Generate::RegularStartEnd);
308 generator.generate(
309 6, 6,
310 {{{Decoration::Stone | Decoration::Color::Cyan, 2},
311 {Decoration::Stone | Decoration::Color::Magenta, 2},
312 {Decoration::Star | Decoration::Color::Cyan, 2},
313 {Decoration::Star | Decoration::Color::Magenta, 1},
314 {Decoration::Poly | Decoration::Color::Cyan, 1},
315 {Decoration::Poly | Decoration::Color::Magenta, 1}}});
316 },
317 [](Generate& generator) {
318 generator.setFlag(Generate::RegularStartEnd);
319 generator.generate(
320 5, 5, {{{Decoration::Triangle | Decoration::Color::Orange, 10}}});
321 },
322 [](Generate& generator) {
323 generator.setFlag(Generate::RegularStartEnd);
324 generator.generate(
325 5, 3,
326 {{{Decoration::Stone | Decoration::Color::Black, 4},
327 {Decoration::Stone | Decoration::Color::White, 3},
328 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
329 },
330 [](Generate& generator) {
331 generator.setFlag(Generate::RegularStartEnd);
332 generator.generate(
333 4, 4,
334 {{{Decoration::Dot, 25},
335 {Decoration::Triangle | Decoration::Color::Orange, 6}}});
336 },
337 [](Generate& generator) {
338 generator.setFlag(Generate::RegularStartEnd);
339 generator.setFlag(Generate::RequireCombineShapes);
340 generator.setSymmetry(Panel::Rotational);
341 generator.generate(
342 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}});
343 },
344 [](Generate& generator) {
345 generator.setFlag(Generate::RegularStartEnd);
346 generator.setFlag(Generate::DisconnectShapes);
347 generator.setFlag(Generate::BigShapes);
348 generator.generate(
349 5, 5, {{{Decoration::Poly | Decoration::Color::Yellow, 3}}});
350 },
351 [](Generate& generator) {
352 generator.setFlag(Generate::RegularStartEnd);
353 generator.setFlag(Generate::DisconnectShapes);
354 generator.generate(4, 4,
355 {{{Decoration::Poly | Decoration::Color::Yellow, 3},
356 {Decoration::Poly | Decoration::Color::Blue |
357 Decoration::Negative,
358 1}}});
359 },
360 [](Generate& generator) {
361 generator.setFlag(Generate::RegularStartEnd);
362 generator.generate(
363 4, 4,
364 {{{Decoration::Stone | Decoration::Color::Black, 3},
365 {Decoration::Stone | Decoration::Color::White, 3},
366 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
367 },
368 [](Generate& generator) {
369 generator.setFlag(Generate::RegularStartEnd);
370 generator.generate(
371 4, 4,
372 {{{Decoration::Star | Decoration::Color::Black, 4},
373 {Decoration::Star | Decoration::Color::White, 4},
374 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
375 },
376 [](Generate& generator) {
377 generator.setFlag(Generate::RegularStartEnd);
378 generator.generate(
379 4, 4,
380 {{{Decoration::Star | Decoration::Color::Orange, 3},
381 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
382 },
383 [](Generate& generator) {
384 generator.setFlag(Generate::RegularStartEnd);
385 generator.generate(
386 4, 4,
387 {{{Decoration::Star | Decoration::Color::Black, 2},
388 {Decoration::Star | Decoration::Color::Orange, 2},
389 {Decoration::Stone | Decoration::Color::Black, 1},
390 {Decoration::Stone | Decoration::Color::Orange, 1},
391 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
392 },
393 [](Generate& generator) {
394 generator.setFlag(Generate::RegularStartEnd);
395 generator.setFlag(Generate::BigShapes);
396 generator.generate(
397 4, 4,
398 {{{Decoration::Poly | Decoration::Color::Yellow |
399 Decoration::Can_Rotate,
400 1},
401 {Decoration::Triangle | Decoration::Color::Orange, 3}}});
402 },
403 [](Generate& generator) {
404 generator.setFlag(Generate::RegularStartEnd);
405 generator.setFlag(Generate::BigShapes);
406 generator.generate(
407 5, 5,
408 {{{Decoration::Poly | Decoration::Color::Yellow |
409 Decoration::Can_Rotate,
410 1},
411 {Decoration::Triangle | Decoration::Color::Orange, 6}}});
412 },
413 [](Generate& generator) {
414 generator.setFlag(Generate::RegularStartEnd);
415 generator.setFlag(Generate::BigShapes);
416 generator.generate(
417 5, 5,
418 {{{Decoration::Poly | Decoration::Color::Yellow, 2},
419 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
420 },
421 [](Generate& generator) {
422 generator.setFlag(Generate::RegularStartEnd);
423 generator.generate(
424 4, 4,
425 {{{Decoration::Dot, 25},
426 {Decoration::Triangle | Decoration::Color::Orange, 4}}});
427 },
428 [](Generate& generator) {
429 generator.setSymbol(Decoration::Start, 0, 4 * 2);
430 generator.setSymbol(Decoration::Exit, 0, 0);
431 generator.generate(
432 4, 4,
433 {{{Decoration::Dot, 25},
434 {Decoration::Triangle | Decoration::Color::Orange, 5}}});
435 },
436 [](Generate& generator) {
437 generator.setSymbol(Decoration::Start, 0, 4 * 2);
438 generator.setSymbol(Decoration::Exit, 4 * 2, 4 * 2);
439 generator.generate(
440 4, 4,
441 {{{Decoration::Dot, 25},
442 {Decoration::Triangle | Decoration::Color::Orange, 5}}});
443 },
444 [](Generate& generator) {
445 generator.setFlag(Generate::RegularStartEnd);
446 generator.generate(
447 4, 4,
448 {{{Decoration::Dot, 25},
449 {Decoration::Triangle | Decoration::Color::Orange, 6}}});
450 },
451 [](Generate& generator) {
452 generator.setFlag(Generate::RegularStartEnd);
453 generator.setFlag(Generate::DisconnectShapes);
454 generator.generate(5, 5,
455 {{{Decoration::Poly | Decoration::Color::Yellow |
456 Decoration::Can_Rotate,
457 3}}});
458 },
459 [](Generate& generator) {
460 generator.setFlag(Generate::TreehouseLayout);
461 generator.generate(
462 4, 4,
463 {{{Decoration::Star | Decoration::Color::Black, 4},
464 {Decoration::Star | Decoration::Color::White, 4},
465 {Decoration::Star | Decoration::Color::Orange, 4},
466 {Decoration::Stone | Decoration::Color::Black, 1},
467 {Decoration::Stone | Decoration::Color::White, 1}}});
468 },
469 [](Generate& generator) {
470 generator.setFlag(Generate::RegularStartEnd);
471 generator.generate(
472 3, 3,
473 {{{Decoration::Stone | Decoration::Color::Magenta, 2},
474 {Decoration::Stone | Decoration::Color::Green, 1},
475 {Decoration::Star | Decoration::Color::Magenta, 2},
476 {Decoration::Star | Decoration::Color::Green, 3},
477 {Decoration::Eraser | Decoration::Color::Magenta, 1}}});
478 },
479 [](Generate& generator) {
480 generator.setFlag(Generate::RegularStartEnd);
481 generator.generate(
482 4, 4,
483 {{{Decoration::Dot_Intersection, 25},
484 {Decoration::Poly | Decoration::Color::Yellow, 3}}});
485 },
486 [](Generate& generator) {
487 generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2);
488 generator.setSymbol(Decoration::Exit, 4 * 2, 0);
489 generator.generate(4, 4,
490 {{{Decoration::Dot_Intersection, 25},
491 {Decoration::Poly | Decoration::Color::Yellow |
492 Decoration::Can_Rotate,
493 2}}});
494 },
495 [](Generate& generator) {
496 generator.setFlag(Generate::RegularStartEnd);
497 generator.generate(
498 5, 5,
499 {{{Decoration::Poly | Decoration::Color::Green, 4},
500 {Decoration::Star | Decoration::Color::Green, 3}}});
501 },
502 [](Generate& generator) {
503 generator.setFlag(Generate::RegularStartEnd);
504 generator.generate(
505 4, 4, {{{Decoration::Triangle2 | Decoration::Color::Orange, 12}}});
506 },
507 [](Generate& generator) {
508 generator.setSymbol(Decoration::Exit, 0, 0);
509 generator.setSymbol(Decoration::Exit, 7 * 2, 0);
510 generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2);
511 generator.generate(
512 7, 7,
513 {{{Decoration::Triangle | Decoration::Color::Orange, 12},
514 {Decoration::Start, 3}}});
515 },
516 [](Generate& generator) {
517 generator.setFlag(Generate::TreehouseLayout);
518 generator.generate(
519 4, 4,
520 {{{Decoration::Star | Decoration::Color::Orange, 1},
521 {Decoration::Triangle | Decoration::Color::Orange, 7}}});
522 },
523 [](Generate& generator) {
524 generator.setFlag(Generate::TreehouseLayout);
525 generator.generate(
526 4, 4,
527 {{{Decoration::Star | Decoration::Color::Orange, 3},
528 {Decoration::Star | Decoration::Color::Magenta, 2},
529 {Decoration::Triangle | Decoration::Color::Orange, 2},
530 {Decoration::Triangle | Decoration::Color::Magenta, 2}}});
531 },
532 [](Generate& generator) {
533 generator.setFlag(Generate::TreehouseLayout);
534 generator.generate(4, 4,
535 {{{Decoration::Star | Decoration::Color::Magenta, 4},
536 {Decoration::Dot_Intersection, 25}}});
537 },
538 [](Generate& generator) {
539 generator.setSymmetry(Panel::Symmetry::FlipNegXY);
540 generator.generate(7, 7,
541 {{{Decoration::Gap, 10},
542 {Decoration::Dot_Intersection, 8},
543 {Decoration::Start, 2},
544 {Decoration::Exit, 1}}});
545 },
546 [](Generate& generator) {
547 generator.setGridSize(7, 7);
548 generator.setSymmetry(Panel::Symmetry::ParallelV);
549 generator.generate(7, 7,
550 {{{Decoration::Gap, 12},
551 {Decoration::Dot_Intersection, 10},
552 {Decoration::Start, 2},
553 {Decoration::Exit, 1}}});
554 },
555 [](Generate& generator) {
556 generator.setGridSize(7, 7);
557 generator.setSymmetry(Panel::Symmetry::ParallelHFlip);
558 generator.generate(7, 7,
559 {{{Decoration::Gap, 12},
560 {Decoration::Dot_Intersection, 10},
561 {Decoration::Start, 2},
562 {Decoration::Exit, 1}}});
563 },
564 [](Generate& generator) {
565 generator.setFlag(Generate::StartEdgeOnly);
566 generator.setSymbol(Decoration::Exit, 4 * 2, 0);
567 generator.generate(4, 4,
568 {{{Decoration::Dot_Intersection, 25},
569 {Decoration::Poly | Decoration::Color::Yellow, 1},
570 {Decoration::Poly | Decoration::Color::Yellow |
571 Decoration::Can_Rotate,
572 2},
573 {Decoration::Start, 1}}});
574 },
575 [](Generate& generator) {
576 generator.setFlag(Generate::RegularStartEnd);
577 generator.setSymmetry(Panel::Vertical);
578 generator.generate(
579 7, 7, {{{Decoration::Poly | Decoration::Color::Yellow, 5}}});
580 },
581 [](Generate& generator) {
582 generator.setFlag(Generate::TreehouseLayout);
583 generator.generate(
584 4, 4,
585 {{{Decoration::Star | Decoration::Color::Black, 1},
586 {Decoration::Star | Decoration::Color::White, 2},
587 {Decoration::Stone | Decoration::Color::Black, 2},
588 {Decoration::Stone | Decoration::Color::White, 1},
589 {Decoration::Poly | Decoration::Can_Rotate | Decoration::Orange,
590 1},
591 {Decoration::Poly | Decoration::Orange, 1}}});
592 },
593 };
594
595 return generator_fns;
596}