diff options
Diffstat (limited to 'ext')
| -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; |
