diff options
Diffstat (limited to 'ext/wittle_generator')
-rw-r--r-- | ext/wittle_generator/PuzzlesetEasy.cpp | 13 | ||||
-rw-r--r-- | ext/wittle_generator/PuzzlesetHard.cpp | 95 | ||||
-rw-r--r-- | ext/wittle_generator/PuzzlesetMedium.cpp | 112 |
3 files changed, 220 insertions, 0 deletions
diff --git a/ext/wittle_generator/PuzzlesetEasy.cpp b/ext/wittle_generator/PuzzlesetEasy.cpp index 4e2f84f..d5a6ea3 100644 --- a/ext/wittle_generator/PuzzlesetEasy.cpp +++ b/ext/wittle_generator/PuzzlesetEasy.cpp | |||
@@ -373,6 +373,19 @@ const std::vector<std::function<void(Generate&)>>& GetEasyPuzzles() { | |||
373 | {Decoration::Start, 2}, | 373 | {Decoration::Start, 2}, |
374 | {Decoration::Exit, 1}}}); | 374 | {Decoration::Exit, 1}}}); |
375 | }, | 375 | }, |
376 | [](Generate& generator) { | ||
377 | generator.setFlag(Generate::RegularStartEnd); | ||
378 | generator.setFlag(Generate::FullGaps); | ||
379 | generator.generate(4, 4, | ||
380 | {{{Decoration::Gap, 7}, {Decoration::Dot, 9}}}); | ||
381 | }, | ||
382 | [](Generate& generator) { | ||
383 | generator.setFlag(Generate::RegularStartEnd); | ||
384 | generator.generate(5, 5, | ||
385 | {{{Decoration::Stone | Decoration::Color::Black, 5}, | ||
386 | {Decoration::Stone | Decoration::Color::White, 7}, | ||
387 | {Decoration::Dot, 7}}}); | ||
388 | }, | ||
376 | }; | 389 | }; |
377 | 390 | ||
378 | return generator_fns; | 391 | return generator_fns; |
diff --git a/ext/wittle_generator/PuzzlesetHard.cpp b/ext/wittle_generator/PuzzlesetHard.cpp index c775d64..8958456 100644 --- a/ext/wittle_generator/PuzzlesetHard.cpp +++ b/ext/wittle_generator/PuzzlesetHard.cpp | |||
@@ -927,6 +927,101 @@ const std::vector<std::function<void(Generate&)>>& GetHardPuzzles() { | |||
927 | {Decoration::Star | Decoration::Color::Orange, 4}, | 927 | {Decoration::Star | Decoration::Color::Orange, 4}, |
928 | {Decoration::Star | Decoration::Color::Magenta, 5}}}); | 928 | {Decoration::Star | Decoration::Color::Magenta, 5}}}); |
929 | }, | 929 | }, |
930 | [](Generate& generator) { | ||
931 | generator.setGridSize(7, 7); | ||
932 | generator.setSymmetry(Panel::Symmetry::Rotational); | ||
933 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
934 | generator.setSymbol(Decoration::Exit, 14, 14); | ||
935 | generator.setSymbol(Decoration::Exit, 14, 0); | ||
936 | generator.setSymbol(Decoration::Exit, 0, 14); | ||
937 | generator.setSymbol(Decoration::Start, 2, 2); | ||
938 | generator.setSymbol(Decoration::Start, 12, 12); | ||
939 | generator.setSymbol(Decoration::Start, 4, 4); | ||
940 | generator.setSymbol(Decoration::Start, 10, 10); | ||
941 | generator.setSymbol(Decoration::Start, 6, 6); | ||
942 | generator.setSymbol(Decoration::Start, 8, 8); | ||
943 | generator.generate( | ||
944 | 7, 7, | ||
945 | {{{Decoration::Stone | Decoration::Color::Magenta, 7}, | ||
946 | {Decoration::Stone | Decoration::Color::Black, 7}, | ||
947 | {Decoration::Dot, 6}}}); | ||
948 | }, | ||
949 | [](Generate& generator) { | ||
950 | generator.setSymbol(Decoration::Start, 0, 0); | ||
951 | generator.setSymbol(Decoration::Start, 5 * 2, 5 * 2); | ||
952 | generator.setSymbol(Decoration::Exit, 2 * 2, 0); | ||
953 | generator.setSymbol(Decoration::Exit, 2 * 2, 5 * 2); | ||
954 | generator.generate( | ||
955 | 5, 5, | ||
956 | {{{Decoration::Eraser | Decoration::Color::White, 1}, | ||
957 | {Decoration::Star | Decoration::Color::White, 5}, | ||
958 | {Decoration::Star | Decoration::Color::Black, 6}, | ||
959 | {Decoration::Star | Decoration::Color::Orange, 6}}}); | ||
960 | }, | ||
961 | [](Generate& generator) { | ||
962 | generator.setFlag(Generate::DisconnectShapes); | ||
963 | generator.setFlag(Generate::RegularStartEnd); | ||
964 | generator.generate(5, 5, | ||
965 | {{{Decoration::Poly | Decoration::Can_Rotate | | ||
966 | Decoration::Color::Yellow, | ||
967 | 3}, | ||
968 | {Decoration::Dot, 7}}}); | ||
969 | }, | ||
970 | [](Generate& generator) { | ||
971 | generator.setFlag(Generate::RegularStartEnd); | ||
972 | generator.generate( | ||
973 | 5, 5, | ||
974 | {{{Decoration::Eraser | Decoration::Color::Magenta, 1}, | ||
975 | {Decoration::Eraser | Decoration::Color::Green, 1}, | ||
976 | {Decoration::Dot, 3}, | ||
977 | {Decoration::Stone | Decoration::Color::Magenta, 1}, | ||
978 | {Decoration::Stone | Decoration::Color::Green, 1}, | ||
979 | {Decoration::Star | Decoration::Color::Magenta, 1}, | ||
980 | {Decoration::Star | Decoration::Color::Green, 1}, | ||
981 | {Decoration::Poly | Decoration::Color::Green, 2}, | ||
982 | {Decoration::Poly | Decoration::Negative | | ||
983 | Decoration::Color::Magenta, | ||
984 | 2}}}); | ||
985 | }, | ||
986 | [](Generate& generator) { | ||
987 | generator.setFlag(Generate::RegularStartEnd); | ||
988 | generator.generate( | ||
989 | 5, 5, | ||
990 | {{{Decoration::Triangle | Decoration::Color::Green, 3}, | ||
991 | {Decoration::Star | Decoration::Color::Green, 5}, | ||
992 | {Decoration::Poly | Decoration::Color::Green, 3}}}); | ||
993 | }, | ||
994 | [](Generate& generator) { | ||
995 | generator.setFlag(Generate::RegularStartEnd); | ||
996 | generator.generate( | ||
997 | 4, 4, | ||
998 | {{{Decoration::Triangle2 | Decoration::Color::Orange, 7}, | ||
999 | {Decoration::Dot, 9}}}); | ||
1000 | }, | ||
1001 | [](Generate& generator) { | ||
1002 | generator.generate( | ||
1003 | 6, 6, | ||
1004 | {{{Decoration::Triangle | Decoration::Color::Orange, 11}, | ||
1005 | {Decoration::Dot, 11}, | ||
1006 | {Decoration::Start, 3}, | ||
1007 | {Decoration::Exit, 1}}}); | ||
1008 | }, | ||
1009 | [](Generate& generator) { | ||
1010 | generator.setSymbol(Decoration::Start, 2 * 2, 5 * 2); | ||
1011 | generator.setSymbol(Decoration::Exit, 2 * 2, 0); | ||
1012 | generator.generate( | ||
1013 | 5, 5, | ||
1014 | {{{Decoration::Stone | Decoration::Color::Black, 6}, | ||
1015 | {Decoration::Star | Decoration::Color::Black, 6}, | ||
1016 | {Decoration::Poly | Decoration::Color::Black, 3}}}); | ||
1017 | }, | ||
1018 | [](Generate& generator) { | ||
1019 | generator.setSymbol(Decoration::Start, 5, 0); | ||
1020 | generator.setSymbol(Decoration::Exit, 5, 12); | ||
1021 | generator.generate(5, 6, | ||
1022 | {{{Decoration::Poly | Decoration::Color::Yellow, 4}, | ||
1023 | {Decoration::Dot, 5}}}); | ||
1024 | }, | ||
930 | }; | 1025 | }; |
931 | 1026 | ||
932 | return generator_fns; | 1027 | return generator_fns; |
diff --git a/ext/wittle_generator/PuzzlesetMedium.cpp b/ext/wittle_generator/PuzzlesetMedium.cpp index afc7e45..8e768d1 100644 --- a/ext/wittle_generator/PuzzlesetMedium.cpp +++ b/ext/wittle_generator/PuzzlesetMedium.cpp | |||
@@ -590,6 +590,118 @@ const std::vector<std::function<void(Generate&)>>& GetMediumPuzzles() { | |||
590 | 1}, | 590 | 1}, |
591 | {Decoration::Poly | Decoration::Orange, 1}}}); | 591 | {Decoration::Poly | Decoration::Orange, 1}}}); |
592 | }, | 592 | }, |
593 | [](Generate& generator) { | ||
594 | generator.setFlag(Generate::FullGaps); | ||
595 | generator.setSymbol(Decoration::Start, 4 * 2, 4 * 2); | ||
596 | generator.setSymbol(Decoration::Exit, 2 * 2, 0); | ||
597 | generator.generate( | ||
598 | 5, 5, | ||
599 | {{{Decoration::Gap, 7}, | ||
600 | {Decoration::Stone | Decoration::Color::Black, 5}, | ||
601 | {Decoration::Stone | Decoration::Color::Magenta, 6}}}); | ||
602 | }, | ||
603 | [](Generate& generator) { | ||
604 | generator.setFlag(Generate::FullGaps); | ||
605 | generator.setFlag(Generate::RegularStartEnd); | ||
606 | generator.generate( | ||
607 | 6, 6, | ||
608 | {{{Decoration::Gap, 11}, | ||
609 | {Decoration::Star | Decoration::Color::Black, 6}, | ||
610 | {Decoration::Star | Decoration::Color::Magenta, 6}}}); | ||
611 | }, | ||
612 | [](Generate& generator) { | ||
613 | generator.generate( | ||
614 | 4, 4, | ||
615 | {{{Decoration::Start, 1}, | ||
616 | {Decoration::Exit, 1}, | ||
617 | {Decoration::Dot_Intersection, 25}, | ||
618 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
619 | {Decoration::Stone | Decoration::Color::Magenta, 3}}}); | ||
620 | }, | ||
621 | [](Generate& generator) { | ||
622 | generator.generate( | ||
623 | 4, 4, | ||
624 | {{{Decoration::Start, 1}, | ||
625 | {Decoration::Exit, 1}, | ||
626 | {Decoration::Dot_Intersection, 25}, | ||
627 | {Decoration::Star | Decoration::Color::Black, 4}, | ||
628 | {Decoration::Star | Decoration::Color::White, 2}}}); | ||
629 | }, | ||
630 | [](Generate& generator) { | ||
631 | generator.generate(4, 4, | ||
632 | {{{Decoration::Start, 1}, | ||
633 | {Decoration::Exit, 1}, | ||
634 | {Decoration::Dot_Intersection, 25}, | ||
635 | {Decoration::Poly | Decoration::Color::Black, 2}, | ||
636 | {Decoration::Poly | Decoration::Negative | | ||
637 | Decoration::Color::Magenta, | ||
638 | 2}}}); | ||
639 | }, | ||
640 | [](Generate& generator) { | ||
641 | generator.generate( | ||
642 | 4, 4, | ||
643 | {{{Decoration::Start, 1}, | ||
644 | {Decoration::Exit, 1}, | ||
645 | {Decoration::Dot_Intersection, 25}, | ||
646 | {Decoration::Eraser | Decoration::Color::Black, 1}, | ||
647 | {Decoration::Star | Decoration::Color::Black, 3}, | ||
648 | {Decoration::Stone | Decoration::Color::Black, 3}}}); | ||
649 | }, | ||
650 | [](Generate& generator) { | ||
651 | generator.setFlag(Generate::RegularStartEnd); | ||
652 | generator.setFlag(Generate::RequireCombineShapes); | ||
653 | generator.generate(4, 4, | ||
654 | {{{Decoration::Eraser, 1}, | ||
655 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
656 | {Decoration::Gap, 5}}}); | ||
657 | }, | ||
658 | [](Generate& generator) { | ||
659 | generator.setFlag(Generate::RegularStartEnd); | ||
660 | generator.generate( | ||
661 | 4, 4, | ||
662 | {{{Decoration::Dot, 9}, | ||
663 | {Decoration::Eraser | Decoration::Color::Green, 2}}}); | ||
664 | }, | ||
665 | [](Generate& generator) { | ||
666 | generator.setFlag(Generate::RegularStartEnd); | ||
667 | generator.generate( | ||
668 | 4, 4, | ||
669 | {{{Decoration::Dot, 11}, | ||
670 | {Decoration::Eraser | Decoration::Color::Green, 2}}}); | ||
671 | }, | ||
672 | [](Generate& generator) { | ||
673 | generator.setFlag(Generate::RegularStartEnd); | ||
674 | generator.generate( | ||
675 | 5, 5, | ||
676 | {{{Decoration::Dot, 15}, | ||
677 | {Decoration::Eraser | Decoration::Color::Green, 2}}}); | ||
678 | }, | ||
679 | [](Generate& generator) { | ||
680 | generator.setFlag(Generate::RegularStartEnd); | ||
681 | generator.generate( | ||
682 | 5, 5, | ||
683 | {{{Decoration::Dot, 17}, | ||
684 | {Decoration::Eraser | Decoration::Color::Green, 2}}}); | ||
685 | }, | ||
686 | [](Generate& generator) { | ||
687 | generator.setFlag(Generate::RegularStartEnd); | ||
688 | generator.generate( | ||
689 | 5, 5, {{{Decoration::Triangle1 | Decoration::Color::Magenta, 15}}}); | ||
690 | }, | ||
691 | [](Generate& generator) { | ||
692 | generator.setSymbol(Decoration::Start, 2 * 2, 5 * 2); | ||
693 | generator.setSymbol(Decoration::Exit, 2 * 2, 0); | ||
694 | generator.generate( | ||
695 | 5, 5, | ||
696 | {{{Decoration::Stone | Decoration::Color::Black, 5}, | ||
697 | {Decoration::Stone | Decoration::Color::White, 5}, | ||
698 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
699 | }, | ||
700 | [](Generate& generator) { | ||
701 | generator.setFlag(Generate::RegularStartEnd); | ||
702 | generator.generate( | ||
703 | 6, 6, {{{Decoration::Triangle | Decoration::Color::Orange, 15}}}); | ||
704 | }, | ||
593 | }; | 705 | }; |
594 | 706 | ||
595 | return generator_fns; | 707 | return generator_fns; |