diff options
Diffstat (limited to 'ext/wittle_generator')
| -rw-r--r-- | ext/wittle_generator/wittle_generator.cpp | 523 | 
1 files changed, 519 insertions, 4 deletions
| diff --git a/ext/wittle_generator/wittle_generator.cpp b/ext/wittle_generator/wittle_generator.cpp index f3d2947..11bfffe 100644 --- a/ext/wittle_generator/wittle_generator.cpp +++ b/ext/wittle_generator/wittle_generator.cpp | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | 7 | Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | 
| 8 | Generate generator; | 8 | Generate generator; | 
| 9 | 9 | ||
| 10 | int choice = Random::rand() % 46; | 10 | int choice = Random::rand() % 48; | 
| 11 | std::cout << "Generate EASY: choice " << std::dec << choice << std::endl; | 11 | std::cout << "Generate EASY: choice " << std::dec << choice << std::endl; | 
| 12 | 12 | ||
| 13 | switch (choice) { | 13 | switch (choice) { | 
| @@ -394,6 +394,23 @@ Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | |||
| 394 | {Decoration::Stone | Decoration::Color::Green, 4}}}); | 394 | {Decoration::Stone | Decoration::Color::Green, 4}}}); | 
| 395 | break; | 395 | break; | 
| 396 | } | 396 | } | 
| 397 | case 46: { | ||
| 398 | generator.setFlag(Generate::RegularStartEnd); | ||
| 399 | generator.generate(4, 4, | ||
| 400 | {{{Decoration::Dot, 6}, | ||
| 401 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
| 402 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
| 403 | break; | ||
| 404 | } | ||
| 405 | case 47: { | ||
| 406 | generator.setFlag(Generate::RegularStartEnd); | ||
| 407 | generator.generate(4, 4, | ||
| 408 | {{{Decoration::Dot, 4}, | ||
| 409 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
| 410 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
| 411 | {Decoration::Poly | Decoration::Color::Yellow, 1}}}); | ||
| 412 | break; | ||
| 413 | } | ||
| 397 | } | 414 | } | 
| 398 | 415 | ||
| 399 | Rice::String str(generator.AsCode()); | 416 | Rice::String str(generator.AsCode()); | 
| @@ -403,7 +420,7 @@ Rice::Object wittle_generator_generate_easy(Rice::Object /* self */) { | |||
| 403 | Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | 420 | Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | 
| 404 | Generate generator; | 421 | Generate generator; | 
| 405 | 422 | ||
| 406 | int choice = Random::rand() % 33; | 423 | int choice = Random::rand() % 63; | 
| 407 | std::cout << "Generate MEDIUM: choice " << std::dec << choice << std::endl; | 424 | std::cout << "Generate MEDIUM: choice " << std::dec << choice << std::endl; | 
| 408 | 425 | ||
| 409 | switch (choice) { | 426 | switch (choice) { | 
| @@ -703,6 +720,276 @@ Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | |||
| 703 | {Decoration::Exit, 1}}}); | 720 | {Decoration::Exit, 1}}}); | 
| 704 | break; | 721 | break; | 
| 705 | } | 722 | } | 
| 723 | case 33: { | ||
| 724 | generator.setFlag(Generate::RegularStartEnd); | ||
| 725 | generator.generate(4, 4, | ||
| 726 | {{{Decoration::Dot, 4}, | ||
| 727 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 728 | {Decoration::Stone | Decoration::Color::White, 2}, | ||
| 729 | {Decoration::Star | Decoration::Color::Black, 2}, | ||
| 730 | {Decoration::Star | Decoration::Color::White, 2}}}); | ||
| 731 | break; | ||
| 732 | } | ||
| 733 | case 34: { | ||
| 734 | generator.setFlag(Generate::RegularStartEnd); | ||
| 735 | generator.generate(4, 4, | ||
| 736 | {{{Decoration::Dot, 4}, | ||
| 737 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
| 738 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
| 739 | {Decoration::Star | Decoration::Color::Black, 3}, | ||
| 740 | {Decoration::Star | Decoration::Color::White, 1}}}); | ||
| 741 | break; | ||
| 742 | } | ||
| 743 | case 35: { | ||
| 744 | generator.setFlag(Generate::RegularStartEnd); | ||
| 745 | generator.generate(5, 5, | ||
| 746 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 747 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
| 748 | {Decoration::Stone | Decoration::Color::White, 4}}}); | ||
| 749 | break; | ||
| 750 | } | ||
| 751 | case 36: { | ||
| 752 | generator.setFlag(Generate::RegularStartEnd); | ||
| 753 | generator.generate(5, 5, | ||
| 754 | {{{Decoration::Stone | Decoration::Color::Cyan, 2}, | ||
| 755 | {Decoration::Stone | Decoration::Color::Yellow, 2}, | ||
| 756 | {Decoration::Star | Decoration::Color::Cyan, 3}, | ||
| 757 | {Decoration::Star | Decoration::Color::Yellow, 3}}}); | ||
| 758 | break; | ||
| 759 | } | ||
| 760 | case 37: { | ||
| 761 | generator.setFlag(Generate::RegularStartEnd); | ||
| 762 | generator.generate( | ||
| 763 | 6, 6, | ||
| 764 | {{{Decoration::Stone | Decoration::Color::Cyan, 2}, | ||
| 765 | {Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
| 766 | {Decoration::Star | Decoration::Color::Cyan, 2}, | ||
| 767 | {Decoration::Star | Decoration::Color::Magenta, 1}, | ||
| 768 | {Decoration::Poly | Decoration::Color::Cyan, 1}, | ||
| 769 | {Decoration::Poly | Decoration::Color::Magenta, 1}}}); | ||
| 770 | break; | ||
| 771 | } | ||
| 772 | case 38: { | ||
| 773 | generator.setFlag(Generate::RegularStartEnd); | ||
| 774 | generator.generate( | ||
| 775 | 5, 5, {{{Decoration::Triangle | Decoration::Color::Orange, 10}}}); | ||
| 776 | break; | ||
| 777 | } | ||
| 778 | case 39: { | ||
| 779 | generator.setFlag(Generate::RegularStartEnd); | ||
| 780 | generator.generate( | ||
| 781 | 5, 3, | ||
| 782 | {{{Decoration::Stone | Decoration::Color::Black, 4}, | ||
| 783 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
| 784 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 785 | break; | ||
| 786 | } | ||
| 787 | case 40: { | ||
| 788 | generator.setFlag(Generate::RegularStartEnd); | ||
| 789 | generator.generate( | ||
| 790 | 4, 4, | ||
| 791 | {{{Decoration::Dot, 25}, | ||
| 792 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
| 793 | break; | ||
| 794 | } | ||
| 795 | case 41: { | ||
| 796 | generator.setFlag(Generate::RegularStartEnd); | ||
| 797 | generator.setFlag(Generate::RequireCombineShapes); | ||
| 798 | generator.setSymmetry(Panel::Rotational); | ||
| 799 | generator.generate(5, 5, | ||
| 800 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
| 801 | break; | ||
| 802 | } | ||
| 803 | case 42: { | ||
| 804 | generator.setFlag(Generate::RegularStartEnd); | ||
| 805 | generator.setFlag(Generate::DisconnectShapes); | ||
| 806 | generator.setFlag(Generate::BigShapes); | ||
| 807 | generator.generate(5, 5, | ||
| 808 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
| 809 | break; | ||
| 810 | } | ||
| 811 | case 43: { | ||
| 812 | generator.setFlag(Generate::RegularStartEnd); | ||
| 813 | generator.setFlag(Generate::DisconnectShapes); | ||
| 814 | generator.generate( | ||
| 815 | 4, 4, | ||
| 816 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 817 | {Decoration::Poly | Decoration::Color::Blue | Decoration::Negative, | ||
| 818 | 1}}}); | ||
| 819 | break; | ||
| 820 | } | ||
| 821 | case 44: { | ||
| 822 | generator.setFlag(Generate::RegularStartEnd); | ||
| 823 | generator.generate( | ||
| 824 | 4, 4, | ||
| 825 | {{{Decoration::Stone | Decoration::Color::Black, 3}, | ||
| 826 | {Decoration::Stone | Decoration::Color::White, 3}, | ||
| 827 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 828 | break; | ||
| 829 | } | ||
| 830 | case 45: { | ||
| 831 | generator.setFlag(Generate::RegularStartEnd); | ||
| 832 | generator.generate( | ||
| 833 | 4, 4, | ||
| 834 | {{{Decoration::Star | Decoration::Color::Black, 4}, | ||
| 835 | {Decoration::Star | Decoration::Color::White, 4}, | ||
| 836 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 837 | break; | ||
| 838 | } | ||
| 839 | case 46: { | ||
| 840 | generator.setFlag(Generate::RegularStartEnd); | ||
| 841 | generator.generate( | ||
| 842 | 4, 4, | ||
| 843 | {{{Decoration::Star | Decoration::Color::Orange, 3}, | ||
| 844 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 845 | break; | ||
| 846 | } | ||
| 847 | case 47: { | ||
| 848 | generator.setFlag(Generate::RegularStartEnd); | ||
| 849 | generator.generate( | ||
| 850 | 4, 4, | ||
| 851 | {{{Decoration::Star | Decoration::Color::Black, 2}, | ||
| 852 | {Decoration::Star | Decoration::Color::Orange, 2}, | ||
| 853 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
| 854 | {Decoration::Stone | Decoration::Color::Orange, 1}, | ||
| 855 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 856 | break; | ||
| 857 | } | ||
| 858 | case 48: { | ||
| 859 | generator.setFlag(Generate::RegularStartEnd); | ||
| 860 | generator.setFlag(Generate::BigShapes); | ||
| 861 | generator.generate( | ||
| 862 | 4, 4, | ||
| 863 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
| 864 | Decoration::Can_Rotate, | ||
| 865 | 1}, | ||
| 866 | {Decoration::Triangle | Decoration::Color::Orange, 3}}}); | ||
| 867 | break; | ||
| 868 | } | ||
| 869 | case 49: { | ||
| 870 | generator.setFlag(Generate::RegularStartEnd); | ||
| 871 | generator.setFlag(Generate::BigShapes); | ||
| 872 | generator.generate( | ||
| 873 | 5, 5, | ||
| 874 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
| 875 | Decoration::Can_Rotate, | ||
| 876 | 1}, | ||
| 877 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
| 878 | break; | ||
| 879 | } | ||
| 880 | case 50: { | ||
| 881 | generator.setFlag(Generate::RegularStartEnd); | ||
| 882 | generator.setFlag(Generate::BigShapes); | ||
| 883 | generator.generate( | ||
| 884 | 5, 5, | ||
| 885 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 886 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 887 | break; | ||
| 888 | } | ||
| 889 | case 51: { | ||
| 890 | generator.setFlag(Generate::RegularStartEnd); | ||
| 891 | generator.generate( | ||
| 892 | 4, 4, | ||
| 893 | {{{Decoration::Dot, 25}, | ||
| 894 | {Decoration::Triangle | Decoration::Color::Orange, 4}}}); | ||
| 895 | break; | ||
| 896 | } | ||
| 897 | case 52: { | ||
| 898 | generator.setSymbol(Decoration::Start, 0, 4 * 2); | ||
| 899 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
| 900 | generator.generate( | ||
| 901 | 4, 4, | ||
| 902 | {{{Decoration::Dot, 25}, | ||
| 903 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
| 904 | break; | ||
| 905 | } | ||
| 906 | case 53: { | ||
| 907 | generator.setSymbol(Decoration::Start, 0, 4 * 2); | ||
| 908 | generator.setSymbol(Decoration::Exit, 4 * 2, 4 * 2); | ||
| 909 | generator.generate( | ||
| 910 | 4, 4, | ||
| 911 | {{{Decoration::Dot, 25}, | ||
| 912 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
| 913 | break; | ||
| 914 | } | ||
| 915 | case 54: { | ||
| 916 | generator.setFlag(Generate::RegularStartEnd); | ||
| 917 | generator.generate( | ||
| 918 | 4, 4, | ||
| 919 | {{{Decoration::Dot, 25}, | ||
| 920 | {Decoration::Triangle | Decoration::Color::Orange, 6}}}); | ||
| 921 | break; | ||
| 922 | } | ||
| 923 | case 55: { | ||
| 924 | generator.setFlag(Generate::RegularStartEnd); | ||
| 925 | generator.setFlag(Generate::DisconnectShapes); | ||
| 926 | generator.generate(5, 5, | ||
| 927 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
| 928 | Decoration::Can_Rotate, | ||
| 929 | 3}}}); | ||
| 930 | break; | ||
| 931 | } | ||
| 932 | case 56: { | ||
| 933 | generator.setFlag(Generate::TreehouseLayout); | ||
| 934 | generator.generate(4, 4, | ||
| 935 | {{{Decoration::Star | Decoration::Color::Black, 4}, | ||
| 936 | {Decoration::Star | Decoration::Color::White, 4}, | ||
| 937 | {Decoration::Star | Decoration::Color::Orange, 4}, | ||
| 938 | {Decoration::Stone | Decoration::Color::Black, 1}, | ||
| 939 | {Decoration::Stone | Decoration::Color::White, 1}}}); | ||
| 940 | break; | ||
| 941 | } | ||
| 942 | case 57: { | ||
| 943 | generator.setFlag(Generate::RegularStartEnd); | ||
| 944 | generator.generate( | ||
| 945 | 3, 3, | ||
| 946 | {{{Decoration::Stone | Decoration::Color::Magenta, 2}, | ||
| 947 | {Decoration::Stone | Decoration::Color::Green, 1}, | ||
| 948 | {Decoration::Star | Decoration::Color::Magenta, 2}, | ||
| 949 | {Decoration::Star | Decoration::Color::Green, 3}, | ||
| 950 | {Decoration::Eraser | Decoration::Color::Magenta, 1}}}); | ||
| 951 | break; | ||
| 952 | } | ||
| 953 | case 58: { | ||
| 954 | generator.setFlag(Generate::RegularStartEnd); | ||
| 955 | generator.generate(4, 4, | ||
| 956 | {{{Decoration::Dot_Intersection, 25}, | ||
| 957 | {Decoration::Poly | Decoration::Color::Yellow, 3}}}); | ||
| 958 | break; | ||
| 959 | } | ||
| 960 | case 59: { | ||
| 961 | generator.setSymbol(Decoration::Start, 2 * 2, 2 * 2); | ||
| 962 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
| 963 | generator.generate(4, 4, | ||
| 964 | {{{Decoration::Dot_Intersection, 25}, | ||
| 965 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 966 | Decoration::Can_Rotate, | ||
| 967 | 2}}}); | ||
| 968 | break; | ||
| 969 | } | ||
| 970 | case 60: { | ||
| 971 | generator.setFlag(Generate::RegularStartEnd); | ||
| 972 | generator.generate(5, 5, | ||
| 973 | {{{Decoration::Poly | Decoration::Color::Green, 4}, | ||
| 974 | {Decoration::Star | Decoration::Color::Green, 3}}}); | ||
| 975 | break; | ||
| 976 | } | ||
| 977 | case 61: { | ||
| 978 | generator.setFlag(Generate::RegularStartEnd); | ||
| 979 | generator.generate( | ||
| 980 | 4, 4, {{{Decoration::Triangle2 | Decoration::Color::Orange, 12}}}); | ||
| 981 | break; | ||
| 982 | } | ||
| 983 | case 62: { | ||
| 984 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
| 985 | generator.setSymbol(Decoration::Exit, 7 * 2, 0); | ||
| 986 | generator.setSymbol(Decoration::Exit, 7 * 2, 7 * 2); | ||
| 987 | generator.generate( | ||
| 988 | 7, 7, | ||
| 989 | {{{Decoration::Triangle | Decoration::Color::Orange, 12}, | ||
| 990 | {Decoration::Start, 3}}}); | ||
| 991 | break; | ||
| 992 | } | ||
| 706 | } | 993 | } | 
| 707 | 994 | ||
| 708 | Rice::String str(generator.AsCode()); | 995 | Rice::String str(generator.AsCode()); | 
| @@ -712,7 +999,7 @@ Rice::Object wittle_generator_generate_medium(Rice::Object /* self */) { | |||
| 712 | Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { | 999 | Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { | 
| 713 | Generate generator; | 1000 | Generate generator; | 
| 714 | 1001 | ||
| 715 | int choice = Random::rand() % 8; | 1002 | int choice = Random::rand() % 27; | 
| 716 | std::cout << "Generate EXPERT: choice " << std::dec << choice << std::endl; | 1003 | std::cout << "Generate EXPERT: choice " << std::dec << choice << std::endl; | 
| 717 | 1004 | ||
| 718 | switch (choice) { | 1005 | switch (choice) { | 
| @@ -780,7 +1067,8 @@ Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { | |||
| 780 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | 1067 | {Decoration::Dot | Decoration::Color::Yellow, 2}, | 
| 781 | {Decoration::Dot, 8}, | 1068 | {Decoration::Dot, 8}, | 
| 782 | {Decoration::Eraser | Decoration::Color::Purple, 1}, | 1069 | {Decoration::Eraser | Decoration::Color::Purple, 1}, | 
| 783 | {Decoration::Start, 1}}}); | 1070 | {Decoration::Start, 1}, | 
| 1071 | {Decoration::Exit, 1}}}); | ||
| 784 | break; | 1072 | break; | 
| 785 | } | 1073 | } | 
| 786 | case 6: { | 1074 | case 6: { | 
| @@ -804,6 +1092,233 @@ Rice::Object wittle_generator_generate_expert(Rice::Object /* self */) { | |||
| 804 | {Decoration::Decoration::Eraser | Decoration::Color::Green, 1}}}); | 1092 | {Decoration::Decoration::Eraser | Decoration::Color::Green, 1}}}); | 
| 805 | break; | 1093 | break; | 
| 806 | } | 1094 | } | 
| 1095 | case 8: { | ||
| 1096 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
| 1097 | generator.setSymbol(Decoration::Exit, 0, 4 * 4); | ||
| 1098 | generator.setSymbol(Decoration::Exit, 4 * 4, 0); | ||
| 1099 | generator.setSymbol(Decoration::Exit, 4 * 4, 4 * 4); | ||
| 1100 | generator.generate(8, 8, | ||
| 1101 | {{{Decoration::Stone | Decoration::Color::White, 10}, | ||
| 1102 | {Decoration::Stone | Decoration::Color::Black, 10}, | ||
| 1103 | {Decoration::Dot_Intersection, 81}, | ||
| 1104 | {Decoration::Start, 8}}}); | ||
| 1105 | break; | ||
| 1106 | } | ||
| 1107 | case 9: { | ||
| 1108 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1109 | generator.generate( | ||
| 1110 | 6, 6, | ||
| 1111 | {{{Decoration::Dot_Intersection, 49}, | ||
| 1112 | {Decoration::Poly | Decoration::Color::Orange, 1}, | ||
| 1113 | {Decoration::Poly | Decoration::Color::Blue, 1}, | ||
| 1114 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1115 | 2}, | ||
| 1116 | {Decoration::Poly | Decoration::Negative | | ||
| 1117 | Decoration::Color::Orange, | ||
| 1118 | 1}, | ||
| 1119 | {Decoration::Star | Decoration::Color::Orange, 4}, | ||
| 1120 | {Decoration::Star | Decoration::Color::Blue, 3}, | ||
| 1121 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
| 1122 | {Decoration::Triangle | Decoration::Color::Blue, 1}, | ||
| 1123 | {Decoration::Stone | Decoration::Color::Orange, 1}, | ||
| 1124 | {Decoration::Stone | Decoration::Color::Blue, 2}, | ||
| 1125 | {Decoration::Eraser | Decoration::Color::White, 1}}}); | ||
| 1126 | break; | ||
| 1127 | } | ||
| 1128 | case 10: { | ||
| 1129 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1130 | generator.setSymmetry(Panel::Vertical); | ||
| 1131 | generator.generate(7, 7, | ||
| 1132 | {{{Decoration::Poly | Decoration::Color::Yellow, 5}}}); | ||
| 1133 | break; | ||
| 1134 | } | ||
| 1135 | case 11: { | ||
| 1136 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1137 | generator.setSymmetry(Panel::Rotational); | ||
| 1138 | generator.generate(7, 7, | ||
| 1139 | {{{Decoration::Poly | Decoration::Color::Yellow, 5}}}); | ||
| 1140 | break; | ||
| 1141 | } | ||
| 1142 | case 12: { | ||
| 1143 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1144 | generator.generate(5, 5, | ||
| 1145 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 1146 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 1147 | Decoration::Can_Rotate, | ||
| 1148 | 1}, | ||
| 1149 | {Decoration::Stone | Decoration::Color::Black, 5}, | ||
| 1150 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
| 1151 | break; | ||
| 1152 | } | ||
| 1153 | case 13: { | ||
| 1154 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1155 | generator.generate( | ||
| 1156 | 4, 4, | ||
| 1157 | {{{Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
| 1158 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 1159 | Decoration::Can_Rotate, | ||
| 1160 | 1}, | ||
| 1161 | {Decoration::Triangle | Decoration::Color::Orange, 3}}}); | ||
| 1162 | break; | ||
| 1163 | } | ||
| 1164 | case 14: { | ||
| 1165 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1166 | generator.generate( | ||
| 1167 | 4, 4, | ||
| 1168 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 1169 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 1170 | Decoration::Can_Rotate, | ||
| 1171 | 1}, | ||
| 1172 | {Decoration::Triangle | Decoration::Color::Orange, 2}, | ||
| 1173 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 1174 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
| 1175 | break; | ||
| 1176 | } | ||
| 1177 | case 15: { | ||
| 1178 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1179 | generator.setFlag(Generate::BigShapes); | ||
| 1180 | generator.generate( | ||
| 1181 | 5, 5, | ||
| 1182 | {{{Decoration::Poly | Decoration::Color::Yellow | | ||
| 1183 | Decoration::Can_Rotate, | ||
| 1184 | 2}, | ||
| 1185 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
| 1186 | {Decoration::Stone | Decoration::Color::Black, 3}, | ||
| 1187 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
| 1188 | break; | ||
| 1189 | } | ||
| 1190 | case 16: { | ||
| 1191 | generator.setFlag(Generate::StartEdgeOnly); | ||
| 1192 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
| 1193 | generator.generate(4, 4, | ||
| 1194 | {{{Decoration::Dot_Intersection, 25}, | ||
| 1195 | {Decoration::Poly | Decoration::Color::Yellow, 1}, | ||
| 1196 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 1197 | Decoration::Can_Rotate, | ||
| 1198 | 2}, | ||
| 1199 | {Decoration::Start, 1}}}); | ||
| 1200 | break; | ||
| 1201 | } | ||
| 1202 | case 17: { | ||
| 1203 | generator.setFlag(Generate::StartEdgeOnly); | ||
| 1204 | generator.setSymbol(Decoration::Exit, 4 * 2, 0); | ||
| 1205 | generator.generate(5, 5, | ||
| 1206 | {{{Decoration::Dot_Intersection, 36}, | ||
| 1207 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1208 | {Decoration::Start, 1}}}); | ||
| 1209 | break; | ||
| 1210 | } | ||
| 1211 | case 18: { | ||
| 1212 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1213 | generator.setFlag(Generate::BigShapes); | ||
| 1214 | generator.setFlag(Generate::RequireCancelShapes); | ||
| 1215 | generator.generate( | ||
| 1216 | 5, 5, | ||
| 1217 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1218 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1219 | 3}}}); | ||
| 1220 | break; | ||
| 1221 | } | ||
| 1222 | case 19: { | ||
| 1223 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1224 | generator.generate( | ||
| 1225 | 5, 6, | ||
| 1226 | {{{Decoration::Dot_Intersection, 42}, | ||
| 1227 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 1228 | {Decoration::Poly | Decoration::Color::Yellow | | ||
| 1229 | Decoration::Can_Rotate, | ||
| 1230 | 1}, | ||
| 1231 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
| 1232 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 1233 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
| 1234 | break; | ||
| 1235 | } | ||
| 1236 | case 20: { | ||
| 1237 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1238 | generator.generate( | ||
| 1239 | 5, 5, | ||
| 1240 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1241 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1242 | 1}, | ||
| 1243 | {Decoration::Stone | Decoration::Color::Black, 4}, | ||
| 1244 | {Decoration::Stone | Decoration::Color::White, 3}}}); | ||
| 1245 | break; | ||
| 1246 | } | ||
| 1247 | case 21: { | ||
| 1248 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1249 | generator.generate( | ||
| 1250 | 5, 5, | ||
| 1251 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1252 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1253 | 2}, | ||
| 1254 | {Decoration::Triangle | Decoration::Color::Orange, 5}}}); | ||
| 1255 | break; | ||
| 1256 | } | ||
| 1257 | case 22: { | ||
| 1258 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1259 | generator.generate( | ||
| 1260 | 5, 5, | ||
| 1261 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1262 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1263 | 1}, | ||
| 1264 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
| 1265 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 1266 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
| 1267 | break; | ||
| 1268 | } | ||
| 1269 | case 23: { | ||
| 1270 | generator.setFlag(Generate::RegularStartEnd); | ||
| 1271 | generator.generate( | ||
| 1272 | 5, 5, | ||
| 1273 | {{{Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1274 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1275 | 2}, | ||
| 1276 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
| 1277 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 1278 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
| 1279 | break; | ||
| 1280 | } | ||
| 1281 | case 24: { | ||
| 1282 | generator.setFlag(Generate::DisconnectShapes); | ||
| 1283 | generator.setFlag(Generate::BigShapes); | ||
| 1284 | generator.setSymbol(Decoration::Start, 0, 5 * 2); | ||
| 1285 | generator.setSymbol(Decoration::Exit, 0, 0); | ||
| 1286 | generator.generate( | ||
| 1287 | 5, 5, | ||
| 1288 | {{{Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 1289 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1290 | 1}, | ||
| 1291 | {Decoration::Triangle | Decoration::Color::Orange, 3}, | ||
| 1292 | {Decoration::Stone | Decoration::Color::Black, 2}, | ||
| 1293 | {Decoration::Stone | Decoration::Color::White, 2}}}); | ||
| 1294 | break; | ||
| 1295 | } | ||
| 1296 | case 25: { | ||
| 1297 | generator.setFlag(Generate::StartEdgeOnly); | ||
| 1298 | generator.setFlag(Generate::BigShapes); | ||
| 1299 | generator.setSymbol(Decoration::Exit, 5 * 2, 0); | ||
| 1300 | generator.generate( | ||
| 1301 | 5, 5, | ||
| 1302 | {{{Decoration::Dot_Intersection, 36}, | ||
| 1303 | {Decoration::Poly | Decoration::Color::Yellow, 2}, | ||
| 1304 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1305 | 1}, | ||
| 1306 | {Decoration::Start, 1}}}); | ||
| 1307 | break; | ||
| 1308 | } | ||
| 1309 | case 26: { | ||
| 1310 | generator.setFlag(Generate::StartEdgeOnly); | ||
| 1311 | generator.setFlag(Generate::BigShapes); | ||
| 1312 | generator.setSymbol(Decoration::Exit, 5 * 2, 0); | ||
| 1313 | generator.generate( | ||
| 1314 | 5, 5, | ||
| 1315 | {{{Decoration::Dot_Intersection, 36}, | ||
| 1316 | {Decoration::Poly | Decoration::Color::Yellow, 3}, | ||
| 1317 | {Decoration::Poly | Decoration::Negative | Decoration::Color::Blue, | ||
| 1318 | 2}, | ||
| 1319 | {Decoration::Start, 1}}}); | ||
| 1320 | break; | ||
| 1321 | } | ||
| 807 | } | 1322 | } | 
| 808 | 1323 | ||
| 809 | Rice::String str(generator.AsCode()); | 1324 | Rice::String str(generator.AsCode()); | 
