diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-01-14 19:35:34 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-01-14 19:35:34 -0500 |
commit | 0822404cf75fb6ad04faf55861faaf8330effa59 (patch) | |
tree | 3848f7a74b1433246beb16db9f90efb67df0c42a /ext/wittle_generator/PuzzlesetMedium.cpp | |
parent | d00531cb6c36e061bf5b9a4361ea74ae473d6946 (diff) | |
download | wittle-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.cpp | 596 |
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 | |||
5 | const 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 | } | ||