From 8b5030c4c39f6f7392d1b6b2b7c5e58953c7fb6b Mon Sep 17 00:00:00 2001 From: Arushi Jain Date: Sat, 25 Apr 2026 04:15:00 -0400 Subject: [PATCH] Init commit --- .gitignore | 7 + src/v2/automatic_maze_generation/__init__.py | 0 .../generated_mazes/manifest.json | 2002 ++++++++++++ ...aze_000_sequential_chain_kk_none_1000.json | 854 +++++ ...e_001_winding_corridor_none_none_1001.json | 835 +++++ ...ze_002_dense_maze_sk_wrong_keys1_1002.json | 499 +++ ...uential_chain_sk_dead_end_rooms1_1003.json | 951 ++++++ ...equential_chain_none_wrong_keys1_1004.json | 710 ++++ ..._sequential_chain_ks_wrong_keys2_1005.json | 1107 +++++++ .../maze_006_side_vault_none_none_1006.json | 582 ++++ ...aze_007_winding_corridor_sg_none_1007.json | 867 +++++ ...ze_008_dense_maze_ks_wrong_keys1_1010.json | 563 ++++ .../maze_009_multi_route_none_none_1009.json | 459 +++ ..._dense_maze_kd_distractor_chain1_1011.json | 627 ++++ .../maze_011_side_vault_kd_none_1011.json | 643 ++++ .../maze_012_side_vault_none_none_1012.json | 582 ++++ ..._sequential_chain_sg_wrong_keys1_1013.json | 1078 ++++++ .../maze_014_dense_maze_none_none_1014.json | 491 +++ ...ding_corridor_kd_dead_end_rooms2_1015.json | 772 +++++ ...16_side_vault_sg_dead_end_rooms2_1016.json | 970 ++++++ ...uential_chain_kk_dead_end_rooms1_1017.json | 754 +++++ ...uential_chain_kk_dead_end_rooms1_1018.json | 810 +++++ ...aze_019_winding_corridor_kd_none_1019.json | 640 ++++ ...ng_corridor_none_dead_end_rooms2_1020.json | 739 +++++ .../maze_021_dense_maze_sk_none_1021.json | 656 ++++ ...multi_route_none_dead_end_rooms2_1022.json | 483 +++ ...uential_chain_kk_dead_end_rooms2_1023.json | 742 +++++ ...ding_corridor_kd_dead_end_rooms2_1024.json | 756 +++++ .../maze_025_multi_route_none_none_1025.json | 419 +++ ...ding_corridor_kd_dead_end_rooms2_1026.json | 844 +++++ ...e_027_winding_corridor_none_none_1027.json | 835 +++++ ...uential_chain_sk_dead_end_rooms2_1028.json | 751 +++++ ..._dense_maze_sg_distractor_chain1_1029.json | 768 +++++ ..._winding_corridor_kd_wrong_keys1_1030.json | 775 +++++ .../maze_031_dense_maze_sk_none_1031.json | 512 +++ ..._sequential_chain_kk_wrong_keys2_1032.json | 766 +++++ ...033_multi_route_none_wrong_keys2_1033.json | 459 +++ ...aze_034_winding_corridor_sg_none_1034.json | 643 ++++ ...uential_chain_kd_dead_end_rooms1_1035.json | 615 ++++ ..._sequential_chain_kk_wrong_keys1_1036.json | 813 +++++ ..._winding_corridor_kd_wrong_keys2_1037.json | 776 +++++ ...ng_corridor_none_dead_end_rooms1_1038.json | 691 ++++ .../maze_039_multi_route_none_none_1039.json | 611 ++++ ..._040_side_vault_none_wrong_keys1_1040.json | 790 +++++ ...uential_chain_kd_dead_end_rooms2_1041.json | 615 ++++ .../maze_042_multi_route_none_none_1042.json | 483 +++ ...ze_043_dense_maze_sg_wrong_keys2_1043.json | 560 ++++ ...multi_route_none_dead_end_rooms2_1044.json | 627 ++++ ..._winding_corridor_sg_wrong_keys2_1045.json | 796 +++++ ...uential_chain_sk_dead_end_rooms1_1046.json | 855 +++++ ...ding_corridor_kd_dead_end_rooms2_1047.json | 772 +++++ .../maze_048_side_vault_kd_none_1048.json | 563 ++++ ...49_side_vault_sg_dead_end_rooms2_1050.json | 618 ++++ ...aze_050_winding_corridor_sg_none_1051.json | 775 +++++ ...051_multi_route_none_wrong_keys1_1052.json | 483 +++ ...ze_052_side_vault_kd_wrong_keys2_1053.json | 995 ++++++ ...aze_053_winding_corridor_sg_none_1054.json | 947 ++++++ ...ng_corridor_none_dead_end_rooms1_1055.json | 763 +++++ ...ng_corridor_none_dead_end_rooms1_1056.json | 763 +++++ .../maze_056_dense_maze_sk_none_1057.json | 680 ++++ .../maze_057_side_vault_sg_none_1058.json | 570 ++++ ...inding_corridor_none_wrong_keys1_1059.json | 763 +++++ .../maze_059_multi_route_none_none_1060.json | 403 +++ ...ze_060_dense_maze_sg_wrong_keys1_1061.json | 675 ++++ ...ng_corridor_none_dead_end_rooms1_1062.json | 747 +++++ .../maze_062_multi_route_none_none_1063.json | 771 +++++ ...063_multi_route_none_wrong_keys1_1064.json | 747 +++++ ...aze_064_winding_corridor_kd_none_1065.json | 768 +++++ ..._sequential_chain_sk_wrong_keys2_1066.json | 955 ++++++ ...ding_corridor_kd_dead_end_rooms1_1067.json | 860 +++++ ...aze_067_sequential_chain_ks_none_1068.json | 987 ++++++ .../maze_068_side_vault_sg_none_1069.json | 982 ++++++ .../maze_069_side_vault_sg_none_1070.json | 650 ++++ ...ding_corridor_kd_dead_end_rooms1_1071.json | 928 ++++++ ...aze_071_sequential_chain_ks_none_1072.json | 1103 +++++++ .../maze_072_side_vault_sg_none_1073.json | 870 +++++ ...aze_073_sequential_chain_sg_none_1074.json | 854 +++++ ...e_074_sequential_chain_none_none_1075.json | 818 +++++ .../maze_075_side_vault_none_none_1076.json | 798 +++++ ...ng_corridor_none_dead_end_rooms2_1077.json | 683 ++++ ...ng_corridor_none_dead_end_rooms2_1078.json | 835 +++++ ...ze_078_dense_maze_kk_wrong_keys1_1079.json | 594 ++++ ...uential_chain_sk_dead_end_rooms1_1080.json | 763 +++++ ..._sequential_chain_sg_wrong_keys1_1081.json | 790 +++++ ...081_multi_route_none_wrong_keys1_1082.json | 659 ++++ ...multi_route_none_dead_end_rooms2_1083.json | 643 ++++ ...ding_corridor_sg_dead_end_rooms2_1084.json | 695 ++++ ...ze_084_dense_maze_sk_wrong_keys1_1085.json | 571 ++++ ...ze_085_dense_maze_kk_wrong_keys2_1086.json | 683 ++++ .../maze_086_multi_route_none_none_1087.json | 643 ++++ ..._dense_maze_kk_distractor_chain2_1089.json | 582 ++++ ...ze_088_side_vault_kd_wrong_keys2_1089.json | 763 +++++ ...uential_chain_kd_dead_end_rooms2_1090.json | 767 +++++ ..._090_side_vault_none_wrong_keys2_1091.json | 662 ++++ ...ze_091_dense_maze_sk_wrong_keys2_1097.json | 476 +++ ...ze_092_side_vault_sg_wrong_keys2_1093.json | 867 +++++ ..._dense_maze_kk_distractor_chain2_1098.json | 678 ++++ .../maze_094_multi_route_none_none_1095.json | 403 +++ ...ntial_chain_none_dead_end_rooms2_1096.json | 750 +++++ .../maze_096_dense_maze_none_none_1097.json | 651 ++++ ...multi_route_none_dead_end_rooms2_1098.json | 747 +++++ ...aze_098_sequential_chain_kd_none_1099.json | 1067 ++++++ ...aze_099_winding_corridor_sg_none_1100.json | 771 +++++ ...00_side_vault_kd_dead_end_rooms1_1101.json | 559 ++++ ..._101_side_vault_none_wrong_keys2_1102.json | 582 ++++ ...uential_chain_kk_dead_end_rooms2_1103.json | 858 +++++ ...03_side_vault_kd_dead_end_rooms1_1104.json | 755 +++++ ...ng_corridor_none_dead_end_rooms1_1105.json | 619 ++++ ...uential_chain_ks_dead_end_rooms1_1106.json | 727 +++++ ...multi_route_none_dead_end_rooms2_1107.json | 747 +++++ ...107_multi_route_none_wrong_keys2_1108.json | 659 ++++ ...ntial_chain_none_dead_end_rooms1_1109.json | 1042 ++++++ ..._sequential_chain_kd_wrong_keys1_1110.json | 858 +++++ .../maze_110_multi_route_none_none_1111.json | 747 +++++ ..._side_vault_none_dead_end_rooms1_1112.json | 578 ++++ ...e_112_winding_corridor_none_none_1113.json | 763 +++++ ...ze_113_dense_maze_sg_wrong_keys2_1114.json | 836 +++++ .../maze_114_side_vault_kd_none_1115.json | 567 ++++ ...ze_115_dense_maze_ks_wrong_keys1_1119.json | 487 +++ ...aze_116_sequential_chain_sk_none_1117.json | 963 ++++++ ...117_multi_route_none_wrong_keys1_1118.json | 571 ++++ ..._winding_corridor_sg_wrong_keys1_1119.json | 715 ++++ .../maze_119_dense_maze_kk_none_1122.json | 487 +++ .../maze_120_dense_maze_sk_none_1122.json | 564 ++++ ...aze_121_sequential_chain_sk_none_1122.json | 959 ++++++ ...ze_122_side_vault_kd_wrong_keys1_1123.json | 730 +++++ ..._winding_corridor_kd_wrong_keys2_1124.json | 792 +++++ ...multi_route_none_dead_end_rooms2_1125.json | 515 +++ .../maze_125_side_vault_none_none_1126.json | 594 ++++ ...uential_chain_kd_dead_end_rooms1_1127.json | 727 +++++ ...aze_127_winding_corridor_sg_none_1128.json | 707 ++++ ...aze_128_sequential_chain_sg_none_1129.json | 1078 ++++++ ..._dense_maze_sg_distractor_chain2_1130.json | 584 ++++ ...aze_130_winding_corridor_sg_none_1132.json | 863 +++++ .../maze_131_dense_maze_kd_none_1132.json | 640 ++++ ...uential_chain_ks_dead_end_rooms1_1133.json | 807 +++++ ...aze_133_winding_corridor_sg_none_1134.json | 867 +++++ .../maze_134_dense_maze_ks_none_1135.json | 624 ++++ ...ng_corridor_none_dead_end_rooms2_1136.json | 759 +++++ ...aze_136_sequential_chain_sk_none_1137.json | 995 ++++++ ...ze_137_side_vault_sg_wrong_keys2_1138.json | 639 ++++ ...aze_138_winding_corridor_kd_none_1139.json | 784 +++++ .../maze_139_side_vault_sg_none_1140.json | 990 ++++++ ...aze_140_sequential_chain_kd_none_1141.json | 707 ++++ ...ng_corridor_none_dead_end_rooms2_1142.json | 683 ++++ ...multi_route_none_dead_end_rooms2_1143.json | 539 +++ ...ze_143_dense_maze_ks_wrong_keys2_1144.json | 588 ++++ ...144_multi_route_none_wrong_keys2_1145.json | 731 +++++ ...multi_route_none_dead_end_rooms2_1147.json | 731 +++++ ..._sequential_chain_sg_wrong_keys1_1148.json | 974 ++++++ ..._dense_maze_kd_distractor_chain2_1151.json | 643 ++++ ...multi_route_none_dead_end_rooms1_1150.json | 467 +++ ...149_multi_route_none_wrong_keys1_1151.json | 555 ++++ ..._dense_maze_sk_distractor_chain1_1153.json | 591 ++++ ..._winding_corridor_kd_wrong_keys2_1154.json | 776 +++++ .../maze_152_dense_maze_none_none_1154.json | 651 ++++ ...153_multi_route_none_wrong_keys2_1155.json | 467 +++ ..._154_dense_maze_none_wrong_keys2_1156.json | 651 ++++ ..._dense_maze_ks_distractor_chain1_1163.json | 651 ++++ .../maze_156_side_vault_none_none_1158.json | 690 ++++ ...multi_route_none_dead_end_rooms2_1159.json | 483 +++ ...uential_chain_kd_dead_end_rooms2_1160.json | 951 ++++++ ..._dense_maze_sg_distractor_chain1_1163.json | 600 ++++ ...e_160_sequential_chain_none_none_1162.json | 670 ++++ ...ng_corridor_none_dead_end_rooms2_1163.json | 691 ++++ .../maze_162_multi_route_none_none_1164.json | 419 +++ ...163_multi_route_none_wrong_keys2_1165.json | 579 ++++ ...ding_corridor_sg_dead_end_rooms1_1166.json | 783 +++++ ...multi_route_none_dead_end_rooms1_1167.json | 403 +++ .../maze_166_dense_maze_sk_none_1168.json | 768 +++++ ...aze_167_winding_corridor_sg_none_1169.json | 867 +++++ ...e_168_winding_corridor_none_none_1170.json | 691 ++++ ...aze_169_sequential_chain_ks_none_1171.json | 819 +++++ ...ze_170_dense_maze_sk_wrong_keys2_1172.json | 536 +++ ..._sequential_chain_kd_wrong_keys2_1173.json | 1075 ++++++ ...multi_route_none_dead_end_rooms2_1174.json | 771 +++++ ..._sequential_chain_sk_wrong_keys2_1175.json | 867 +++++ .../maze_174_dense_maze_kd_none_1176.json | 532 +++ ..._sequential_chain_sg_wrong_keys2_1177.json | 639 ++++ ...ze_176_dense_maze_ks_wrong_keys2_1180.json | 624 ++++ .../maze_177_dense_maze_none_none_1179.json | 691 ++++ ..._side_vault_none_dead_end_rooms1_1181.json | 790 +++++ ...179_multi_route_none_wrong_keys1_1182.json | 483 +++ .../maze_180_side_vault_sg_none_1183.json | 854 +++++ ...ze_181_dense_maze_kd_wrong_keys1_1184.json | 519 +++ .../maze_182_side_vault_none_none_1185.json | 798 +++++ ...ze_183_side_vault_kd_wrong_keys1_1186.json | 730 +++++ ..._184_side_vault_none_wrong_keys2_1187.json | 582 ++++ .../maze_185_dense_maze_sk_none_1188.json | 616 ++++ ..._dense_maze_kk_distractor_chain2_1191.json | 694 ++++ ..._sequential_chain_sk_wrong_keys1_1190.json | 770 +++++ ...uential_chain_sg_dead_end_rooms1_1191.json | 622 ++++ ...89_side_vault_kd_dead_end_rooms1_1192.json | 659 ++++ ...ze_190_side_vault_sg_wrong_keys2_1193.json | 887 +++++ .../maze_191_side_vault_sg_none_1194.json | 566 ++++ ...92_side_vault_kd_dead_end_rooms1_1195.json | 723 +++++ ...multi_route_none_dead_end_rooms2_1196.json | 747 +++++ ...194_multi_route_none_wrong_keys2_1197.json | 419 +++ ...95_side_vault_sg_dead_end_rooms1_1198.json | 982 ++++++ ..._winding_corridor_sg_wrong_keys1_1199.json | 715 ++++ ...97_side_vault_sg_dead_end_rooms1_1200.json | 982 ++++++ .../maze_198_multi_route_none_none_1201.json | 483 +++ ...99_side_vault_kd_dead_end_rooms1_1202.json | 659 ++++ ...maze_000_sequential_chain_kk_none_1000.png | Bin 0 -> 23785 bytes ...ze_001_winding_corridor_none_none_1001.png | Bin 0 -> 19555 bytes ...aze_002_dense_maze_sk_wrong_keys1_1002.png | Bin 0 -> 20541 bytes ...quential_chain_sk_dead_end_rooms1_1003.png | Bin 0 -> 24266 bytes ...sequential_chain_none_wrong_keys1_1004.png | Bin 0 -> 15940 bytes ...5_sequential_chain_ks_wrong_keys2_1005.png | Bin 0 -> 30432 bytes .../maze_006_side_vault_none_none_1006.png | Bin 0 -> 13927 bytes ...maze_007_winding_corridor_sg_none_1007.png | Bin 0 -> 20421 bytes ...aze_008_dense_maze_ks_wrong_keys1_1010.png | Bin 0 -> 24086 bytes .../maze_009_multi_route_none_none_1009.png | Bin 0 -> 14138 bytes ...0_dense_maze_kd_distractor_chain1_1011.png | Bin 0 -> 21892 bytes .../pngs/maze_011_side_vault_kd_none_1011.png | Bin 0 -> 16570 bytes .../maze_012_side_vault_none_none_1012.png | Bin 0 -> 13567 bytes ...3_sequential_chain_sg_wrong_keys1_1013.png | Bin 0 -> 24655 bytes .../maze_014_dense_maze_none_none_1014.png | Bin 0 -> 14779 bytes ...nding_corridor_kd_dead_end_rooms2_1015.png | Bin 0 -> 21829 bytes ...016_side_vault_sg_dead_end_rooms2_1016.png | Bin 0 -> 19220 bytes ...quential_chain_kk_dead_end_rooms1_1017.png | Bin 0 -> 21973 bytes ...quential_chain_kk_dead_end_rooms1_1018.png | Bin 0 -> 24278 bytes ...maze_019_winding_corridor_kd_none_1019.png | Bin 0 -> 20129 bytes ...ing_corridor_none_dead_end_rooms2_1020.png | Bin 0 -> 18543 bytes .../pngs/maze_021_dense_maze_sk_none_1021.png | Bin 0 -> 21904 bytes ..._multi_route_none_dead_end_rooms2_1022.png | Bin 0 -> 13469 bytes ...quential_chain_kk_dead_end_rooms2_1023.png | Bin 0 -> 22757 bytes ...nding_corridor_kd_dead_end_rooms2_1024.png | Bin 0 -> 22276 bytes .../maze_025_multi_route_none_none_1025.png | Bin 0 -> 12301 bytes ...nding_corridor_kd_dead_end_rooms2_1026.png | Bin 0 -> 23538 bytes ...ze_027_winding_corridor_none_none_1027.png | Bin 0 -> 18421 bytes ...quential_chain_sk_dead_end_rooms2_1028.png | Bin 0 -> 21152 bytes ...9_dense_maze_sg_distractor_chain1_1029.png | Bin 0 -> 24054 bytes ...0_winding_corridor_kd_wrong_keys1_1030.png | Bin 0 -> 24853 bytes .../pngs/maze_031_dense_maze_sk_none_1031.png | Bin 0 -> 18795 bytes ...2_sequential_chain_kk_wrong_keys2_1032.png | Bin 0 -> 27171 bytes ..._033_multi_route_none_wrong_keys2_1033.png | Bin 0 -> 14015 bytes ...maze_034_winding_corridor_sg_none_1034.png | Bin 0 -> 17575 bytes ...quential_chain_kd_dead_end_rooms1_1035.png | Bin 0 -> 18144 bytes ...6_sequential_chain_kk_wrong_keys1_1036.png | Bin 0 -> 27003 bytes ...7_winding_corridor_kd_wrong_keys2_1037.png | Bin 0 -> 26190 bytes ...ing_corridor_none_dead_end_rooms1_1038.png | Bin 0 -> 16752 bytes .../maze_039_multi_route_none_none_1039.png | Bin 0 -> 15717 bytes ...e_040_side_vault_none_wrong_keys1_1040.png | Bin 0 -> 16168 bytes ...quential_chain_kd_dead_end_rooms2_1041.png | Bin 0 -> 18050 bytes .../maze_042_multi_route_none_none_1042.png | Bin 0 -> 13836 bytes ...aze_043_dense_maze_sg_wrong_keys2_1043.png | Bin 0 -> 21702 bytes ..._multi_route_none_dead_end_rooms2_1044.png | Bin 0 -> 16355 bytes ...5_winding_corridor_sg_wrong_keys2_1045.png | Bin 0 -> 25785 bytes ...quential_chain_sk_dead_end_rooms1_1046.png | Bin 0 -> 22464 bytes ...nding_corridor_kd_dead_end_rooms2_1047.png | Bin 0 -> 21151 bytes .../pngs/maze_048_side_vault_kd_none_1048.png | Bin 0 -> 15609 bytes ...049_side_vault_sg_dead_end_rooms2_1050.png | Bin 0 -> 15671 bytes ...maze_050_winding_corridor_sg_none_1051.png | Bin 0 -> 19899 bytes ..._051_multi_route_none_wrong_keys1_1052.png | Bin 0 -> 13832 bytes ...aze_052_side_vault_kd_wrong_keys2_1053.png | Bin 0 -> 25804 bytes ...maze_053_winding_corridor_sg_none_1054.png | Bin 0 -> 21486 bytes ...ing_corridor_none_dead_end_rooms1_1055.png | Bin 0 -> 18259 bytes ...ing_corridor_none_dead_end_rooms1_1056.png | Bin 0 -> 19172 bytes .../pngs/maze_056_dense_maze_sk_none_1057.png | Bin 0 -> 21294 bytes .../pngs/maze_057_side_vault_sg_none_1058.png | Bin 0 -> 14277 bytes ...winding_corridor_none_wrong_keys1_1059.png | Bin 0 -> 18200 bytes .../maze_059_multi_route_none_none_1060.png | Bin 0 -> 12542 bytes ...aze_060_dense_maze_sg_wrong_keys1_1061.png | Bin 0 -> 21235 bytes ...ing_corridor_none_dead_end_rooms1_1062.png | Bin 0 -> 17827 bytes .../maze_062_multi_route_none_none_1063.png | Bin 0 -> 17752 bytes ..._063_multi_route_none_wrong_keys1_1064.png | Bin 0 -> 16147 bytes ...maze_064_winding_corridor_kd_none_1065.png | Bin 0 -> 21813 bytes ...5_sequential_chain_sk_wrong_keys2_1066.png | Bin 0 -> 29092 bytes ...nding_corridor_kd_dead_end_rooms1_1067.png | Bin 0 -> 22804 bytes ...maze_067_sequential_chain_ks_none_1068.png | Bin 0 -> 23942 bytes .../pngs/maze_068_side_vault_sg_none_1069.png | Bin 0 -> 19512 bytes .../pngs/maze_069_side_vault_sg_none_1070.png | Bin 0 -> 15688 bytes ...nding_corridor_kd_dead_end_rooms1_1071.png | Bin 0 -> 23350 bytes ...maze_071_sequential_chain_ks_none_1072.png | Bin 0 -> 25317 bytes .../pngs/maze_072_side_vault_sg_none_1073.png | Bin 0 -> 17407 bytes ...maze_073_sequential_chain_sg_none_1074.png | Bin 0 -> 18611 bytes ...ze_074_sequential_chain_none_none_1075.png | Bin 0 -> 16831 bytes .../maze_075_side_vault_none_none_1076.png | Bin 0 -> 15670 bytes ...ing_corridor_none_dead_end_rooms2_1077.png | Bin 0 -> 17688 bytes ...ing_corridor_none_dead_end_rooms2_1078.png | Bin 0 -> 19532 bytes ...aze_078_dense_maze_kk_wrong_keys1_1079.png | Bin 0 -> 25421 bytes ...quential_chain_sk_dead_end_rooms1_1080.png | Bin 0 -> 21197 bytes ...0_sequential_chain_sg_wrong_keys1_1081.png | Bin 0 -> 22221 bytes ..._081_multi_route_none_wrong_keys1_1082.png | Bin 0 -> 16539 bytes ..._multi_route_none_dead_end_rooms2_1083.png | Bin 0 -> 15522 bytes ...nding_corridor_sg_dead_end_rooms2_1084.png | Bin 0 -> 18916 bytes ...aze_084_dense_maze_sk_wrong_keys1_1085.png | Bin 0 -> 22212 bytes ...aze_085_dense_maze_kk_wrong_keys2_1086.png | Bin 0 -> 29522 bytes .../maze_086_multi_route_none_none_1087.png | Bin 0 -> 15380 bytes ...7_dense_maze_kk_distractor_chain2_1089.png | Bin 0 -> 24732 bytes ...aze_088_side_vault_kd_wrong_keys2_1089.png | Bin 0 -> 23311 bytes ...quential_chain_kd_dead_end_rooms2_1090.png | Bin 0 -> 21245 bytes ...e_090_side_vault_none_wrong_keys2_1091.png | Bin 0 -> 15004 bytes ...aze_091_dense_maze_sk_wrong_keys2_1097.png | Bin 0 -> 23003 bytes ...aze_092_side_vault_sg_wrong_keys2_1093.png | Bin 0 -> 23454 bytes ...3_dense_maze_kk_distractor_chain2_1098.png | Bin 0 -> 27629 bytes .../maze_094_multi_route_none_none_1095.png | Bin 0 -> 12428 bytes ...ential_chain_none_dead_end_rooms2_1096.png | Bin 0 -> 18076 bytes .../maze_096_dense_maze_none_none_1097.png | Bin 0 -> 17299 bytes ..._multi_route_none_dead_end_rooms2_1098.png | Bin 0 -> 18018 bytes ...maze_098_sequential_chain_kd_none_1099.png | Bin 0 -> 23684 bytes ...maze_099_winding_corridor_sg_none_1100.png | Bin 0 -> 20112 bytes ...100_side_vault_kd_dead_end_rooms1_1101.png | Bin 0 -> 14983 bytes ...e_101_side_vault_none_wrong_keys2_1102.png | Bin 0 -> 13549 bytes ...quential_chain_kk_dead_end_rooms2_1103.png | Bin 0 -> 23140 bytes ...103_side_vault_kd_dead_end_rooms1_1104.png | Bin 0 -> 17694 bytes ...ing_corridor_none_dead_end_rooms1_1105.png | Bin 0 -> 16639 bytes ...quential_chain_ks_dead_end_rooms1_1106.png | Bin 0 -> 21250 bytes ..._multi_route_none_dead_end_rooms2_1107.png | Bin 0 -> 17270 bytes ..._107_multi_route_none_wrong_keys2_1108.png | Bin 0 -> 15773 bytes ...ential_chain_none_dead_end_rooms1_1109.png | Bin 0 -> 20239 bytes ...9_sequential_chain_kd_wrong_keys1_1110.png | Bin 0 -> 22391 bytes .../maze_110_multi_route_none_none_1111.png | Bin 0 -> 15248 bytes ...1_side_vault_none_dead_end_rooms1_1112.png | Bin 0 -> 13287 bytes ...ze_112_winding_corridor_none_none_1113.png | Bin 0 -> 16575 bytes ...aze_113_dense_maze_sg_wrong_keys2_1114.png | Bin 0 -> 26287 bytes .../pngs/maze_114_side_vault_kd_none_1115.png | Bin 0 -> 14917 bytes ...aze_115_dense_maze_ks_wrong_keys1_1119.png | Bin 0 -> 20134 bytes ...maze_116_sequential_chain_sk_none_1117.png | Bin 0 -> 23399 bytes ..._117_multi_route_none_wrong_keys1_1118.png | Bin 0 -> 13847 bytes ...8_winding_corridor_sg_wrong_keys1_1119.png | Bin 0 -> 21764 bytes .../pngs/maze_119_dense_maze_kk_none_1122.png | Bin 0 -> 20593 bytes .../pngs/maze_120_dense_maze_sk_none_1122.png | Bin 0 -> 21158 bytes ...maze_121_sequential_chain_sk_none_1122.png | Bin 0 -> 23389 bytes ...aze_122_side_vault_kd_wrong_keys1_1123.png | Bin 0 -> 20687 bytes ...3_winding_corridor_kd_wrong_keys2_1124.png | Bin 0 -> 24911 bytes ..._multi_route_none_dead_end_rooms2_1125.png | Bin 0 -> 14846 bytes .../maze_125_side_vault_none_none_1126.png | Bin 0 -> 13035 bytes ...quential_chain_kd_dead_end_rooms1_1127.png | Bin 0 -> 18793 bytes ...maze_127_winding_corridor_sg_none_1128.png | Bin 0 -> 18698 bytes ...maze_128_sequential_chain_sg_none_1129.png | Bin 0 -> 22077 bytes ...9_dense_maze_sg_distractor_chain2_1130.png | Bin 0 -> 20504 bytes ...maze_130_winding_corridor_sg_none_1132.png | Bin 0 -> 20140 bytes .../pngs/maze_131_dense_maze_kd_none_1132.png | Bin 0 -> 19791 bytes ...quential_chain_ks_dead_end_rooms1_1133.png | Bin 0 -> 22690 bytes ...maze_133_winding_corridor_sg_none_1134.png | Bin 0 -> 20482 bytes .../pngs/maze_134_dense_maze_ks_none_1135.png | Bin 0 -> 20300 bytes ...ing_corridor_none_dead_end_rooms2_1136.png | Bin 0 -> 17487 bytes ...maze_136_sequential_chain_sk_none_1137.png | Bin 0 -> 23434 bytes ...aze_137_side_vault_sg_wrong_keys2_1138.png | Bin 0 -> 20617 bytes ...maze_138_winding_corridor_kd_none_1139.png | Bin 0 -> 20348 bytes .../pngs/maze_139_side_vault_sg_none_1140.png | Bin 0 -> 18918 bytes ...maze_140_sequential_chain_kd_none_1141.png | Bin 0 -> 19045 bytes ...ing_corridor_none_dead_end_rooms2_1142.png | Bin 0 -> 18030 bytes ..._multi_route_none_dead_end_rooms2_1143.png | Bin 0 -> 13974 bytes ...aze_143_dense_maze_ks_wrong_keys2_1144.png | Bin 0 -> 24403 bytes ..._144_multi_route_none_wrong_keys2_1145.png | Bin 0 -> 16230 bytes ..._multi_route_none_dead_end_rooms2_1147.png | Bin 0 -> 16126 bytes ...6_sequential_chain_sg_wrong_keys1_1148.png | Bin 0 -> 23010 bytes ...7_dense_maze_kd_distractor_chain2_1151.png | Bin 0 -> 21684 bytes ..._multi_route_none_dead_end_rooms1_1150.png | Bin 0 -> 12424 bytes ..._149_multi_route_none_wrong_keys1_1151.png | Bin 0 -> 14666 bytes ...0_dense_maze_sk_distractor_chain1_1153.png | Bin 0 -> 23333 bytes ...1_winding_corridor_kd_wrong_keys2_1154.png | Bin 0 -> 26995 bytes .../maze_152_dense_maze_none_none_1154.png | Bin 0 -> 17050 bytes ..._153_multi_route_none_wrong_keys2_1155.png | Bin 0 -> 12319 bytes ...e_154_dense_maze_none_wrong_keys2_1156.png | Bin 0 -> 16657 bytes ...5_dense_maze_ks_distractor_chain1_1163.png | Bin 0 -> 22330 bytes .../maze_156_side_vault_none_none_1158.png | Bin 0 -> 14618 bytes ..._multi_route_none_dead_end_rooms2_1159.png | Bin 0 -> 13498 bytes ...quential_chain_kd_dead_end_rooms2_1160.png | Bin 0 -> 21973 bytes ...9_dense_maze_sg_distractor_chain1_1163.png | Bin 0 -> 19590 bytes ...ze_160_sequential_chain_none_none_1162.png | Bin 0 -> 16209 bytes ...ing_corridor_none_dead_end_rooms2_1163.png | Bin 0 -> 16370 bytes .../maze_162_multi_route_none_none_1164.png | Bin 0 -> 12033 bytes ..._163_multi_route_none_wrong_keys2_1165.png | Bin 0 -> 13894 bytes ...nding_corridor_sg_dead_end_rooms1_1166.png | Bin 0 -> 19687 bytes ..._multi_route_none_dead_end_rooms1_1167.png | Bin 0 -> 12074 bytes .../pngs/maze_166_dense_maze_sk_none_1168.png | Bin 0 -> 24194 bytes ...maze_167_winding_corridor_sg_none_1169.png | Bin 0 -> 21321 bytes ...ze_168_winding_corridor_none_none_1170.png | Bin 0 -> 17394 bytes ...maze_169_sequential_chain_ks_none_1171.png | Bin 0 -> 22357 bytes ...aze_170_dense_maze_sk_wrong_keys2_1172.png | Bin 0 -> 22723 bytes ...1_sequential_chain_kd_wrong_keys2_1173.png | Bin 0 -> 28212 bytes ..._multi_route_none_dead_end_rooms2_1174.png | Bin 0 -> 16924 bytes ...3_sequential_chain_sk_wrong_keys2_1175.png | Bin 0 -> 27138 bytes .../pngs/maze_174_dense_maze_kd_none_1176.png | Bin 0 -> 19092 bytes ...5_sequential_chain_sg_wrong_keys2_1177.png | Bin 0 -> 21424 bytes ...aze_176_dense_maze_ks_wrong_keys2_1180.png | Bin 0 -> 25692 bytes .../maze_177_dense_maze_none_none_1179.png | Bin 0 -> 18526 bytes ...8_side_vault_none_dead_end_rooms1_1181.png | Bin 0 -> 15829 bytes ..._179_multi_route_none_wrong_keys1_1182.png | Bin 0 -> 13570 bytes .../pngs/maze_180_side_vault_sg_none_1183.png | Bin 0 -> 18053 bytes ...aze_181_dense_maze_kd_wrong_keys1_1184.png | Bin 0 -> 19683 bytes .../maze_182_side_vault_none_none_1185.png | Bin 0 -> 15401 bytes ...aze_183_side_vault_kd_wrong_keys1_1186.png | Bin 0 -> 20990 bytes ...e_184_side_vault_none_wrong_keys2_1187.png | Bin 0 -> 13569 bytes .../pngs/maze_185_dense_maze_sk_none_1188.png | Bin 0 -> 20704 bytes ...6_dense_maze_kk_distractor_chain2_1191.png | Bin 0 -> 25725 bytes ...7_sequential_chain_sk_wrong_keys1_1190.png | Bin 0 -> 23353 bytes ...quential_chain_sg_dead_end_rooms1_1191.png | Bin 0 -> 16533 bytes ...189_side_vault_kd_dead_end_rooms1_1192.png | Bin 0 -> 16275 bytes ...aze_190_side_vault_sg_wrong_keys2_1193.png | Bin 0 -> 22573 bytes .../pngs/maze_191_side_vault_sg_none_1194.png | Bin 0 -> 13838 bytes ...192_side_vault_kd_dead_end_rooms1_1195.png | Bin 0 -> 18202 bytes ..._multi_route_none_dead_end_rooms2_1196.png | Bin 0 -> 17623 bytes ..._194_multi_route_none_wrong_keys2_1197.png | Bin 0 -> 12070 bytes ...195_side_vault_sg_dead_end_rooms1_1198.png | Bin 0 -> 19264 bytes ...6_winding_corridor_sg_wrong_keys1_1199.png | Bin 0 -> 21943 bytes ...197_side_vault_sg_dead_end_rooms1_1200.png | Bin 0 -> 19375 bytes .../maze_198_multi_route_none_none_1201.png | Bin 0 -> 13671 bytes ...199_side_vault_kd_dead_end_rooms1_1202.png | Bin 0 -> 16441 bytes .../mazegen/__init__.py | 0 .../mazegen/generate_dataset.py | 137 + .../mazegen/generators.py | 485 +++ .../mazegen/mechanisms.py | 287 ++ .../mazegen/models.py | 202 ++ .../mazegen/orchestrator.py | 307 ++ .../mazegen/smoke_tests.py | 610 ++++ .../mazegen/solver.py | 261 ++ .../mazegen/validator.py | 148 + .../render_dataset.py | 381 +++ src/v2/nlu_pipeline/__init__.py | 0 src/v2/nlu_pipeline/nlu_benchmark/__init__.py | 1 + src/v2/nlu_pipeline/nlu_benchmark/agents.py | 128 + src/v2/nlu_pipeline/nlu_benchmark/config.py | 38 + src/v2/nlu_pipeline/nlu_benchmark/env.py | 216 ++ .../nlu_benchmark/examples/run_llm.py | 17 + .../nlu_benchmark/examples/run_local_llm.py | 15 + .../nlu_benchmark/examples/run_random.py | 9 + src/v2/nlu_pipeline/nlu_benchmark/feedback.py | 39 + src/v2/nlu_pipeline/nlu_benchmark/loader.py | 23 + .../nlu_pipeline/nlu_benchmark/observation.py | 92 + src/v2/nlu_pipeline/nlu_benchmark/parser.py | 88 + .../nlu_benchmark/prompt_strategies.py | 196 ++ src/v2/nlu_pipeline/nlu_benchmark/querying.py | 92 + src/v2/nlu_pipeline/nlu_benchmark/renderer.py | 130 + src/v2/nlu_pipeline/nlu_benchmark/runner.py | 219 ++ .../sample mazes/V01_empty_room.json | 52 + .../sample mazes/V02_winding_corridor.json | 258 ++ .../sample mazes/V03_multi_path.json | 255 ++ .../sample mazes/V04_single_key.json | 96 + .../sample mazes/V05_single_switch.json | 99 + .../sample mazes/V06_chain_ks.json | 124 + .../sample mazes/V07_chain_sk.json | 124 + .../sample mazes/V08_chain_kk.json | 119 + .../sample mazes/V09_distractor_simple.json | 126 + .../sample mazes/V10_distractor_chain.json | 122 + .../sample mazes/pngs/V01_empty_room.png | Bin 0 -> 9831 bytes .../pngs/V02_winding_corridor.png | Bin 0 -> 17475 bytes .../sample mazes/pngs/V03_multi_path.png | Bin 0 -> 13946 bytes .../sample mazes/pngs/V04_single_key.png | Bin 0 -> 18676 bytes .../sample mazes/pngs/V05_single_switch.png | Bin 0 -> 17708 bytes .../sample mazes/pngs/V06_chain_ks.png | Bin 0 -> 19823 bytes .../sample mazes/pngs/V07_chain_sk.png | Bin 0 -> 19640 bytes .../sample mazes/pngs/V08_chain_kk.png | Bin 0 -> 21257 bytes .../pngs/V09_distractor_simple.png | Bin 0 -> 26139 bytes .../pngs/V10_distractor_chain.png | Bin 0 -> 22997 bytes .../smoke_tests/analyze_smoke_runner_logs.py | 99 + .../plan.txt | 37 + .../run_log.txt | 37 + .../step_000_reset.png | Bin 0 -> 14994 bytes .../step_001_TURN_RIGHT.png | Bin 0 -> 15028 bytes .../step_002_TURN_RIGHT.png | Bin 0 -> 14999 bytes .../step_003_MOVE_FORWARD.png | Bin 0 -> 14972 bytes .../step_004_MOVE_FORWARD.png | Bin 0 -> 14968 bytes .../step_005_MOVE_FORWARD.png | Bin 0 -> 14956 bytes .../step_006_MOVE_FORWARD.png | Bin 0 -> 14979 bytes .../step_007_TURN_LEFT.png | Bin 0 -> 14949 bytes .../step_008_MOVE_FORWARD.png | Bin 0 -> 14715 bytes .../step_009_TURN_RIGHT.png | Bin 0 -> 14993 bytes .../step_010_MOVE_FORWARD.png | Bin 0 -> 15004 bytes .../step_011_TURN_LEFT.png | Bin 0 -> 14980 bytes .../step_012_MOVE_FORWARD.png | Bin 0 -> 14978 bytes .../step_013_MOVE_FORWARD.png | Bin 0 -> 14967 bytes .../step_014_MOVE_FORWARD.png | Bin 0 -> 14956 bytes .../step_015_MOVE_FORWARD.png | Bin 0 -> 14953 bytes .../step_016_MOVE_FORWARD.png | Bin 0 -> 14992 bytes .../step_017_TURN_LEFT.png | Bin 0 -> 14848 bytes .../step_018_MOVE_FORWARD.png | Bin 0 -> 14488 bytes .../step_019_PICKUP.png | Bin 0 -> 12510 bytes .../step_020_TURN_LEFT.png | Bin 0 -> 12492 bytes .../step_021_MOVE_FORWARD.png | Bin 0 -> 12494 bytes .../step_022_MOVE_FORWARD.png | Bin 0 -> 12200 bytes .../step_023_TURN_LEFT.png | Bin 0 -> 12552 bytes .../step_024_MOVE_FORWARD.png | Bin 0 -> 12542 bytes .../step_025_TURN_RIGHT.png | Bin 0 -> 12507 bytes .../step_026_MOVE_FORWARD.png | Bin 0 -> 12501 bytes .../step_027_MOVE_FORWARD.png | Bin 0 -> 12484 bytes .../step_028_MOVE_FORWARD.png | Bin 0 -> 12469 bytes .../step_029_MOVE_FORWARD.png | Bin 0 -> 12477 bytes .../step_030_TURN_LEFT.png | Bin 0 -> 12527 bytes .../step_031_MOVE_FORWARD.png | Bin 0 -> 12518 bytes .../step_032_MOVE_FORWARD.png | Bin 0 -> 12579 bytes .../step_033_MOVE_FORWARD.png | Bin 0 -> 12145 bytes .../step_034_MOVE_FORWARD.png | Bin 0 -> 12138 bytes .../step_035_MOVE_FORWARD.png | Bin 0 -> 12158 bytes .../step_036_MOVE_FORWARD.png | Bin 0 -> 12137 bytes .../plan.txt | 39 + .../run_log.txt | 39 + .../step_000_reset.png | Bin 0 -> 19491 bytes .../step_001_TURN_RIGHT.png | Bin 0 -> 19508 bytes .../step_002_TURN_RIGHT.png | Bin 0 -> 19514 bytes .../step_003_MOVE_FORWARD.png | Bin 0 -> 19465 bytes .../step_004_MOVE_FORWARD.png | Bin 0 -> 19477 bytes .../step_005_MOVE_FORWARD.png | Bin 0 -> 19438 bytes .../step_006_MOVE_FORWARD.png | Bin 0 -> 19433 bytes .../step_007_TURN_LEFT.png | Bin 0 -> 19400 bytes .../step_008_MOVE_FORWARD.png | Bin 0 -> 19133 bytes .../step_009_TURN_RIGHT.png | Bin 0 -> 19409 bytes .../step_010_MOVE_FORWARD.png | Bin 0 -> 19472 bytes .../step_011_TURN_LEFT.png | Bin 0 -> 19441 bytes .../step_012_MOVE_FORWARD.png | Bin 0 -> 19465 bytes .../step_013_MOVE_FORWARD.png | Bin 0 -> 19433 bytes .../step_014_MOVE_FORWARD.png | Bin 0 -> 19425 bytes .../step_015_MOVE_FORWARD.png | Bin 0 -> 19451 bytes .../step_016_MOVE_FORWARD.png | Bin 0 -> 19449 bytes .../step_017_TURN_LEFT.png | Bin 0 -> 19283 bytes .../step_018_MOVE_FORWARD.png | Bin 0 -> 18996 bytes .../step_019_PICKUP.png | Bin 0 -> 16950 bytes .../step_020_TURN_LEFT.png | Bin 0 -> 16958 bytes .../step_021_MOVE_FORWARD.png | Bin 0 -> 16896 bytes .../step_022_MOVE_FORWARD.png | Bin 0 -> 16636 bytes .../step_023_TURN_LEFT.png | Bin 0 -> 16944 bytes .../step_024_MOVE_FORWARD.png | Bin 0 -> 16951 bytes .../step_025_TURN_RIGHT.png | Bin 0 -> 16952 bytes .../step_026_MOVE_FORWARD.png | Bin 0 -> 16938 bytes .../step_027_MOVE_FORWARD.png | Bin 0 -> 16951 bytes .../step_028_MOVE_FORWARD.png | Bin 0 -> 16948 bytes .../step_029_MOVE_FORWARD.png | Bin 0 -> 16921 bytes .../step_030_TURN_LEFT.png | Bin 0 -> 16971 bytes .../step_031_MOVE_FORWARD.png | Bin 0 -> 16923 bytes .../step_032_MOVE_FORWARD.png | Bin 0 -> 16996 bytes .../step_033_MOVE_FORWARD.png | Bin 0 -> 16592 bytes .../step_034_MOVE_FORWARD.png | Bin 0 -> 16573 bytes .../step_035_MOVE_FORWARD.png | Bin 0 -> 16542 bytes .../step_036_MOVE_FORWARD.png | Bin 0 -> 16583 bytes .../step_037_MOVE_FORWARD.png | Bin 0 -> 16627 bytes .../step_038_MOVE_FORWARD.png | Bin 0 -> 16604 bytes .../smoke_runner_matrix/detailed_logs.json | 2889 +++++++++++++++++ .../results/smoke_runner_matrix/report.txt | 15 + .../smoke_prompting_observation_querying.py | 397 +++ .../smoke_tests/smoke_smart_manual.py | 164 + .../nlu_benchmark/terminal_output.txt | 323 ++ 535 files changed, 154241 insertions(+) create mode 100644 .gitignore create mode 100644 src/v2/automatic_maze_generation/__init__.py create mode 100644 src/v2/automatic_maze_generation/generated_mazes/manifest.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_000_sequential_chain_kk_none_1000.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_001_winding_corridor_none_none_1001.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_002_dense_maze_sk_wrong_keys1_1002.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_003_sequential_chain_sk_dead_end_rooms1_1003.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_004_sequential_chain_none_wrong_keys1_1004.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_005_sequential_chain_ks_wrong_keys2_1005.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_006_side_vault_none_none_1006.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_007_winding_corridor_sg_none_1007.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_008_dense_maze_ks_wrong_keys1_1010.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_009_multi_route_none_none_1009.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_010_dense_maze_kd_distractor_chain1_1011.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_011_side_vault_kd_none_1011.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_012_side_vault_none_none_1012.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_013_sequential_chain_sg_wrong_keys1_1013.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_014_dense_maze_none_none_1014.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_015_winding_corridor_kd_dead_end_rooms2_1015.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_016_side_vault_sg_dead_end_rooms2_1016.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_017_sequential_chain_kk_dead_end_rooms1_1017.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_018_sequential_chain_kk_dead_end_rooms1_1018.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_019_winding_corridor_kd_none_1019.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_020_winding_corridor_none_dead_end_rooms2_1020.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_021_dense_maze_sk_none_1021.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_022_multi_route_none_dead_end_rooms2_1022.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_023_sequential_chain_kk_dead_end_rooms2_1023.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_024_winding_corridor_kd_dead_end_rooms2_1024.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_025_multi_route_none_none_1025.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_026_winding_corridor_kd_dead_end_rooms2_1026.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_027_winding_corridor_none_none_1027.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_028_sequential_chain_sk_dead_end_rooms2_1028.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_029_dense_maze_sg_distractor_chain1_1029.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_030_winding_corridor_kd_wrong_keys1_1030.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_031_dense_maze_sk_none_1031.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_032_sequential_chain_kk_wrong_keys2_1032.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_033_multi_route_none_wrong_keys2_1033.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_034_winding_corridor_sg_none_1034.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_035_sequential_chain_kd_dead_end_rooms1_1035.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_036_sequential_chain_kk_wrong_keys1_1036.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_037_winding_corridor_kd_wrong_keys2_1037.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_038_winding_corridor_none_dead_end_rooms1_1038.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_039_multi_route_none_none_1039.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_040_side_vault_none_wrong_keys1_1040.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_041_sequential_chain_kd_dead_end_rooms2_1041.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_042_multi_route_none_none_1042.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_043_dense_maze_sg_wrong_keys2_1043.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_044_multi_route_none_dead_end_rooms2_1044.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_045_winding_corridor_sg_wrong_keys2_1045.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_046_sequential_chain_sk_dead_end_rooms1_1046.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_047_winding_corridor_kd_dead_end_rooms2_1047.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_048_side_vault_kd_none_1048.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_049_side_vault_sg_dead_end_rooms2_1050.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_050_winding_corridor_sg_none_1051.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_051_multi_route_none_wrong_keys1_1052.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_052_side_vault_kd_wrong_keys2_1053.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_053_winding_corridor_sg_none_1054.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_054_winding_corridor_none_dead_end_rooms1_1055.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_055_winding_corridor_none_dead_end_rooms1_1056.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_056_dense_maze_sk_none_1057.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_057_side_vault_sg_none_1058.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_058_winding_corridor_none_wrong_keys1_1059.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_059_multi_route_none_none_1060.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_060_dense_maze_sg_wrong_keys1_1061.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_061_winding_corridor_none_dead_end_rooms1_1062.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_062_multi_route_none_none_1063.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_063_multi_route_none_wrong_keys1_1064.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_064_winding_corridor_kd_none_1065.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_065_sequential_chain_sk_wrong_keys2_1066.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_066_winding_corridor_kd_dead_end_rooms1_1067.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_067_sequential_chain_ks_none_1068.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_068_side_vault_sg_none_1069.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_069_side_vault_sg_none_1070.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_070_winding_corridor_kd_dead_end_rooms1_1071.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_071_sequential_chain_ks_none_1072.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_072_side_vault_sg_none_1073.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_073_sequential_chain_sg_none_1074.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_074_sequential_chain_none_none_1075.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_075_side_vault_none_none_1076.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_076_winding_corridor_none_dead_end_rooms2_1077.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_077_winding_corridor_none_dead_end_rooms2_1078.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_078_dense_maze_kk_wrong_keys1_1079.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_079_sequential_chain_sk_dead_end_rooms1_1080.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_080_sequential_chain_sg_wrong_keys1_1081.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_081_multi_route_none_wrong_keys1_1082.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_082_multi_route_none_dead_end_rooms2_1083.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_083_winding_corridor_sg_dead_end_rooms2_1084.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_084_dense_maze_sk_wrong_keys1_1085.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_085_dense_maze_kk_wrong_keys2_1086.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_086_multi_route_none_none_1087.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_087_dense_maze_kk_distractor_chain2_1089.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_088_side_vault_kd_wrong_keys2_1089.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_089_sequential_chain_kd_dead_end_rooms2_1090.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_090_side_vault_none_wrong_keys2_1091.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_091_dense_maze_sk_wrong_keys2_1097.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_092_side_vault_sg_wrong_keys2_1093.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_093_dense_maze_kk_distractor_chain2_1098.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_094_multi_route_none_none_1095.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_095_sequential_chain_none_dead_end_rooms2_1096.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_096_dense_maze_none_none_1097.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_097_multi_route_none_dead_end_rooms2_1098.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_098_sequential_chain_kd_none_1099.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_099_winding_corridor_sg_none_1100.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_100_side_vault_kd_dead_end_rooms1_1101.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_101_side_vault_none_wrong_keys2_1102.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_102_sequential_chain_kk_dead_end_rooms2_1103.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_103_side_vault_kd_dead_end_rooms1_1104.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_104_winding_corridor_none_dead_end_rooms1_1105.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_105_sequential_chain_ks_dead_end_rooms1_1106.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_106_multi_route_none_dead_end_rooms2_1107.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_107_multi_route_none_wrong_keys2_1108.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_108_sequential_chain_none_dead_end_rooms1_1109.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_109_sequential_chain_kd_wrong_keys1_1110.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_110_multi_route_none_none_1111.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_111_side_vault_none_dead_end_rooms1_1112.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_112_winding_corridor_none_none_1113.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_113_dense_maze_sg_wrong_keys2_1114.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_114_side_vault_kd_none_1115.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_115_dense_maze_ks_wrong_keys1_1119.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_116_sequential_chain_sk_none_1117.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_117_multi_route_none_wrong_keys1_1118.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_118_winding_corridor_sg_wrong_keys1_1119.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_119_dense_maze_kk_none_1122.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_120_dense_maze_sk_none_1122.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_121_sequential_chain_sk_none_1122.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_122_side_vault_kd_wrong_keys1_1123.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_123_winding_corridor_kd_wrong_keys2_1124.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_124_multi_route_none_dead_end_rooms2_1125.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_125_side_vault_none_none_1126.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_126_sequential_chain_kd_dead_end_rooms1_1127.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_127_winding_corridor_sg_none_1128.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_128_sequential_chain_sg_none_1129.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_129_dense_maze_sg_distractor_chain2_1130.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_130_winding_corridor_sg_none_1132.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_131_dense_maze_kd_none_1132.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_132_sequential_chain_ks_dead_end_rooms1_1133.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_133_winding_corridor_sg_none_1134.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_134_dense_maze_ks_none_1135.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_135_winding_corridor_none_dead_end_rooms2_1136.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_136_sequential_chain_sk_none_1137.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_137_side_vault_sg_wrong_keys2_1138.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_138_winding_corridor_kd_none_1139.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_139_side_vault_sg_none_1140.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_140_sequential_chain_kd_none_1141.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_141_winding_corridor_none_dead_end_rooms2_1142.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_142_multi_route_none_dead_end_rooms2_1143.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_143_dense_maze_ks_wrong_keys2_1144.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_144_multi_route_none_wrong_keys2_1145.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_145_multi_route_none_dead_end_rooms2_1147.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_146_sequential_chain_sg_wrong_keys1_1148.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_147_dense_maze_kd_distractor_chain2_1151.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_148_multi_route_none_dead_end_rooms1_1150.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_149_multi_route_none_wrong_keys1_1151.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_150_dense_maze_sk_distractor_chain1_1153.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_151_winding_corridor_kd_wrong_keys2_1154.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_152_dense_maze_none_none_1154.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_153_multi_route_none_wrong_keys2_1155.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_154_dense_maze_none_wrong_keys2_1156.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_155_dense_maze_ks_distractor_chain1_1163.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_156_side_vault_none_none_1158.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_157_multi_route_none_dead_end_rooms2_1159.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_158_sequential_chain_kd_dead_end_rooms2_1160.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_159_dense_maze_sg_distractor_chain1_1163.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_160_sequential_chain_none_none_1162.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_161_winding_corridor_none_dead_end_rooms2_1163.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_162_multi_route_none_none_1164.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_163_multi_route_none_wrong_keys2_1165.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_164_winding_corridor_sg_dead_end_rooms1_1166.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_165_multi_route_none_dead_end_rooms1_1167.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_166_dense_maze_sk_none_1168.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_167_winding_corridor_sg_none_1169.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_168_winding_corridor_none_none_1170.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_169_sequential_chain_ks_none_1171.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_170_dense_maze_sk_wrong_keys2_1172.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_171_sequential_chain_kd_wrong_keys2_1173.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_172_multi_route_none_dead_end_rooms2_1174.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_173_sequential_chain_sk_wrong_keys2_1175.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_174_dense_maze_kd_none_1176.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_175_sequential_chain_sg_wrong_keys2_1177.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_176_dense_maze_ks_wrong_keys2_1180.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_177_dense_maze_none_none_1179.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_178_side_vault_none_dead_end_rooms1_1181.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_179_multi_route_none_wrong_keys1_1182.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_180_side_vault_sg_none_1183.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_181_dense_maze_kd_wrong_keys1_1184.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_182_side_vault_none_none_1185.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_183_side_vault_kd_wrong_keys1_1186.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_184_side_vault_none_wrong_keys2_1187.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_185_dense_maze_sk_none_1188.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_186_dense_maze_kk_distractor_chain2_1191.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_187_sequential_chain_sk_wrong_keys1_1190.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_188_sequential_chain_sg_dead_end_rooms1_1191.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_189_side_vault_kd_dead_end_rooms1_1192.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_190_side_vault_sg_wrong_keys2_1193.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_191_side_vault_sg_none_1194.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_192_side_vault_kd_dead_end_rooms1_1195.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_193_multi_route_none_dead_end_rooms2_1196.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_194_multi_route_none_wrong_keys2_1197.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_195_side_vault_sg_dead_end_rooms1_1198.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_196_winding_corridor_sg_wrong_keys1_1199.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_197_side_vault_sg_dead_end_rooms1_1200.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_198_multi_route_none_none_1201.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/maze_199_side_vault_kd_dead_end_rooms1_1202.json create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_000_sequential_chain_kk_none_1000.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_001_winding_corridor_none_none_1001.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_002_dense_maze_sk_wrong_keys1_1002.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_003_sequential_chain_sk_dead_end_rooms1_1003.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_004_sequential_chain_none_wrong_keys1_1004.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_005_sequential_chain_ks_wrong_keys2_1005.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_006_side_vault_none_none_1006.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_007_winding_corridor_sg_none_1007.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_008_dense_maze_ks_wrong_keys1_1010.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_009_multi_route_none_none_1009.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_010_dense_maze_kd_distractor_chain1_1011.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_011_side_vault_kd_none_1011.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_012_side_vault_none_none_1012.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_013_sequential_chain_sg_wrong_keys1_1013.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_014_dense_maze_none_none_1014.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_015_winding_corridor_kd_dead_end_rooms2_1015.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_016_side_vault_sg_dead_end_rooms2_1016.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_017_sequential_chain_kk_dead_end_rooms1_1017.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_018_sequential_chain_kk_dead_end_rooms1_1018.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_019_winding_corridor_kd_none_1019.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_020_winding_corridor_none_dead_end_rooms2_1020.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_021_dense_maze_sk_none_1021.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_022_multi_route_none_dead_end_rooms2_1022.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_023_sequential_chain_kk_dead_end_rooms2_1023.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_024_winding_corridor_kd_dead_end_rooms2_1024.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_025_multi_route_none_none_1025.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_026_winding_corridor_kd_dead_end_rooms2_1026.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_027_winding_corridor_none_none_1027.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_028_sequential_chain_sk_dead_end_rooms2_1028.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_029_dense_maze_sg_distractor_chain1_1029.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_030_winding_corridor_kd_wrong_keys1_1030.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_031_dense_maze_sk_none_1031.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_032_sequential_chain_kk_wrong_keys2_1032.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_033_multi_route_none_wrong_keys2_1033.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_034_winding_corridor_sg_none_1034.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_035_sequential_chain_kd_dead_end_rooms1_1035.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_036_sequential_chain_kk_wrong_keys1_1036.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_037_winding_corridor_kd_wrong_keys2_1037.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_038_winding_corridor_none_dead_end_rooms1_1038.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_039_multi_route_none_none_1039.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_040_side_vault_none_wrong_keys1_1040.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_041_sequential_chain_kd_dead_end_rooms2_1041.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_042_multi_route_none_none_1042.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_043_dense_maze_sg_wrong_keys2_1043.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_044_multi_route_none_dead_end_rooms2_1044.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_045_winding_corridor_sg_wrong_keys2_1045.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_046_sequential_chain_sk_dead_end_rooms1_1046.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_047_winding_corridor_kd_dead_end_rooms2_1047.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_048_side_vault_kd_none_1048.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_049_side_vault_sg_dead_end_rooms2_1050.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_050_winding_corridor_sg_none_1051.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_051_multi_route_none_wrong_keys1_1052.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_052_side_vault_kd_wrong_keys2_1053.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_053_winding_corridor_sg_none_1054.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_054_winding_corridor_none_dead_end_rooms1_1055.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_055_winding_corridor_none_dead_end_rooms1_1056.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_056_dense_maze_sk_none_1057.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_057_side_vault_sg_none_1058.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_058_winding_corridor_none_wrong_keys1_1059.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_059_multi_route_none_none_1060.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_060_dense_maze_sg_wrong_keys1_1061.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_061_winding_corridor_none_dead_end_rooms1_1062.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_062_multi_route_none_none_1063.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_063_multi_route_none_wrong_keys1_1064.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_064_winding_corridor_kd_none_1065.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_065_sequential_chain_sk_wrong_keys2_1066.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_066_winding_corridor_kd_dead_end_rooms1_1067.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_067_sequential_chain_ks_none_1068.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_068_side_vault_sg_none_1069.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_069_side_vault_sg_none_1070.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_070_winding_corridor_kd_dead_end_rooms1_1071.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_071_sequential_chain_ks_none_1072.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_072_side_vault_sg_none_1073.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_073_sequential_chain_sg_none_1074.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_074_sequential_chain_none_none_1075.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_075_side_vault_none_none_1076.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_076_winding_corridor_none_dead_end_rooms2_1077.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_077_winding_corridor_none_dead_end_rooms2_1078.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_078_dense_maze_kk_wrong_keys1_1079.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_079_sequential_chain_sk_dead_end_rooms1_1080.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_080_sequential_chain_sg_wrong_keys1_1081.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_081_multi_route_none_wrong_keys1_1082.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_082_multi_route_none_dead_end_rooms2_1083.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_083_winding_corridor_sg_dead_end_rooms2_1084.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_084_dense_maze_sk_wrong_keys1_1085.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_085_dense_maze_kk_wrong_keys2_1086.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_086_multi_route_none_none_1087.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_087_dense_maze_kk_distractor_chain2_1089.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_088_side_vault_kd_wrong_keys2_1089.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_089_sequential_chain_kd_dead_end_rooms2_1090.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_090_side_vault_none_wrong_keys2_1091.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_091_dense_maze_sk_wrong_keys2_1097.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_092_side_vault_sg_wrong_keys2_1093.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_093_dense_maze_kk_distractor_chain2_1098.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_094_multi_route_none_none_1095.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_095_sequential_chain_none_dead_end_rooms2_1096.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_096_dense_maze_none_none_1097.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_097_multi_route_none_dead_end_rooms2_1098.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_098_sequential_chain_kd_none_1099.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_099_winding_corridor_sg_none_1100.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_100_side_vault_kd_dead_end_rooms1_1101.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_101_side_vault_none_wrong_keys2_1102.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_102_sequential_chain_kk_dead_end_rooms2_1103.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_103_side_vault_kd_dead_end_rooms1_1104.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_104_winding_corridor_none_dead_end_rooms1_1105.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_105_sequential_chain_ks_dead_end_rooms1_1106.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_106_multi_route_none_dead_end_rooms2_1107.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_107_multi_route_none_wrong_keys2_1108.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_108_sequential_chain_none_dead_end_rooms1_1109.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_109_sequential_chain_kd_wrong_keys1_1110.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_110_multi_route_none_none_1111.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_111_side_vault_none_dead_end_rooms1_1112.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_112_winding_corridor_none_none_1113.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_113_dense_maze_sg_wrong_keys2_1114.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_114_side_vault_kd_none_1115.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_115_dense_maze_ks_wrong_keys1_1119.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_116_sequential_chain_sk_none_1117.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_117_multi_route_none_wrong_keys1_1118.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_118_winding_corridor_sg_wrong_keys1_1119.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_119_dense_maze_kk_none_1122.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_120_dense_maze_sk_none_1122.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_121_sequential_chain_sk_none_1122.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_122_side_vault_kd_wrong_keys1_1123.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_123_winding_corridor_kd_wrong_keys2_1124.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_124_multi_route_none_dead_end_rooms2_1125.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_125_side_vault_none_none_1126.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_126_sequential_chain_kd_dead_end_rooms1_1127.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_127_winding_corridor_sg_none_1128.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_128_sequential_chain_sg_none_1129.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_129_dense_maze_sg_distractor_chain2_1130.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_130_winding_corridor_sg_none_1132.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_131_dense_maze_kd_none_1132.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_132_sequential_chain_ks_dead_end_rooms1_1133.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_133_winding_corridor_sg_none_1134.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_134_dense_maze_ks_none_1135.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_135_winding_corridor_none_dead_end_rooms2_1136.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_136_sequential_chain_sk_none_1137.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_137_side_vault_sg_wrong_keys2_1138.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_138_winding_corridor_kd_none_1139.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_139_side_vault_sg_none_1140.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_140_sequential_chain_kd_none_1141.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_141_winding_corridor_none_dead_end_rooms2_1142.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_142_multi_route_none_dead_end_rooms2_1143.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_143_dense_maze_ks_wrong_keys2_1144.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_144_multi_route_none_wrong_keys2_1145.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_145_multi_route_none_dead_end_rooms2_1147.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_146_sequential_chain_sg_wrong_keys1_1148.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_147_dense_maze_kd_distractor_chain2_1151.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_148_multi_route_none_dead_end_rooms1_1150.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_149_multi_route_none_wrong_keys1_1151.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_150_dense_maze_sk_distractor_chain1_1153.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_151_winding_corridor_kd_wrong_keys2_1154.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_152_dense_maze_none_none_1154.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_153_multi_route_none_wrong_keys2_1155.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_154_dense_maze_none_wrong_keys2_1156.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_155_dense_maze_ks_distractor_chain1_1163.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_156_side_vault_none_none_1158.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_157_multi_route_none_dead_end_rooms2_1159.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_158_sequential_chain_kd_dead_end_rooms2_1160.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_159_dense_maze_sg_distractor_chain1_1163.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_160_sequential_chain_none_none_1162.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_161_winding_corridor_none_dead_end_rooms2_1163.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_162_multi_route_none_none_1164.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_163_multi_route_none_wrong_keys2_1165.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_164_winding_corridor_sg_dead_end_rooms1_1166.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_165_multi_route_none_dead_end_rooms1_1167.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_166_dense_maze_sk_none_1168.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_167_winding_corridor_sg_none_1169.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_168_winding_corridor_none_none_1170.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_169_sequential_chain_ks_none_1171.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_170_dense_maze_sk_wrong_keys2_1172.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_171_sequential_chain_kd_wrong_keys2_1173.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_172_multi_route_none_dead_end_rooms2_1174.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_173_sequential_chain_sk_wrong_keys2_1175.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_174_dense_maze_kd_none_1176.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_175_sequential_chain_sg_wrong_keys2_1177.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_176_dense_maze_ks_wrong_keys2_1180.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_177_dense_maze_none_none_1179.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_178_side_vault_none_dead_end_rooms1_1181.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_179_multi_route_none_wrong_keys1_1182.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_180_side_vault_sg_none_1183.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_181_dense_maze_kd_wrong_keys1_1184.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_182_side_vault_none_none_1185.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_183_side_vault_kd_wrong_keys1_1186.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_184_side_vault_none_wrong_keys2_1187.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_185_dense_maze_sk_none_1188.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_186_dense_maze_kk_distractor_chain2_1191.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_187_sequential_chain_sk_wrong_keys1_1190.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_188_sequential_chain_sg_dead_end_rooms1_1191.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_189_side_vault_kd_dead_end_rooms1_1192.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_190_side_vault_sg_wrong_keys2_1193.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_191_side_vault_sg_none_1194.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_192_side_vault_kd_dead_end_rooms1_1195.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_193_multi_route_none_dead_end_rooms2_1196.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_194_multi_route_none_wrong_keys2_1197.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_195_side_vault_sg_dead_end_rooms1_1198.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_196_winding_corridor_sg_wrong_keys1_1199.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_197_side_vault_sg_dead_end_rooms1_1200.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_198_multi_route_none_none_1201.png create mode 100644 src/v2/automatic_maze_generation/generated_mazes/pngs/maze_199_side_vault_kd_dead_end_rooms1_1202.png create mode 100644 src/v2/automatic_maze_generation/mazegen/__init__.py create mode 100644 src/v2/automatic_maze_generation/mazegen/generate_dataset.py create mode 100644 src/v2/automatic_maze_generation/mazegen/generators.py create mode 100644 src/v2/automatic_maze_generation/mazegen/mechanisms.py create mode 100644 src/v2/automatic_maze_generation/mazegen/models.py create mode 100644 src/v2/automatic_maze_generation/mazegen/orchestrator.py create mode 100644 src/v2/automatic_maze_generation/mazegen/smoke_tests.py create mode 100644 src/v2/automatic_maze_generation/mazegen/solver.py create mode 100644 src/v2/automatic_maze_generation/mazegen/validator.py create mode 100644 src/v2/automatic_maze_generation/render_dataset.py create mode 100644 src/v2/nlu_pipeline/__init__.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/__init__.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/agents.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/config.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/env.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/examples/run_llm.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/examples/run_local_llm.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/examples/run_random.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/feedback.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/loader.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/observation.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/parser.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/prompt_strategies.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/querying.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/renderer.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/runner.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V01_empty_room.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V02_winding_corridor.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V03_multi_path.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V04_single_key.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V05_single_switch.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V06_chain_ks.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V07_chain_sk.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V08_chain_kk.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V09_distractor_simple.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V10_distractor_chain.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V01_empty_room.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V02_winding_corridor.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V03_multi_path.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V04_single_key.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V05_single_switch.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V06_chain_ks.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V07_chain_sk.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V08_chain_kk.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V09_distractor_simple.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V10_distractor_chain.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/analyze_smoke_runner_logs.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/plan.txt create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/run_log.txt create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_000_reset.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_001_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_002_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_003_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_004_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_005_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_006_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_007_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_008_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_009_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_010_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_011_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_012_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_013_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_014_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_015_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_016_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_017_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_018_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_019_PICKUP.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_020_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_021_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_022_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_023_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_024_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_025_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_026_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_027_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_028_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_029_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_030_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_031_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_032_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_033_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_034_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_035_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_036_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/plan.txt create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/run_log.txt create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_000_reset.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_001_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_002_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_003_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_004_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_005_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_006_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_007_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_008_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_009_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_010_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_011_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_012_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_013_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_014_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_015_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_016_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_017_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_018_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_019_PICKUP.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_020_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_021_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_022_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_023_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_024_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_025_TURN_RIGHT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_026_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_027_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_028_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_029_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_030_TURN_LEFT.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_031_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_032_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_033_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_034_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_035_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_036_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_037_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_038_MOVE_FORWARD.png create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/detailed_logs.json create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/report.txt create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_prompting_observation_querying.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_smart_manual.py create mode 100644 src/v2/nlu_pipeline/nlu_benchmark/terminal_output.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f090eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +build/ +__pycache__ +*.Zone.Identifier +.venv/ +token.txt +.pytest_cache/ +.env diff --git a/src/v2/automatic_maze_generation/__init__.py b/src/v2/automatic_maze_generation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/v2/automatic_maze_generation/generated_mazes/manifest.json b/src/v2/automatic_maze_generation/generated_mazes/manifest.json new file mode 100644 index 0000000..de83627 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/manifest.json @@ -0,0 +1,2002 @@ +[ + { + "file": "maze_000_sequential_chain_kk_none_1000.json", + "seed": 1000, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_001_winding_corridor_none_none_1001.json", + "seed": 1001, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_002_dense_maze_sk_wrong_keys1_1002.json", + "seed": 1002, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 28 + }, + { + "file": "maze_003_sequential_chain_sk_dead_end_rooms1_1003.json", + "seed": 1003, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_004_sequential_chain_none_wrong_keys1_1004.json", + "seed": 1004, + "backbone": "sequential_chain", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 15 + }, + { + "file": "maze_005_sequential_chain_ks_wrong_keys2_1005.json", + "seed": 1005, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 22 + }, + { + "file": "maze_006_side_vault_none_none_1006.json", + "seed": 1006, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_007_winding_corridor_sg_none_1007.json", + "seed": 1007, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 18 + }, + { + "file": "maze_008_dense_maze_ks_wrong_keys1_1010.json", + "seed": 1010, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 22 + }, + { + "file": "maze_009_multi_route_none_none_1009.json", + "seed": 1009, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_010_dense_maze_kd_distractor_chain1_1011.json", + "seed": 1011, + "backbone": "dense_maze", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "distractor_chain", + "max_distractors": 1, + "optimal_cost": 36 + }, + { + "file": "maze_011_side_vault_kd_none_1011.json", + "seed": 1011, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_012_side_vault_none_none_1012.json", + "seed": 1012, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_013_sequential_chain_sg_wrong_keys1_1013.json", + "seed": 1013, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 20 + }, + { + "file": "maze_014_dense_maze_none_none_1014.json", + "seed": 1014, + "backbone": "dense_maze", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 26 + }, + { + "file": "maze_015_winding_corridor_kd_dead_end_rooms2_1015.json", + "seed": 1015, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 29 + }, + { + "file": "maze_016_side_vault_sg_dead_end_rooms2_1016.json", + "seed": 1016, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 23 + }, + { + "file": "maze_017_sequential_chain_kk_dead_end_rooms1_1017.json", + "seed": 1017, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 17 + }, + { + "file": "maze_018_sequential_chain_kk_dead_end_rooms1_1018.json", + "seed": 1018, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 24 + }, + { + "file": "maze_019_winding_corridor_kd_none_1019.json", + "seed": 1019, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 28 + }, + { + "file": "maze_020_winding_corridor_none_dead_end_rooms2_1020.json", + "seed": 1020, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_021_dense_maze_sk_none_1021.json", + "seed": 1021, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 44 + }, + { + "file": "maze_022_multi_route_none_dead_end_rooms2_1022.json", + "seed": 1022, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_023_sequential_chain_kk_dead_end_rooms2_1023.json", + "seed": 1023, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_024_winding_corridor_kd_dead_end_rooms2_1024.json", + "seed": 1024, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 30 + }, + { + "file": "maze_025_multi_route_none_none_1025.json", + "seed": 1025, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 9 + }, + { + "file": "maze_026_winding_corridor_kd_dead_end_rooms2_1026.json", + "seed": 1026, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 31 + }, + { + "file": "maze_027_winding_corridor_none_none_1027.json", + "seed": 1027, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 8 + }, + { + "file": "maze_028_sequential_chain_sk_dead_end_rooms2_1028.json", + "seed": 1028, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_029_dense_maze_sg_distractor_chain1_1029.json", + "seed": 1029, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "distractor_chain", + "max_distractors": 1, + "optimal_cost": 40 + }, + { + "file": "maze_030_winding_corridor_kd_wrong_keys1_1030.json", + "seed": 1030, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 28 + }, + { + "file": "maze_031_dense_maze_sk_none_1031.json", + "seed": 1031, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 22 + }, + { + "file": "maze_032_sequential_chain_kk_wrong_keys2_1032.json", + "seed": 1032, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_033_multi_route_none_wrong_keys2_1033.json", + "seed": 1033, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_034_winding_corridor_sg_none_1034.json", + "seed": 1034, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 10 + }, + { + "file": "maze_035_sequential_chain_kd_dead_end_rooms1_1035.json", + "seed": 1035, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 14 + }, + { + "file": "maze_036_sequential_chain_kk_wrong_keys1_1036.json", + "seed": 1036, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 20 + }, + { + "file": "maze_037_winding_corridor_kd_wrong_keys2_1037.json", + "seed": 1037, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 14 + }, + { + "file": "maze_038_winding_corridor_none_dead_end_rooms1_1038.json", + "seed": 1038, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 10 + }, + { + "file": "maze_039_multi_route_none_none_1039.json", + "seed": 1039, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_040_side_vault_none_wrong_keys1_1040.json", + "seed": 1040, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 13 + }, + { + "file": "maze_041_sequential_chain_kd_dead_end_rooms2_1041.json", + "seed": 1041, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 18 + }, + { + "file": "maze_042_multi_route_none_none_1042.json", + "seed": 1042, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_043_dense_maze_sg_wrong_keys2_1043.json", + "seed": 1043, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 24 + }, + { + "file": "maze_044_multi_route_none_dead_end_rooms2_1044.json", + "seed": 1044, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 15 + }, + { + "file": "maze_045_winding_corridor_sg_wrong_keys2_1045.json", + "seed": 1045, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 22 + }, + { + "file": "maze_046_sequential_chain_sk_dead_end_rooms1_1046.json", + "seed": 1046, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 19 + }, + { + "file": "maze_047_winding_corridor_kd_dead_end_rooms2_1047.json", + "seed": 1047, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 20 + }, + { + "file": "maze_048_side_vault_kd_none_1048.json", + "seed": 1048, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_049_side_vault_sg_dead_end_rooms2_1050.json", + "seed": 1050, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_050_winding_corridor_sg_none_1051.json", + "seed": 1051, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 17 + }, + { + "file": "maze_051_multi_route_none_wrong_keys1_1052.json", + "seed": 1052, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 11 + }, + { + "file": "maze_052_side_vault_kd_wrong_keys2_1053.json", + "seed": 1053, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 27 + }, + { + "file": "maze_053_winding_corridor_sg_none_1054.json", + "seed": 1054, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 13 + }, + { + "file": "maze_054_winding_corridor_none_dead_end_rooms1_1055.json", + "seed": 1055, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 18 + }, + { + "file": "maze_055_winding_corridor_none_dead_end_rooms1_1056.json", + "seed": 1056, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 30 + }, + { + "file": "maze_056_dense_maze_sk_none_1057.json", + "seed": 1057, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 48 + }, + { + "file": "maze_057_side_vault_sg_none_1058.json", + "seed": 1058, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_058_winding_corridor_none_wrong_keys1_1059.json", + "seed": 1059, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 23 + }, + { + "file": "maze_059_multi_route_none_none_1060.json", + "seed": 1060, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 9 + }, + { + "file": "maze_060_dense_maze_sg_wrong_keys1_1061.json", + "seed": 1061, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 50 + }, + { + "file": "maze_061_winding_corridor_none_dead_end_rooms1_1062.json", + "seed": 1062, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 9 + }, + { + "file": "maze_062_multi_route_none_none_1063.json", + "seed": 1063, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 13 + }, + { + "file": "maze_063_multi_route_none_wrong_keys1_1064.json", + "seed": 1064, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_064_winding_corridor_kd_none_1065.json", + "seed": 1065, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_065_sequential_chain_sk_wrong_keys2_1066.json", + "seed": 1066, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 19 + }, + { + "file": "maze_066_winding_corridor_kd_dead_end_rooms1_1067.json", + "seed": 1067, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 27 + }, + { + "file": "maze_067_sequential_chain_ks_none_1068.json", + "seed": 1068, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 20 + }, + { + "file": "maze_068_side_vault_sg_none_1069.json", + "seed": 1069, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_069_side_vault_sg_none_1070.json", + "seed": 1070, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_070_winding_corridor_kd_dead_end_rooms1_1071.json", + "seed": 1071, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_071_sequential_chain_ks_none_1072.json", + "seed": 1072, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 24 + }, + { + "file": "maze_072_side_vault_sg_none_1073.json", + "seed": 1073, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_073_sequential_chain_sg_none_1074.json", + "seed": 1074, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 20 + }, + { + "file": "maze_074_sequential_chain_none_none_1075.json", + "seed": 1075, + "backbone": "sequential_chain", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 16 + }, + { + "file": "maze_075_side_vault_none_none_1076.json", + "seed": 1076, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_076_winding_corridor_none_dead_end_rooms2_1077.json", + "seed": 1077, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 24 + }, + { + "file": "maze_077_winding_corridor_none_dead_end_rooms2_1078.json", + "seed": 1078, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 19 + }, + { + "file": "maze_078_dense_maze_kk_wrong_keys1_1079.json", + "seed": 1079, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 28 + }, + { + "file": "maze_079_sequential_chain_sk_dead_end_rooms1_1080.json", + "seed": 1080, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 19 + }, + { + "file": "maze_080_sequential_chain_sg_wrong_keys1_1081.json", + "seed": 1081, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 18 + }, + { + "file": "maze_081_multi_route_none_wrong_keys1_1082.json", + "seed": 1082, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 13 + }, + { + "file": "maze_082_multi_route_none_dead_end_rooms2_1083.json", + "seed": 1083, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 19 + }, + { + "file": "maze_083_winding_corridor_sg_dead_end_rooms2_1084.json", + "seed": 1084, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_084_dense_maze_sk_wrong_keys1_1085.json", + "seed": 1085, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 34 + }, + { + "file": "maze_085_dense_maze_kk_wrong_keys2_1086.json", + "seed": 1086, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 34 + }, + { + "file": "maze_086_multi_route_none_none_1087.json", + "seed": 1087, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_087_dense_maze_kk_distractor_chain2_1089.json", + "seed": 1089, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "distractor_chain", + "max_distractors": 2, + "optimal_cost": 20 + }, + { + "file": "maze_088_side_vault_kd_wrong_keys2_1089.json", + "seed": 1089, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 21 + }, + { + "file": "maze_089_sequential_chain_kd_dead_end_rooms2_1090.json", + "seed": 1090, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 18 + }, + { + "file": "maze_090_side_vault_none_wrong_keys2_1091.json", + "seed": 1091, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_091_dense_maze_sk_wrong_keys2_1097.json", + "seed": 1097, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 24 + }, + { + "file": "maze_092_side_vault_sg_wrong_keys2_1093.json", + "seed": 1093, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 25 + }, + { + "file": "maze_093_dense_maze_kk_distractor_chain2_1098.json", + "seed": 1098, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "distractor_chain", + "max_distractors": 2, + "optimal_cost": 32 + }, + { + "file": "maze_094_multi_route_none_none_1095.json", + "seed": 1095, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 9 + }, + { + "file": "maze_095_sequential_chain_none_dead_end_rooms2_1096.json", + "seed": 1096, + "backbone": "sequential_chain", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 18 + }, + { + "file": "maze_096_dense_maze_none_none_1097.json", + "seed": 1097, + "backbone": "dense_maze", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 38 + }, + { + "file": "maze_097_multi_route_none_dead_end_rooms2_1098.json", + "seed": 1098, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_098_sequential_chain_kd_none_1099.json", + "seed": 1099, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 20 + }, + { + "file": "maze_099_winding_corridor_sg_none_1100.json", + "seed": 1100, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_100_side_vault_kd_dead_end_rooms1_1101.json", + "seed": 1101, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 19 + }, + { + "file": "maze_101_side_vault_none_wrong_keys2_1102.json", + "seed": 1102, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_102_sequential_chain_kk_dead_end_rooms2_1103.json", + "seed": 1103, + "backbone": "sequential_chain", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 18 + }, + { + "file": "maze_103_side_vault_kd_dead_end_rooms1_1104.json", + "seed": 1104, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 23 + }, + { + "file": "maze_104_winding_corridor_none_dead_end_rooms1_1105.json", + "seed": 1105, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_105_sequential_chain_ks_dead_end_rooms1_1106.json", + "seed": 1106, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 18 + }, + { + "file": "maze_106_multi_route_none_dead_end_rooms2_1107.json", + "seed": 1107, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_107_multi_route_none_wrong_keys2_1108.json", + "seed": 1108, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_108_sequential_chain_none_dead_end_rooms1_1109.json", + "seed": 1109, + "backbone": "sequential_chain", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 20 + }, + { + "file": "maze_109_sequential_chain_kd_wrong_keys1_1110.json", + "seed": 1110, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 20 + }, + { + "file": "maze_110_multi_route_none_none_1111.json", + "seed": 1111, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_111_side_vault_none_dead_end_rooms1_1112.json", + "seed": 1112, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 11 + }, + { + "file": "maze_112_winding_corridor_none_none_1113.json", + "seed": 1113, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 8 + }, + { + "file": "maze_113_dense_maze_sg_wrong_keys2_1114.json", + "seed": 1114, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 60 + }, + { + "file": "maze_114_side_vault_kd_none_1115.json", + "seed": 1115, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_115_dense_maze_ks_wrong_keys1_1119.json", + "seed": 1119, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 24 + }, + { + "file": "maze_116_sequential_chain_sk_none_1117.json", + "seed": 1117, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 25 + }, + { + "file": "maze_117_multi_route_none_wrong_keys1_1118.json", + "seed": 1118, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 9 + }, + { + "file": "maze_118_winding_corridor_sg_wrong_keys1_1119.json", + "seed": 1119, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_119_dense_maze_kk_none_1122.json", + "seed": 1122, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 18 + }, + { + "file": "maze_120_dense_maze_sk_none_1122.json", + "seed": 1122, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 24 + }, + { + "file": "maze_121_sequential_chain_sk_none_1122.json", + "seed": 1122, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_122_side_vault_kd_wrong_keys1_1123.json", + "seed": 1123, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 23 + }, + { + "file": "maze_123_winding_corridor_kd_wrong_keys2_1124.json", + "seed": 1124, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 12 + }, + { + "file": "maze_124_multi_route_none_dead_end_rooms2_1125.json", + "seed": 1125, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_125_side_vault_none_none_1126.json", + "seed": 1126, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 9 + }, + { + "file": "maze_126_sequential_chain_kd_dead_end_rooms1_1127.json", + "seed": 1127, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 15 + }, + { + "file": "maze_127_winding_corridor_sg_none_1128.json", + "seed": 1128, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 12 + }, + { + "file": "maze_128_sequential_chain_sg_none_1129.json", + "seed": 1129, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 24 + }, + { + "file": "maze_129_dense_maze_sg_distractor_chain2_1130.json", + "seed": 1130, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "distractor_chain", + "max_distractors": 2, + "optimal_cost": 24 + }, + { + "file": "maze_130_winding_corridor_sg_none_1132.json", + "seed": 1132, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 10 + }, + { + "file": "maze_131_dense_maze_kd_none_1132.json", + "seed": 1132, + "backbone": "dense_maze", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 30 + }, + { + "file": "maze_132_sequential_chain_ks_dead_end_rooms1_1133.json", + "seed": 1133, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 20 + }, + { + "file": "maze_133_winding_corridor_sg_none_1134.json", + "seed": 1134, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 21 + }, + { + "file": "maze_134_dense_maze_ks_none_1135.json", + "seed": 1135, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 36 + }, + { + "file": "maze_135_winding_corridor_none_dead_end_rooms2_1136.json", + "seed": 1136, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 10 + }, + { + "file": "maze_136_sequential_chain_sk_none_1137.json", + "seed": 1137, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 24 + }, + { + "file": "maze_137_side_vault_sg_wrong_keys2_1138.json", + "seed": 1138, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_138_winding_corridor_kd_none_1139.json", + "seed": 1139, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 15 + }, + { + "file": "maze_139_side_vault_sg_none_1140.json", + "seed": 1140, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 27 + }, + { + "file": "maze_140_sequential_chain_kd_none_1141.json", + "seed": 1141, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 20 + }, + { + "file": "maze_141_winding_corridor_none_dead_end_rooms2_1142.json", + "seed": 1142, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 29 + }, + { + "file": "maze_142_multi_route_none_dead_end_rooms2_1143.json", + "seed": 1143, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 17 + }, + { + "file": "maze_143_dense_maze_ks_wrong_keys2_1144.json", + "seed": 1144, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 26 + }, + { + "file": "maze_144_multi_route_none_wrong_keys2_1145.json", + "seed": 1145, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 21 + }, + { + "file": "maze_145_multi_route_none_dead_end_rooms2_1147.json", + "seed": 1147, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 21 + }, + { + "file": "maze_146_sequential_chain_sg_wrong_keys1_1148.json", + "seed": 1148, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 22 + }, + { + "file": "maze_147_dense_maze_kd_distractor_chain2_1151.json", + "seed": 1151, + "backbone": "dense_maze", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "distractor_chain", + "max_distractors": 2, + "optimal_cost": 40 + }, + { + "file": "maze_148_multi_route_none_dead_end_rooms1_1150.json", + "seed": 1150, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 15 + }, + { + "file": "maze_149_multi_route_none_wrong_keys1_1151.json", + "seed": 1151, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 13 + }, + { + "file": "maze_150_dense_maze_sk_distractor_chain1_1153.json", + "seed": 1153, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "distractor_chain", + "max_distractors": 1, + "optimal_cost": 24 + }, + { + "file": "maze_151_winding_corridor_kd_wrong_keys2_1154.json", + "seed": 1154, + "backbone": "winding_corridor", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 25 + }, + { + "file": "maze_152_dense_maze_none_none_1154.json", + "seed": 1154, + "backbone": "dense_maze", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 38 + }, + { + "file": "maze_153_multi_route_none_wrong_keys2_1155.json", + "seed": 1155, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 15 + }, + { + "file": "maze_154_dense_maze_none_wrong_keys2_1156.json", + "seed": 1156, + "backbone": "dense_maze", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 52 + }, + { + "file": "maze_155_dense_maze_ks_distractor_chain1_1163.json", + "seed": 1163, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "distractor_chain", + "max_distractors": 1, + "optimal_cost": 50 + }, + { + "file": "maze_156_side_vault_none_none_1158.json", + "seed": 1158, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_157_multi_route_none_dead_end_rooms2_1159.json", + "seed": 1159, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_158_sequential_chain_kd_dead_end_rooms2_1160.json", + "seed": 1160, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 22 + }, + { + "file": "maze_159_dense_maze_sg_distractor_chain1_1163.json", + "seed": 1163, + "backbone": "dense_maze", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "distractor_chain", + "max_distractors": 1, + "optimal_cost": 44 + }, + { + "file": "maze_160_sequential_chain_none_none_1162.json", + "seed": 1162, + "backbone": "sequential_chain", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 16 + }, + { + "file": "maze_161_winding_corridor_none_dead_end_rooms2_1163.json", + "seed": 1163, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 9 + }, + { + "file": "maze_162_multi_route_none_none_1164.json", + "seed": 1164, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 9 + }, + { + "file": "maze_163_multi_route_none_wrong_keys2_1165.json", + "seed": 1165, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 9 + }, + { + "file": "maze_164_winding_corridor_sg_dead_end_rooms1_1166.json", + "seed": 1166, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 17 + }, + { + "file": "maze_165_multi_route_none_dead_end_rooms1_1167.json", + "seed": 1167, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 9 + }, + { + "file": "maze_166_dense_maze_sk_none_1168.json", + "seed": 1168, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 40 + }, + { + "file": "maze_167_winding_corridor_sg_none_1169.json", + "seed": 1169, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 22 + }, + { + "file": "maze_168_winding_corridor_none_none_1170.json", + "seed": 1170, + "backbone": "winding_corridor", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_169_sequential_chain_ks_none_1171.json", + "seed": 1171, + "backbone": "sequential_chain", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 24 + }, + { + "file": "maze_170_dense_maze_sk_wrong_keys2_1172.json", + "seed": 1172, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 36 + }, + { + "file": "maze_171_sequential_chain_kd_wrong_keys2_1173.json", + "seed": 1173, + "backbone": "sequential_chain", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 20 + }, + { + "file": "maze_172_multi_route_none_dead_end_rooms2_1174.json", + "seed": 1174, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_173_sequential_chain_sk_wrong_keys2_1175.json", + "seed": 1175, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 19 + }, + { + "file": "maze_174_dense_maze_kd_none_1176.json", + "seed": 1176, + "backbone": "dense_maze", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 20 + }, + { + "file": "maze_175_sequential_chain_sg_wrong_keys2_1177.json", + "seed": 1177, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 18 + }, + { + "file": "maze_176_dense_maze_ks_wrong_keys2_1180.json", + "seed": 1180, + "backbone": "dense_maze", + "logic_chain": "ks", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 32 + }, + { + "file": "maze_177_dense_maze_none_none_1179.json", + "seed": 1179, + "backbone": "dense_maze", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 32 + }, + { + "file": "maze_178_side_vault_none_dead_end_rooms1_1181.json", + "seed": 1181, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 13 + }, + { + "file": "maze_179_multi_route_none_wrong_keys1_1182.json", + "seed": 1182, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 11 + }, + { + "file": "maze_180_side_vault_sg_none_1183.json", + "seed": 1183, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 23 + }, + { + "file": "maze_181_dense_maze_kd_wrong_keys1_1184.json", + "seed": 1184, + "backbone": "dense_maze", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 26 + }, + { + "file": "maze_182_side_vault_none_none_1185.json", + "seed": 1185, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_183_side_vault_kd_wrong_keys1_1186.json", + "seed": 1186, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 23 + }, + { + "file": "maze_184_side_vault_none_wrong_keys2_1187.json", + "seed": 1187, + "backbone": "side_vault", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 11 + }, + { + "file": "maze_185_dense_maze_sk_none_1188.json", + "seed": 1188, + "backbone": "dense_maze", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 32 + }, + { + "file": "maze_186_dense_maze_kk_distractor_chain2_1191.json", + "seed": 1191, + "backbone": "dense_maze", + "logic_chain": "kk", + "difficulty_tier": 3, + "distractor_mode": "distractor_chain", + "max_distractors": 2, + "optimal_cost": 34 + }, + { + "file": "maze_187_sequential_chain_sk_wrong_keys1_1190.json", + "seed": 1190, + "backbone": "sequential_chain", + "logic_chain": "sk", + "difficulty_tier": 3, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 17 + }, + { + "file": "maze_188_sequential_chain_sg_dead_end_rooms1_1191.json", + "seed": 1191, + "backbone": "sequential_chain", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 16 + }, + { + "file": "maze_189_side_vault_kd_dead_end_rooms1_1192.json", + "seed": 1192, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 21 + }, + { + "file": "maze_190_side_vault_sg_wrong_keys2_1193.json", + "seed": 1193, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 25 + }, + { + "file": "maze_191_side_vault_sg_none_1194.json", + "seed": 1194, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 19 + }, + { + "file": "maze_192_side_vault_kd_dead_end_rooms1_1195.json", + "seed": 1195, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 25 + }, + { + "file": "maze_193_multi_route_none_dead_end_rooms2_1196.json", + "seed": 1196, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "dead_end_rooms", + "max_distractors": 2, + "optimal_cost": 13 + }, + { + "file": "maze_194_multi_route_none_wrong_keys2_1197.json", + "seed": 1197, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "wrong_keys", + "max_distractors": 2, + "optimal_cost": 9 + }, + { + "file": "maze_195_side_vault_sg_dead_end_rooms1_1198.json", + "seed": 1198, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 25 + }, + { + "file": "maze_196_winding_corridor_sg_wrong_keys1_1199.json", + "seed": 1199, + "backbone": "winding_corridor", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "wrong_keys", + "max_distractors": 1, + "optimal_cost": 17 + }, + { + "file": "maze_197_side_vault_sg_dead_end_rooms1_1200.json", + "seed": 1200, + "backbone": "side_vault", + "logic_chain": "sg", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 25 + }, + { + "file": "maze_198_multi_route_none_none_1201.json", + "seed": 1201, + "backbone": "multi_route", + "logic_chain": "none", + "difficulty_tier": 1, + "distractor_mode": "none", + "max_distractors": 0, + "optimal_cost": 11 + }, + { + "file": "maze_199_side_vault_kd_dead_end_rooms1_1202.json", + "seed": 1202, + "backbone": "side_vault", + "logic_chain": "kd", + "difficulty_tier": 2, + "distractor_mode": "dead_end_rooms", + "max_distractors": 1, + "optimal_cost": 21 + } +] \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_000_sequential_chain_kk_none_1000.json b/src/v2/automatic_maze_generation/generated_mazes/maze_000_sequential_chain_kk_none_1000.json new file mode 100644 index 0000000..7fea32e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_000_sequential_chain_kk_none_1000.json @@ -0,0 +1,854 @@ +{ + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 4 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 7, + 7 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 10, + 8 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk" + }, + "task_id": "sequential_chain_kk_1000", + "version": "0.1", + "seed": 1000, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_001_winding_corridor_none_none_1001.json b/src/v2/automatic_maze_generation/generated_mazes/maze_001_winding_corridor_none_none_1001.json new file mode 100644 index 0000000..f34f8d3 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_001_winding_corridor_none_none_1001.json @@ -0,0 +1,835 @@ +{ + "task_id": "winding_corridor_none_1001", + "version": "0.1", + "seed": 1001, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 22, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 15, + 4 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 6 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 11, + 4 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 14, + 4 + ], + [ + 15, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_002_dense_maze_sk_wrong_keys1_1002.json b/src/v2/automatic_maze_generation/generated_mazes/maze_002_dense_maze_sk_wrong_keys1_1002.json new file mode 100644 index 0000000..c786577 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_002_dense_maze_sk_wrong_keys1_1002.json @@ -0,0 +1,499 @@ +{ + "maze": { + "dimensions": [ + 11, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 8 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 2, + 5 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 9, + 5 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 5, + 5 + ], + "solution_path_length": 28, + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_sk_1002", + "version": "0.1", + "seed": 1002, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 28, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 2, + 5 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_003_sequential_chain_sk_dead_end_rooms1_1003.json b/src/v2/automatic_maze_generation/generated_mazes/maze_003_sequential_chain_sk_dead_end_rooms1_1003.json new file mode 100644 index 0000000..0409ab1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_003_sequential_chain_sk_dead_end_rooms1_1003.json @@ -0,0 +1,951 @@ +{ + "maze": { + "dimensions": [ + 18, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 9 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 10, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_sk_1003", + "version": "0.1", + "seed": 1003, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ], + [ + 15, + 8 + ], + [ + 16, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_004_sequential_chain_none_wrong_keys1_1004.json b/src/v2/automatic_maze_generation/generated_mazes/maze_004_sequential_chain_none_wrong_keys1_1004.json new file mode 100644 index 0000000..b2fd3a2 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_004_sequential_chain_none_wrong_keys1_1004.json @@ -0,0 +1,710 @@ +{ + "task_id": "sequential_chain_none_1004", + "version": "0.1", + "seed": 1004, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_005_sequential_chain_ks_wrong_keys2_1005.json b/src/v2/automatic_maze_generation/generated_mazes/maze_005_sequential_chain_ks_wrong_keys2_1005.json new file mode 100644 index 0000000..cc15775 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_005_sequential_chain_ks_wrong_keys2_1005.json @@ -0,0 +1,1107 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 4 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 13, + 10 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 10 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 10, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 9 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_ks_1005", + "version": "0.1", + "seed": 1005, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_006_side_vault_none_none_1006.json b/src/v2/automatic_maze_generation/generated_mazes/maze_006_side_vault_none_none_1006.json new file mode 100644 index 0000000..fbb7265 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_006_side_vault_none_none_1006.json @@ -0,0 +1,582 @@ +{ + "task_id": "side_vault_none_1006", + "version": "0.1", + "seed": 1006, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_007_winding_corridor_sg_none_1007.json b/src/v2/automatic_maze_generation/generated_mazes/maze_007_winding_corridor_sg_none_1007.json new file mode 100644 index 0000000..e6ce1f0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_007_winding_corridor_sg_none_1007.json @@ -0,0 +1,867 @@ +{ + "maze": { + "dimensions": [ + 20, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 4, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1007", + "version": "0.1", + "seed": 1007, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_008_dense_maze_ks_wrong_keys1_1010.json b/src/v2/automatic_maze_generation/generated_mazes/maze_008_dense_maze_ks_wrong_keys1_1010.json new file mode 100644 index 0000000..d0748cd --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_008_dense_maze_ks_wrong_keys1_1010.json @@ -0,0 +1,563 @@ +{ + "maze": { + "dimensions": [ + 15, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 13, + 0 + ], + [ + 13, + 10 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 2 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 8, + 3 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 3, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 13, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 7, + 5 + ], + "solution_path_length": 22, + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_ks_1010", + "version": "0.1", + "seed": 1010, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_009_multi_route_none_none_1009.json b/src/v2/automatic_maze_generation/generated_mazes/maze_009_multi_route_none_none_1009.json new file mode 100644 index 0000000..3399c9b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_009_multi_route_none_none_1009.json @@ -0,0 +1,459 @@ +{ + "task_id": "multi_route_none_1009", + "version": "0.1", + "seed": 1009, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_010_dense_maze_kd_distractor_chain1_1011.json b/src/v2/automatic_maze_generation/generated_mazes/maze_010_dense_maze_kd_distractor_chain1_1011.json new file mode 100644 index 0000000..2d4f5d7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_010_dense_maze_kd_distractor_chain1_1011.json @@ -0,0 +1,627 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 6 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 7 + ], + "color": "red" + }, + { + "id": "kG", + "position": [ + 8, + 6 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 1 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 8, + 7 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kd", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 40, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ] + ] + } + }, + "task_id": "dense_maze_kd_1011", + "version": "0.1", + "seed": 1011, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 36, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_011_side_vault_kd_none_1011.json b/src/v2/automatic_maze_generation/generated_mazes/maze_011_side_vault_kd_none_1011.json new file mode 100644 index 0000000..9f12559 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_011_side_vault_kd_none_1011.json @@ -0,0 +1,643 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 8 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd" + }, + "task_id": "side_vault_kd_1011", + "version": "0.1", + "seed": 1011, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 5, + 8 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_012_side_vault_none_none_1012.json b/src/v2/automatic_maze_generation/generated_mazes/maze_012_side_vault_none_none_1012.json new file mode 100644 index 0000000..f42ee71 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_012_side_vault_none_none_1012.json @@ -0,0 +1,582 @@ +{ + "task_id": "side_vault_none_1012", + "version": "0.1", + "seed": 1012, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_013_sequential_chain_sg_wrong_keys1_1013.json b/src/v2/automatic_maze_generation/generated_mazes/maze_013_sequential_chain_sg_wrong_keys1_1013.json new file mode 100644 index 0000000..a20c18a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_013_sequential_chain_sg_wrong_keys1_1013.json @@ -0,0 +1,1078 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 9, + 11 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_sg_1013", + "version": "0.1", + "seed": 1013, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_014_dense_maze_none_none_1014.json b/src/v2/automatic_maze_generation/generated_mazes/maze_014_dense_maze_none_none_1014.json new file mode 100644 index 0000000..5917882 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_014_dense_maze_none_none_1014.json @@ -0,0 +1,491 @@ +{ + "task_id": "dense_maze_none_1014", + "version": "0.1", + "seed": 1014, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 13, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 9 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "none", + "dense_maze_cells": [ + 6, + 5 + ], + "solution_path_length": 26 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 26, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_015_winding_corridor_kd_dead_end_rooms2_1015.json b/src/v2/automatic_maze_generation/generated_mazes/maze_015_winding_corridor_kd_dead_end_rooms2_1015.json new file mode 100644 index 0000000..3c6f146 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_015_winding_corridor_kd_dead_end_rooms2_1015.json @@ -0,0 +1,772 @@ +{ + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 18, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 13, + 1 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 6, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1015", + "version": "0.1", + "seed": 1015, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 29, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ], + [ + 15, + 5 + ], + [ + 16, + 5 + ], + [ + 17, + 5 + ], + [ + 18, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_016_side_vault_sg_dead_end_rooms2_1016.json b/src/v2/automatic_maze_generation/generated_mazes/maze_016_side_vault_sg_dead_end_rooms2_1016.json new file mode 100644 index 0000000..a17aae4 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_016_side_vault_sg_dead_end_rooms2_1016.json @@ -0,0 +1,970 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 10 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "side_vault_sg_1016", + "version": "0.1", + "seed": 1016, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_017_sequential_chain_kk_dead_end_rooms1_1017.json b/src/v2/automatic_maze_generation/generated_mazes/maze_017_sequential_chain_kk_dead_end_rooms1_1017.json new file mode 100644 index 0000000..bdcb87e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_017_sequential_chain_kk_dead_end_rooms1_1017.json @@ -0,0 +1,754 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 8, + 7 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 8 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kk_1017", + "version": "0.1", + "seed": 1017, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_018_sequential_chain_kk_dead_end_rooms1_1018.json b/src/v2/automatic_maze_generation/generated_mazes/maze_018_sequential_chain_kk_dead_end_rooms1_1018.json new file mode 100644 index 0000000..64721cb --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_018_sequential_chain_kk_dead_end_rooms1_1018.json @@ -0,0 +1,810 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 1 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 10, + 5 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 12, + 6 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kk_1018", + "version": "0.1", + "seed": 1018, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_019_winding_corridor_kd_none_1019.json b/src/v2/automatic_maze_generation/generated_mazes/maze_019_winding_corridor_kd_none_1019.json new file mode 100644 index 0000000..1bfd354 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_019_winding_corridor_kd_none_1019.json @@ -0,0 +1,640 @@ +{ + "maze": { + "dimensions": [ + 18, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 15, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 7, + "chain_pattern": "kd" + }, + "task_id": "winding_corridor_kd_1019", + "version": "0.1", + "seed": 1019, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 28, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 15, + 5 + ], + [ + 15, + 4 + ], + [ + 15, + 3 + ], + [ + 15, + 2 + ], + [ + 15, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_020_winding_corridor_none_dead_end_rooms2_1020.json b/src/v2/automatic_maze_generation/generated_mazes/maze_020_winding_corridor_none_dead_end_rooms2_1020.json new file mode 100644 index 0000000..fcbd001 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_020_winding_corridor_none_dead_end_rooms2_1020.json @@ -0,0 +1,739 @@ +{ + "task_id": "winding_corridor_none_1020", + "version": "0.1", + "seed": 1020, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 14, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 13, + 1 + ], + [ + 14, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_021_dense_maze_sk_none_1021.json b/src/v2/automatic_maze_generation/generated_mazes/maze_021_dense_maze_sk_none_1021.json new file mode 100644 index 0000000..a914603 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_021_dense_maze_sk_none_1021.json @@ -0,0 +1,656 @@ +{ + "maze": { + "dimensions": [ + 15, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 8 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 13, + 0 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 9 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 2, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 1, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 7, + 5 + ], + "solution_path_length": 44, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1021", + "version": "0.1", + "seed": 1021, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 44, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 9, + 8 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 12, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_022_multi_route_none_dead_end_rooms2_1022.json b/src/v2/automatic_maze_generation/generated_mazes/maze_022_multi_route_none_dead_end_rooms2_1022.json new file mode 100644 index 0000000..86e4149 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_022_multi_route_none_dead_end_rooms2_1022.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1022", + "version": "0.1", + "seed": 1022, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_023_sequential_chain_kk_dead_end_rooms2_1023.json b/src/v2/automatic_maze_generation/generated_mazes/maze_023_sequential_chain_kk_dead_end_rooms2_1023.json new file mode 100644 index 0000000..8353bbf --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_023_sequential_chain_kk_dead_end_rooms2_1023.json @@ -0,0 +1,742 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 3 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 7, + 7 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 8 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kk_1023", + "version": "0.1", + "seed": 1023, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_024_winding_corridor_kd_dead_end_rooms2_1024.json b/src/v2/automatic_maze_generation/generated_mazes/maze_024_winding_corridor_kd_dead_end_rooms2_1024.json new file mode 100644 index 0000000..35fbaa8 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_024_winding_corridor_kd_dead_end_rooms2_1024.json @@ -0,0 +1,756 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 14, + 2 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 6 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 7, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1024", + "version": "0.1", + "seed": 1024, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 30, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 9, + 2 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 14, + 5 + ], + [ + 14, + 4 + ], + [ + 14, + 3 + ], + [ + 14, + 2 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_025_multi_route_none_none_1025.json b/src/v2/automatic_maze_generation/generated_mazes/maze_025_multi_route_none_none_1025.json new file mode 100644 index 0000000..74eceda --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_025_multi_route_none_none_1025.json @@ -0,0 +1,419 @@ +{ + "task_id": "multi_route_none_1025", + "version": "0.1", + "seed": 1025, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_026_winding_corridor_kd_dead_end_rooms2_1026.json b/src/v2/automatic_maze_generation/generated_mazes/maze_026_winding_corridor_kd_dead_end_rooms2_1026.json new file mode 100644 index 0000000..96437a0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_026_winding_corridor_kd_dead_end_rooms2_1026.json @@ -0,0 +1,844 @@ +{ + "maze": { + "dimensions": [ + 22, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 16, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 6 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 7, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1026", + "version": "0.1", + "seed": 1026, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 31, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 12, + 3 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 14, + 4 + ], + [ + 15, + 4 + ], + [ + 16, + 4 + ], + [ + 16, + 3 + ], + [ + 16, + 2 + ], + [ + 16, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_027_winding_corridor_none_none_1027.json b/src/v2/automatic_maze_generation/generated_mazes/maze_027_winding_corridor_none_none_1027.json new file mode 100644 index 0000000..9b0e239 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_027_winding_corridor_none_none_1027.json @@ -0,0 +1,835 @@ +{ + "task_id": "winding_corridor_none_1027", + "version": "0.1", + "seed": 1027, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 22, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 5, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 8, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_028_sequential_chain_sk_dead_end_rooms2_1028.json b/src/v2/automatic_maze_generation/generated_mazes/maze_028_sequential_chain_sk_dead_end_rooms2_1028.json new file mode 100644 index 0000000..39899b1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_028_sequential_chain_sk_dead_end_rooms2_1028.json @@ -0,0 +1,751 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_sk_1028", + "version": "0.1", + "seed": 1028, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_029_dense_maze_sg_distractor_chain1_1029.json b/src/v2/automatic_maze_generation/generated_mazes/maze_029_dense_maze_sg_distractor_chain1_1029.json new file mode 100644 index 0000000..34fc91c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_029_dense_maze_sg_distractor_chain1_1029.json @@ -0,0 +1,768 @@ +{ + "maze": { + "dimensions": [ + 15, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 12 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 8 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 14 + ], + [ + 13, + 0 + ], + [ + 13, + 4 + ], + [ + 13, + 14 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 14, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kG", + "position": [ + 10, + 12 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DG", + "position": [ + 9, + 12 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 3, + 11 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 7, + 7 + ], + "solution_path_length": 60, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 10, + 12 + ], + [ + 9, + 12 + ], + [ + 8, + 12 + ] + ] + } + }, + "task_id": "dense_maze_sg_1029", + "version": "0.1", + "seed": 1029, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 40, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 2, + 5 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 13 + ], + [ + 3, + 13 + ], + [ + 3, + 12 + ], + [ + 3, + 11 + ], + [ + 3, + 10 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 13 + ], + [ + 10, + 13 + ], + [ + 11, + 13 + ], + [ + 12, + 13 + ], + [ + 13, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_030_winding_corridor_kd_wrong_keys1_1030.json b/src/v2/automatic_maze_generation/generated_mazes/maze_030_winding_corridor_kd_wrong_keys1_1030.json new file mode 100644 index 0000000..ee9b5f9 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_030_winding_corridor_kd_wrong_keys1_1030.json @@ -0,0 +1,775 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 6 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 6, + 3 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 7, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "winding_corridor_kd_1030", + "version": "0.1", + "seed": 1030, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 28, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 13, + 5 + ], + [ + 13, + 4 + ], + [ + 13, + 3 + ], + [ + 13, + 2 + ], + [ + 13, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_031_dense_maze_sk_none_1031.json b/src/v2/automatic_maze_generation/generated_mazes/maze_031_dense_maze_sk_none_1031.json new file mode 100644 index 0000000..4a6d71c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_031_dense_maze_sk_none_1031.json @@ -0,0 +1,512 @@ +{ + "maze": { + "dimensions": [ + 11, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 9 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 11 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 7 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 1, + 10 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 5, + 6 + ], + "solution_path_length": 22, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1031", + "version": "0.1", + "seed": 1031, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 3, + 10 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_032_sequential_chain_kk_wrong_keys2_1032.json b/src/v2/automatic_maze_generation/generated_mazes/maze_032_sequential_chain_kk_wrong_keys2_1032.json new file mode 100644 index 0000000..f0e279b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_032_sequential_chain_kk_wrong_keys2_1032.json @@ -0,0 +1,766 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 7, + 7 + ], + "color": "blue" + }, + { + "id": "kY", + "position": [ + 5, + 5 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 3, + 8 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 8 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_kk_1032", + "version": "0.1", + "seed": 1032, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_033_multi_route_none_wrong_keys2_1033.json b/src/v2/automatic_maze_generation/generated_mazes/maze_033_multi_route_none_wrong_keys2_1033.json new file mode 100644 index 0000000..6acdc7b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_033_multi_route_none_wrong_keys2_1033.json @@ -0,0 +1,459 @@ +{ + "task_id": "multi_route_none_1033", + "version": "0.1", + "seed": 1033, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_034_winding_corridor_sg_none_1034.json b/src/v2/automatic_maze_generation/generated_mazes/maze_034_winding_corridor_sg_none_1034.json new file mode 100644 index 0000000..15f5e7c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_034_winding_corridor_sg_none_1034.json @@ -0,0 +1,643 @@ +{ + "maze": { + "dimensions": [ + 18, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 5, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 3, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1034", + "version": "0.1", + "seed": 1034, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 10, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_035_sequential_chain_kd_dead_end_rooms1_1035.json b/src/v2/automatic_maze_generation/generated_mazes/maze_035_sequential_chain_kd_dead_end_rooms1_1035.json new file mode 100644 index 0000000..0ac5fbc --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_035_sequential_chain_kd_dead_end_rooms1_1035.json @@ -0,0 +1,615 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kd_1035", + "version": "0.1", + "seed": 1035, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 14, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_036_sequential_chain_kk_wrong_keys1_1036.json b/src/v2/automatic_maze_generation/generated_mazes/maze_036_sequential_chain_kk_wrong_keys1_1036.json new file mode 100644 index 0000000..e3df0a3 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_036_sequential_chain_kk_wrong_keys1_1036.json @@ -0,0 +1,813 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 3 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 8, + 5 + ], + "color": "blue" + }, + { + "id": "kY", + "position": [ + 2, + 4 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 12, + 6 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_kk_1036", + "version": "0.1", + "seed": 1036, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_037_winding_corridor_kd_wrong_keys2_1037.json b/src/v2/automatic_maze_generation/generated_mazes/maze_037_winding_corridor_kd_wrong_keys2_1037.json new file mode 100644 index 0000000..5c0712f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_037_winding_corridor_kd_wrong_keys2_1037.json @@ -0,0 +1,776 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 8, + 4 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 2, + 6 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 6 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 3, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "winding_corridor_kd_1037", + "version": "0.1", + "seed": 1037, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 14, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_038_winding_corridor_none_dead_end_rooms1_1038.json b/src/v2/automatic_maze_generation/generated_mazes/maze_038_winding_corridor_none_dead_end_rooms1_1038.json new file mode 100644 index 0000000..ef113ac --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_038_winding_corridor_none_dead_end_rooms1_1038.json @@ -0,0 +1,691 @@ +{ + "task_id": "winding_corridor_none_1038", + "version": "0.1", + "seed": 1038, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 7, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 10, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_039_multi_route_none_none_1039.json b/src/v2/automatic_maze_generation/generated_mazes/maze_039_multi_route_none_none_1039.json new file mode 100644 index 0000000..dfffefc --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_039_multi_route_none_none_1039.json @@ -0,0 +1,611 @@ +{ + "task_id": "multi_route_none_1039", + "version": "0.1", + "seed": 1039, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 8 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 13, + 7 + ], + [ + 13, + 6 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_040_side_vault_none_wrong_keys1_1040.json b/src/v2/automatic_maze_generation/generated_mazes/maze_040_side_vault_none_wrong_keys1_1040.json new file mode 100644 index 0000000..0b34c43 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_040_side_vault_none_wrong_keys1_1040.json @@ -0,0 +1,790 @@ +{ + "task_id": "side_vault_none_1040", + "version": "0.1", + "seed": 1040, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_041_sequential_chain_kd_dead_end_rooms2_1041.json b/src/v2/automatic_maze_generation/generated_mazes/maze_041_sequential_chain_kd_dead_end_rooms2_1041.json new file mode 100644 index 0000000..3b71bff --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_041_sequential_chain_kd_dead_end_rooms2_1041.json @@ -0,0 +1,615 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kd_1041", + "version": "0.1", + "seed": 1041, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_042_multi_route_none_none_1042.json b/src/v2/automatic_maze_generation/generated_mazes/maze_042_multi_route_none_none_1042.json new file mode 100644 index 0000000..8e7883a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_042_multi_route_none_none_1042.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1042", + "version": "0.1", + "seed": 1042, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_043_dense_maze_sg_wrong_keys2_1043.json b/src/v2/automatic_maze_generation/generated_mazes/maze_043_dense_maze_sg_wrong_keys2_1043.json new file mode 100644 index 0000000..617073b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_043_dense_maze_sg_wrong_keys2_1043.json @@ -0,0 +1,560 @@ +{ + "maze": { + "dimensions": [ + 11, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 10, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 3, + 9 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 3 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 7 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 1, + 12 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 5, + 7 + ], + "solution_path_length": 24, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_sg_1043", + "version": "0.1", + "seed": 1043, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 13 + ], + [ + 3, + 13 + ], + [ + 4, + 13 + ], + [ + 5, + 13 + ], + [ + 5, + 12 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_044_multi_route_none_dead_end_rooms2_1044.json b/src/v2/automatic_maze_generation/generated_mazes/maze_044_multi_route_none_dead_end_rooms2_1044.json new file mode 100644 index 0000000..da1a8ab --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_044_multi_route_none_dead_end_rooms2_1044.json @@ -0,0 +1,627 @@ +{ + "task_id": "multi_route_none_1044", + "version": "0.1", + "seed": 1044, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_045_winding_corridor_sg_wrong_keys2_1045.json b/src/v2/automatic_maze_generation/generated_mazes/maze_045_winding_corridor_sg_wrong_keys2_1045.json new file mode 100644 index 0000000..ad3b5c7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_045_winding_corridor_sg_wrong_keys2_1045.json @@ -0,0 +1,796 @@ +{ + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 16, + 4 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 15, + 6 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 1 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 6, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "winding_corridor_sg_1045", + "version": "0.1", + "seed": 1045, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 10, + 2 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 14, + 4 + ], + [ + 15, + 4 + ], + [ + 16, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_046_sequential_chain_sk_dead_end_rooms1_1046.json b/src/v2/automatic_maze_generation/generated_mazes/maze_046_sequential_chain_sk_dead_end_rooms1_1046.json new file mode 100644 index 0000000..2bd4a64 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_046_sequential_chain_sk_dead_end_rooms1_1046.json @@ -0,0 +1,855 @@ +{ + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 8, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_sk_1046", + "version": "0.1", + "seed": 1046, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_047_winding_corridor_kd_dead_end_rooms2_1047.json b/src/v2/automatic_maze_generation/generated_mazes/maze_047_winding_corridor_kd_dead_end_rooms2_1047.json new file mode 100644 index 0000000..83ecdc7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_047_winding_corridor_kd_dead_end_rooms2_1047.json @@ -0,0 +1,772 @@ +{ + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 4, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1047", + "version": "0.1", + "seed": 1047, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 13, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_048_side_vault_kd_none_1048.json b/src/v2/automatic_maze_generation/generated_mazes/maze_048_side_vault_kd_none_1048.json new file mode 100644 index 0000000..e2134c0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_048_side_vault_kd_none_1048.json @@ -0,0 +1,563 @@ +{ + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 2 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 7, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd" + }, + "task_id": "side_vault_kd_1048", + "version": "0.1", + "seed": 1048, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 2 + ], + [ + 6, + 2 + ], + [ + 5, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_049_side_vault_sg_dead_end_rooms2_1050.json b/src/v2/automatic_maze_generation/generated_mazes/maze_049_side_vault_sg_dead_end_rooms2_1050.json new file mode 100644 index 0000000..e5b7515 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_049_side_vault_sg_dead_end_rooms2_1050.json @@ -0,0 +1,618 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "side_vault_sg_1050", + "version": "0.1", + "seed": 1050, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 7 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_050_winding_corridor_sg_none_1051.json b/src/v2/automatic_maze_generation/generated_mazes/maze_050_winding_corridor_sg_none_1051.json new file mode 100644 index 0000000..68b9cc8 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_050_winding_corridor_sg_none_1051.json @@ -0,0 +1,775 @@ +{ + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 5, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1051", + "version": "0.1", + "seed": 1051, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_051_multi_route_none_wrong_keys1_1052.json b/src/v2/automatic_maze_generation/generated_mazes/maze_051_multi_route_none_wrong_keys1_1052.json new file mode 100644 index 0000000..d872f8f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_051_multi_route_none_wrong_keys1_1052.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1052", + "version": "0.1", + "seed": 1052, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_052_side_vault_kd_wrong_keys2_1053.json b/src/v2/automatic_maze_generation/generated_mazes/maze_052_side_vault_kd_wrong_keys2_1053.json new file mode 100644 index 0000000..79cfb48 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_052_side_vault_kd_wrong_keys2_1053.json @@ -0,0 +1,995 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 2 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 3, + 2 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 10, + 8 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "side_vault_kd_1053", + "version": "0.1", + "seed": 1053, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 27, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 2 + ], + [ + 7, + 2 + ], + [ + 6, + 2 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_053_winding_corridor_sg_none_1054.json b/src/v2/automatic_maze_generation/generated_mazes/maze_053_winding_corridor_sg_none_1054.json new file mode 100644 index 0000000..306570d --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_053_winding_corridor_sg_none_1054.json @@ -0,0 +1,947 @@ +{ + "maze": { + "dimensions": [ + 22, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 20, + 9 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ], + [ + 21, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 10, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 4, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1054", + "version": "0.1", + "seed": 1054, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_054_winding_corridor_none_dead_end_rooms1_1055.json b/src/v2/automatic_maze_generation/generated_mazes/maze_054_winding_corridor_none_dead_end_rooms1_1055.json new file mode 100644 index 0000000..dfc2f87 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_054_winding_corridor_none_dead_end_rooms1_1055.json @@ -0,0 +1,763 @@ +{ + "task_id": "winding_corridor_none_1055", + "version": "0.1", + "seed": 1055, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 6 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 12, + 3 + ], + [ + 13, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_055_winding_corridor_none_dead_end_rooms1_1056.json b/src/v2/automatic_maze_generation/generated_mazes/maze_055_winding_corridor_none_dead_end_rooms1_1056.json new file mode 100644 index 0000000..58d7bcc --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_055_winding_corridor_none_dead_end_rooms1_1056.json @@ -0,0 +1,763 @@ +{ + "task_id": "winding_corridor_none_1056", + "version": "0.1", + "seed": 1056, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 17, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 7 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 30, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ], + [ + 17, + 6 + ], + [ + 17, + 5 + ], + [ + 17, + 4 + ], + [ + 17, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_056_dense_maze_sk_none_1057.json b/src/v2/automatic_maze_generation/generated_mazes/maze_056_dense_maze_sk_none_1057.json new file mode 100644 index 0000000..e75e65e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_056_dense_maze_sk_none_1057.json @@ -0,0 +1,680 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 6 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 6 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 9, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 9 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 11 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 48, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1057", + "version": "0.1", + "seed": 1057, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 48, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 2, + 7 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 10, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_057_side_vault_sg_none_1058.json b/src/v2/automatic_maze_generation/generated_mazes/maze_057_side_vault_sg_none_1058.json new file mode 100644 index 0000000..2688926 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_057_side_vault_sg_none_1058.json @@ -0,0 +1,570 @@ +{ + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 1 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 8, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1058", + "version": "0.1", + "seed": 1058, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 5, + 1 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_058_winding_corridor_none_wrong_keys1_1059.json b/src/v2/automatic_maze_generation/generated_mazes/maze_058_winding_corridor_none_wrong_keys1_1059.json new file mode 100644 index 0000000..f8536e0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_058_winding_corridor_none_wrong_keys1_1059.json @@ -0,0 +1,763 @@ +{ + "task_id": "winding_corridor_none_1059", + "version": "0.1", + "seed": 1059, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 6 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 2 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_059_multi_route_none_none_1060.json b/src/v2/automatic_maze_generation/generated_mazes/maze_059_multi_route_none_none_1060.json new file mode 100644 index 0000000..b038c3f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_059_multi_route_none_none_1060.json @@ -0,0 +1,403 @@ +{ + "task_id": "multi_route_none_1060", + "version": "0.1", + "seed": 1060, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_060_dense_maze_sg_wrong_keys1_1061.json b/src/v2/automatic_maze_generation/generated_mazes/maze_060_dense_maze_sg_wrong_keys1_1061.json new file mode 100644 index 0000000..ea888aa --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_060_dense_maze_sg_wrong_keys1_1061.json @@ -0,0 +1,675 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 6 + ], + [ + 1, + 10 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 6 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 9, + 11 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 11 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 52, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_sg_1061", + "version": "0.1", + "seed": 1061, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 50, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 2, + 7 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_061_winding_corridor_none_dead_end_rooms1_1062.json b/src/v2/automatic_maze_generation/generated_mazes/maze_061_winding_corridor_none_dead_end_rooms1_1062.json new file mode 100644 index 0000000..85201da --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_061_winding_corridor_none_dead_end_rooms1_1062.json @@ -0,0 +1,747 @@ +{ + "task_id": "winding_corridor_none_1062", + "version": "0.1", + "seed": 1062, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 6, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_062_multi_route_none_none_1063.json b/src/v2/automatic_maze_generation/generated_mazes/maze_062_multi_route_none_none_1063.json new file mode 100644 index 0000000..371c690 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_062_multi_route_none_none_1063.json @@ -0,0 +1,771 @@ +{ + "task_id": "multi_route_none_1063", + "version": "0.1", + "seed": 1063, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_063_multi_route_none_wrong_keys1_1064.json b/src/v2/automatic_maze_generation/generated_mazes/maze_063_multi_route_none_wrong_keys1_1064.json new file mode 100644 index 0000000..7b7abff --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_063_multi_route_none_wrong_keys1_1064.json @@ -0,0 +1,747 @@ +{ + "task_id": "multi_route_none_1064", + "version": "0.1", + "seed": 1064, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 3, + 12 + ], + [ + 4, + 12 + ], + [ + 5, + 12 + ], + [ + 6, + 12 + ], + [ + 7, + 12 + ], + [ + 8, + 12 + ], + [ + 9, + 12 + ], + [ + 10, + 12 + ], + [ + 11, + 12 + ], + [ + 11, + 11 + ], + [ + 11, + 10 + ], + [ + 11, + 9 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_064_winding_corridor_kd_none_1065.json b/src/v2/automatic_maze_generation/generated_mazes/maze_064_winding_corridor_kd_none_1065.json new file mode 100644 index 0000000..75fbaa6 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_064_winding_corridor_kd_none_1065.json @@ -0,0 +1,768 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 4 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 6, + "chain_pattern": "kd" + }, + "task_id": "winding_corridor_kd_1065", + "version": "0.1", + "seed": 1065, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 9, + 4 + ], + [ + 10, + 4 + ], + [ + 11, + 4 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_065_sequential_chain_sk_wrong_keys2_1066.json b/src/v2/automatic_maze_generation/generated_mazes/maze_065_sequential_chain_sk_wrong_keys2_1066.json new file mode 100644 index 0000000..e9f417a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_065_sequential_chain_sk_wrong_keys2_1066.json @@ -0,0 +1,955 @@ +{ + "maze": { + "dimensions": [ + 18, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 9 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 9, + 7 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 8, + 8 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 4, + 5 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_sk_1066", + "version": "0.1", + "seed": 1066, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ], + [ + 15, + 8 + ], + [ + 16, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_066_winding_corridor_kd_dead_end_rooms1_1067.json b/src/v2/automatic_maze_generation/generated_mazes/maze_066_winding_corridor_kd_dead_end_rooms1_1067.json new file mode 100644 index 0000000..ab8fcad --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_066_winding_corridor_kd_dead_end_rooms1_1067.json @@ -0,0 +1,860 @@ +{ + "maze": { + "dimensions": [ + 20, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 17, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 6, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1067", + "version": "0.1", + "seed": 1067, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 27, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 9, + 2 + ], + [ + 10, + 2 + ], + [ + 11, + 2 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ], + [ + 17, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_067_sequential_chain_ks_none_1068.json b/src/v2/automatic_maze_generation/generated_mazes/maze_067_sequential_chain_ks_none_1068.json new file mode 100644 index 0000000..47104c9 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_067_sequential_chain_ks_none_1068.json @@ -0,0 +1,987 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 8, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 10, + 9 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks" + }, + "task_id": "sequential_chain_ks_1068", + "version": "0.1", + "seed": 1068, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_068_side_vault_sg_none_1069.json b/src/v2/automatic_maze_generation/generated_mazes/maze_068_side_vault_sg_none_1069.json new file mode 100644 index 0000000..5fe9540 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_068_side_vault_sg_none_1069.json @@ -0,0 +1,982 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 10 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1069", + "version": "0.1", + "seed": 1069, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_069_side_vault_sg_none_1070.json b/src/v2/automatic_maze_generation/generated_mazes/maze_069_side_vault_sg_none_1070.json new file mode 100644 index 0000000..e7cb91e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_069_side_vault_sg_none_1070.json @@ -0,0 +1,650 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 1 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1070", + "version": "0.1", + "seed": 1070, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 5, + 1 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_070_winding_corridor_kd_dead_end_rooms1_1071.json b/src/v2/automatic_maze_generation/generated_mazes/maze_070_winding_corridor_kd_dead_end_rooms1_1071.json new file mode 100644 index 0000000..3094d2e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_070_winding_corridor_kd_dead_end_rooms1_1071.json @@ -0,0 +1,928 @@ +{ + "maze": { + "dimensions": [ + 22, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 20, + 9 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ], + [ + 21, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 6, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_kd_1071", + "version": "0.1", + "seed": 1071, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_071_sequential_chain_ks_none_1072.json b/src/v2/automatic_maze_generation/generated_mazes/maze_071_sequential_chain_ks_none_1072.json new file mode 100644 index 0000000..916e561 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_071_sequential_chain_ks_none_1072.json @@ -0,0 +1,1103 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 8, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 9 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks" + }, + "task_id": "sequential_chain_ks_1072", + "version": "0.1", + "seed": 1072, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_072_side_vault_sg_none_1073.json b/src/v2/automatic_maze_generation/generated_mazes/maze_072_side_vault_sg_none_1073.json new file mode 100644 index 0000000..8b88159 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_072_side_vault_sg_none_1073.json @@ -0,0 +1,870 @@ +{ + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 10 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 10, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1073", + "version": "0.1", + "seed": 1073, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 4, + 10 + ], + [ + 4, + 9 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_073_sequential_chain_sg_none_1074.json b/src/v2/automatic_maze_generation/generated_mazes/maze_073_sequential_chain_sg_none_1074.json new file mode 100644 index 0000000..85914bd --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_073_sequential_chain_sg_none_1074.json @@ -0,0 +1,854 @@ +{ + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 9 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "sequential_chain_sg_1074", + "version": "0.1", + "seed": 1074, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_074_sequential_chain_none_none_1075.json b/src/v2/automatic_maze_generation/generated_mazes/maze_074_sequential_chain_none_none_1075.json new file mode 100644 index 0000000..06c4702 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_074_sequential_chain_none_none_1075.json @@ -0,0 +1,818 @@ +{ + "task_id": "sequential_chain_none_1075", + "version": "0.1", + "seed": 1075, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 9 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 16, + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_075_side_vault_none_none_1076.json b/src/v2/automatic_maze_generation/generated_mazes/maze_075_side_vault_none_none_1076.json new file mode 100644 index 0000000..6defbf5 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_075_side_vault_none_none_1076.json @@ -0,0 +1,798 @@ +{ + "task_id": "side_vault_none_1076", + "version": "0.1", + "seed": 1076, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_076_winding_corridor_none_dead_end_rooms2_1077.json b/src/v2/automatic_maze_generation/generated_mazes/maze_076_winding_corridor_none_dead_end_rooms2_1077.json new file mode 100644 index 0000000..1c85a44 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_076_winding_corridor_none_dead_end_rooms2_1077.json @@ -0,0 +1,683 @@ +{ + "task_id": "winding_corridor_none_1077", + "version": "0.1", + "seed": 1077, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 16, + 4 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 6 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 14, + 4 + ], + [ + 15, + 4 + ], + [ + 16, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_077_winding_corridor_none_dead_end_rooms2_1078.json b/src/v2/automatic_maze_generation/generated_mazes/maze_077_winding_corridor_none_dead_end_rooms2_1078.json new file mode 100644 index 0000000..24d93de --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_077_winding_corridor_none_dead_end_rooms2_1078.json @@ -0,0 +1,835 @@ +{ + "task_id": "winding_corridor_none_1078", + "version": "0.1", + "seed": 1078, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 22, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 20, + 8 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ], + [ + 21, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 12, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 5 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_078_dense_maze_kk_wrong_keys1_1079.json b/src/v2/automatic_maze_generation/generated_mazes/maze_078_dense_maze_kk_wrong_keys1_1079.json new file mode 100644 index 0000000..bf6ee65 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_078_dense_maze_kk_wrong_keys1_1079.json @@ -0,0 +1,594 @@ +{ + "maze": { + "dimensions": [ + 15, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 13, + 0 + ], + [ + 13, + 4 + ], + [ + 13, + 10 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 1 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 5, + 6 + ], + "color": "blue" + }, + { + "id": "kY", + "position": [ + 9, + 6 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 7, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 9 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 7, + 5 + ], + "solution_path_length": 28, + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_kk_1079", + "version": "0.1", + "seed": 1079, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 28, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_079_sequential_chain_sk_dead_end_rooms1_1080.json b/src/v2/automatic_maze_generation/generated_mazes/maze_079_sequential_chain_sk_dead_end_rooms1_1080.json new file mode 100644 index 0000000..31cf7d3 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_079_sequential_chain_sk_dead_end_rooms1_1080.json @@ -0,0 +1,763 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_sk_1080", + "version": "0.1", + "seed": 1080, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_080_sequential_chain_sg_wrong_keys1_1081.json b/src/v2/automatic_maze_generation/generated_mazes/maze_080_sequential_chain_sg_wrong_keys1_1081.json new file mode 100644 index 0000000..69dc07a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_080_sequential_chain_sg_wrong_keys1_1081.json @@ -0,0 +1,790 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 8, + 5 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 3 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_sg_1081", + "version": "0.1", + "seed": 1081, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_081_multi_route_none_wrong_keys1_1082.json b/src/v2/automatic_maze_generation/generated_mazes/maze_081_multi_route_none_wrong_keys1_1082.json new file mode 100644 index 0000000..3e32230 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_081_multi_route_none_wrong_keys1_1082.json @@ -0,0 +1,659 @@ +{ + "task_id": "multi_route_none_1082", + "version": "0.1", + "seed": 1082, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_082_multi_route_none_dead_end_rooms2_1083.json b/src/v2/automatic_maze_generation/generated_mazes/maze_082_multi_route_none_dead_end_rooms2_1083.json new file mode 100644 index 0000000..8fbf2f1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_082_multi_route_none_dead_end_rooms2_1083.json @@ -0,0 +1,643 @@ +{ + "task_id": "multi_route_none_1083", + "version": "0.1", + "seed": 1083, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 10 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 8, + 10 + ], + [ + 9, + 10 + ], + [ + 10, + 10 + ], + [ + 11, + 10 + ], + [ + 11, + 9 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_083_winding_corridor_sg_dead_end_rooms2_1084.json b/src/v2/automatic_maze_generation/generated_mazes/maze_083_winding_corridor_sg_dead_end_rooms2_1084.json new file mode 100644 index 0000000..637a6fb --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_083_winding_corridor_sg_dead_end_rooms2_1084.json @@ -0,0 +1,695 @@ +{ + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 8, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 8, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 3, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_sg_1084", + "version": "0.1", + "seed": 1084, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 8, + 5 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ], + [ + 8, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_084_dense_maze_sk_wrong_keys1_1085.json b/src/v2/automatic_maze_generation/generated_mazes/maze_084_dense_maze_sk_wrong_keys1_1085.json new file mode 100644 index 0000000..8435b53 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_084_dense_maze_sk_wrong_keys1_1085.json @@ -0,0 +1,571 @@ +{ + "maze": { + "dimensions": [ + 11, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 9 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 4, + 1 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 7, + 10 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 5, + 6 + ], + "solution_path_length": 34, + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_sk_1085", + "version": "0.1", + "seed": 1085, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 34, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 8, + 7 + ], + [ + 7, + 7 + ], + [ + 6, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 4, + 9 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_085_dense_maze_kk_wrong_keys2_1086.json b/src/v2/automatic_maze_generation/generated_mazes/maze_085_dense_maze_kk_wrong_keys2_1086.json new file mode 100644 index 0000000..110017a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_085_dense_maze_kk_wrong_keys2_1086.json @@ -0,0 +1,683 @@ +{ + "maze": { + "dimensions": [ + 15, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 8 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 10 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 12 + ], + [ + 13, + 0 + ], + [ + 13, + 4 + ], + [ + 13, + 12 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 8 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 8, + 7 + ], + "color": "blue" + }, + { + "id": "kY", + "position": [ + 7, + 10 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 4 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 11, + 9 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 7, + 6 + ], + "solution_path_length": 34, + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_kk_1086", + "version": "0.1", + "seed": 1086, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 34, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_086_multi_route_none_none_1087.json b/src/v2/automatic_maze_generation/generated_mazes/maze_086_multi_route_none_none_1087.json new file mode 100644 index 0000000..00adcee --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_086_multi_route_none_none_1087.json @@ -0,0 +1,643 @@ +{ + "task_id": "multi_route_none_1087", + "version": "0.1", + "seed": 1087, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 10 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 8, + 10 + ], + [ + 9, + 10 + ], + [ + 10, + 10 + ], + [ + 11, + 10 + ], + [ + 11, + 9 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_087_dense_maze_kk_distractor_chain2_1089.json b/src/v2/automatic_maze_generation/generated_mazes/maze_087_dense_maze_kk_distractor_chain2_1089.json new file mode 100644 index 0000000..9926dce --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_087_dense_maze_kk_distractor_chain2_1089.json @@ -0,0 +1,582 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 8 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 1, + 4 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 3, + 11 + ], + "color": "blue" + }, + { + "id": "kG", + "position": [ + 10, + 10 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 1, + 11 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 8, + 11 + ], + "requires_key": "blue", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 9, + 10 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 20, + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 10, + 10 + ], + [ + 9, + 10 + ], + [ + 8, + 10 + ] + ] + } + }, + "task_id": "dense_maze_kk_1089", + "version": "0.1", + "seed": 1089, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_088_side_vault_kd_wrong_keys2_1089.json b/src/v2/automatic_maze_generation/generated_mazes/maze_088_side_vault_kd_wrong_keys2_1089.json new file mode 100644 index 0000000..4778055 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_088_side_vault_kd_wrong_keys2_1089.json @@ -0,0 +1,763 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 3 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 3, + 8 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 7 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "side_vault_kd_1089", + "version": "0.1", + "seed": 1089, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 5 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_089_sequential_chain_kd_dead_end_rooms2_1090.json b/src/v2/automatic_maze_generation/generated_mazes/maze_089_sequential_chain_kd_dead_end_rooms2_1090.json new file mode 100644 index 0000000..dd6bace --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_089_sequential_chain_kd_dead_end_rooms2_1090.json @@ -0,0 +1,767 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kd_1090", + "version": "0.1", + "seed": 1090, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_090_side_vault_none_wrong_keys2_1091.json b/src/v2/automatic_maze_generation/generated_mazes/maze_090_side_vault_none_wrong_keys2_1091.json new file mode 100644 index 0000000..cf601fe --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_090_side_vault_none_wrong_keys2_1091.json @@ -0,0 +1,662 @@ +{ + "task_id": "side_vault_none_1091", + "version": "0.1", + "seed": 1091, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_091_dense_maze_sk_wrong_keys2_1097.json b/src/v2/automatic_maze_generation/generated_mazes/maze_091_dense_maze_sk_wrong_keys2_1097.json new file mode 100644 index 0000000..d5e03f4 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_091_dense_maze_sk_wrong_keys2_1097.json @@ -0,0 +1,476 @@ +{ + "maze": { + "dimensions": [ + 11, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 3 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 2, + 9 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 9, + 5 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 5, + 5 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 1, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 5, + 5 + ], + "solution_path_length": 30, + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_sk_1097", + "version": "0.1", + "seed": 1097, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 3, + 8 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_092_side_vault_sg_wrong_keys2_1093.json b/src/v2/automatic_maze_generation/generated_mazes/maze_092_side_vault_sg_wrong_keys2_1093.json new file mode 100644 index 0000000..b3b3a15 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_092_side_vault_sg_wrong_keys2_1093.json @@ -0,0 +1,867 @@ +{ + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 9, + 7 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 8 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 10 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 11, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "side_vault_sg_1093", + "version": "0.1", + "seed": 1093, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_093_dense_maze_kk_distractor_chain2_1098.json b/src/v2/automatic_maze_generation/generated_mazes/maze_093_dense_maze_kk_distractor_chain2_1098.json new file mode 100644 index 0000000..7b2c994 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_093_dense_maze_kk_distractor_chain2_1098.json @@ -0,0 +1,678 @@ +{ + "maze": { + "dimensions": [ + 15, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 8 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 6 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 13, + 0 + ], + [ + 13, + 2 + ], + [ + 13, + 12 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 5 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 7, + 10 + ], + "color": "blue" + }, + { + "id": "kG", + "position": [ + 12, + 8 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 9 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 11, + 11 + ], + "requires_key": "blue", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 11, + 8 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 7, + 6 + ], + "solution_path_length": 32, + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 12, + 8 + ], + [ + 11, + 8 + ], + [ + 10, + 8 + ] + ] + } + }, + "task_id": "dense_maze_kk_1098", + "version": "0.1", + "seed": 1098, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 32, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 2, + 5 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 8, + 10 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ], + [ + 11, + 10 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_094_multi_route_none_none_1095.json b/src/v2/automatic_maze_generation/generated_mazes/maze_094_multi_route_none_none_1095.json new file mode 100644 index 0000000..3d968c5 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_094_multi_route_none_none_1095.json @@ -0,0 +1,403 @@ +{ + "task_id": "multi_route_none_1095", + "version": "0.1", + "seed": 1095, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_095_sequential_chain_none_dead_end_rooms2_1096.json b/src/v2/automatic_maze_generation/generated_mazes/maze_095_sequential_chain_none_dead_end_rooms2_1096.json new file mode 100644 index 0000000..e397fa2 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_095_sequential_chain_none_dead_end_rooms2_1096.json @@ -0,0 +1,750 @@ +{ + "task_id": "sequential_chain_none_1096", + "version": "0.1", + "seed": 1096, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_096_dense_maze_none_none_1097.json b/src/v2/automatic_maze_generation/generated_mazes/maze_096_dense_maze_none_none_1097.json new file mode 100644 index 0000000..43a8154 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_096_dense_maze_none_none_1097.json @@ -0,0 +1,651 @@ +{ + "task_id": "dense_maze_none_1097", + "version": "0.1", + "seed": 1097, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 13, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 6 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 12 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 8 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 12, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 13 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "none", + "dense_maze_cells": [ + 6, + 7 + ], + "solution_path_length": 38 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 38, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 13 + ], + [ + 3, + 13 + ], + [ + 4, + 13 + ], + [ + 5, + 13 + ], + [ + 6, + 13 + ], + [ + 7, + 13 + ], + [ + 8, + 13 + ], + [ + 9, + 13 + ], + [ + 9, + 12 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_097_multi_route_none_dead_end_rooms2_1098.json b/src/v2/automatic_maze_generation/generated_mazes/maze_097_multi_route_none_dead_end_rooms2_1098.json new file mode 100644 index 0000000..36b5bf9 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_097_multi_route_none_dead_end_rooms2_1098.json @@ -0,0 +1,747 @@ +{ + "task_id": "multi_route_none_1098", + "version": "0.1", + "seed": 1098, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_098_sequential_chain_kd_none_1099.json b/src/v2/automatic_maze_generation/generated_mazes/maze_098_sequential_chain_kd_none_1099.json new file mode 100644 index 0000000..7b3ddf2 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_098_sequential_chain_kd_none_1099.json @@ -0,0 +1,1067 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd" + }, + "task_id": "sequential_chain_kd_1099", + "version": "0.1", + "seed": 1099, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_099_winding_corridor_sg_none_1100.json b/src/v2/automatic_maze_generation/generated_mazes/maze_099_winding_corridor_sg_none_1100.json new file mode 100644 index 0000000..aa2901d --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_099_winding_corridor_sg_none_1100.json @@ -0,0 +1,771 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 10, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 6, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1100", + "version": "0.1", + "seed": 1100, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_100_side_vault_kd_dead_end_rooms1_1101.json b/src/v2/automatic_maze_generation/generated_mazes/maze_100_side_vault_kd_dead_end_rooms1_1101.json new file mode 100644 index 0000000..91e2371 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_100_side_vault_kd_dead_end_rooms1_1101.json @@ -0,0 +1,559 @@ +{ + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 8 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_kd_1101", + "version": "0.1", + "seed": 1101, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 5, + 8 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_101_side_vault_none_wrong_keys2_1102.json b/src/v2/automatic_maze_generation/generated_mazes/maze_101_side_vault_none_wrong_keys2_1102.json new file mode 100644 index 0000000..7a4c161 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_101_side_vault_none_wrong_keys2_1102.json @@ -0,0 +1,582 @@ +{ + "task_id": "side_vault_none_1102", + "version": "0.1", + "seed": 1102, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_102_sequential_chain_kk_dead_end_rooms2_1103.json b/src/v2/automatic_maze_generation/generated_mazes/maze_102_sequential_chain_kk_dead_end_rooms2_1103.json new file mode 100644 index 0000000..1bbf764 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_102_sequential_chain_kk_dead_end_rooms2_1103.json @@ -0,0 +1,858 @@ +{ + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 7, + 8 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 9 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kk", + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kk_1103", + "version": "0.1", + "seed": 1103, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_103_side_vault_kd_dead_end_rooms1_1104.json b/src/v2/automatic_maze_generation/generated_mazes/maze_103_side_vault_kd_dead_end_rooms1_1104.json new file mode 100644 index 0000000..2b29659 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_103_side_vault_kd_dead_end_rooms1_1104.json @@ -0,0 +1,755 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 10 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_kd_1104", + "version": "0.1", + "seed": 1104, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 4, + 10 + ], + [ + 4, + 9 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_104_winding_corridor_none_dead_end_rooms1_1105.json b/src/v2/automatic_maze_generation/generated_mazes/maze_104_winding_corridor_none_dead_end_rooms1_1105.json new file mode 100644 index 0000000..818a971 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_104_winding_corridor_none_dead_end_rooms1_1105.json @@ -0,0 +1,619 @@ +{ + "task_id": "winding_corridor_none_1105", + "version": "0.1", + "seed": 1105, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 12, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 7 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 10, + 4 + ], + [ + 11, + 4 + ], + [ + 12, + 4 + ], + [ + 12, + 3 + ], + [ + 12, + 2 + ], + [ + 12, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_105_sequential_chain_ks_dead_end_rooms1_1106.json b/src/v2/automatic_maze_generation/generated_mazes/maze_105_sequential_chain_ks_dead_end_rooms1_1106.json new file mode 100644 index 0000000..8c1d0f7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_105_sequential_chain_ks_dead_end_rooms1_1106.json @@ -0,0 +1,727 @@ +{ + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 10, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_ks_1106", + "version": "0.1", + "seed": 1106, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_106_multi_route_none_dead_end_rooms2_1107.json b/src/v2/automatic_maze_generation/generated_mazes/maze_106_multi_route_none_dead_end_rooms2_1107.json new file mode 100644 index 0000000..685c556 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_106_multi_route_none_dead_end_rooms2_1107.json @@ -0,0 +1,747 @@ +{ + "task_id": "multi_route_none_1107", + "version": "0.1", + "seed": 1107, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_107_multi_route_none_wrong_keys2_1108.json b/src/v2/automatic_maze_generation/generated_mazes/maze_107_multi_route_none_wrong_keys2_1108.json new file mode 100644 index 0000000..9ccd6f1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_107_multi_route_none_wrong_keys2_1108.json @@ -0,0 +1,659 @@ +{ + "task_id": "multi_route_none_1108", + "version": "0.1", + "seed": 1108, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_108_sequential_chain_none_dead_end_rooms1_1109.json b/src/v2/automatic_maze_generation/generated_mazes/maze_108_sequential_chain_none_dead_end_rooms1_1109.json new file mode 100644 index 0000000..0838a04 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_108_sequential_chain_none_dead_end_rooms1_1109.json @@ -0,0 +1,1042 @@ +{ + "task_id": "sequential_chain_none_1109", + "version": "0.1", + "seed": 1109, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_109_sequential_chain_kd_wrong_keys1_1110.json b/src/v2/automatic_maze_generation/generated_mazes/maze_109_sequential_chain_kd_wrong_keys1_1110.json new file mode 100644 index 0000000..ca00d7a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_109_sequential_chain_kd_wrong_keys1_1110.json @@ -0,0 +1,858 @@ +{ + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 2 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 9, + 10 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_kd_1110", + "version": "0.1", + "seed": 1110, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_110_multi_route_none_none_1111.json b/src/v2/automatic_maze_generation/generated_mazes/maze_110_multi_route_none_none_1111.json new file mode 100644 index 0000000..15a0d8b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_110_multi_route_none_none_1111.json @@ -0,0 +1,747 @@ +{ + "task_id": "multi_route_none_1111", + "version": "0.1", + "seed": 1111, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 3, + 12 + ], + [ + 4, + 12 + ], + [ + 5, + 12 + ], + [ + 6, + 12 + ], + [ + 7, + 12 + ], + [ + 8, + 12 + ], + [ + 9, + 12 + ], + [ + 10, + 12 + ], + [ + 11, + 12 + ], + [ + 11, + 11 + ], + [ + 11, + 10 + ], + [ + 11, + 9 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_111_side_vault_none_dead_end_rooms1_1112.json b/src/v2/automatic_maze_generation/generated_mazes/maze_111_side_vault_none_dead_end_rooms1_1112.json new file mode 100644 index 0000000..c041d42 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_111_side_vault_none_dead_end_rooms1_1112.json @@ -0,0 +1,578 @@ +{ + "task_id": "side_vault_none_1112", + "version": "0.1", + "seed": 1112, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_112_winding_corridor_none_none_1113.json b/src/v2/automatic_maze_generation/generated_mazes/maze_112_winding_corridor_none_none_1113.json new file mode 100644 index 0000000..5a0b1ea --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_112_winding_corridor_none_none_1113.json @@ -0,0 +1,763 @@ +{ + "task_id": "winding_corridor_none_1113", + "version": "0.1", + "seed": 1113, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 5, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 8, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_113_dense_maze_sg_wrong_keys2_1114.json b/src/v2/automatic_maze_generation/generated_mazes/maze_113_dense_maze_sg_wrong_keys2_1114.json new file mode 100644 index 0000000..b0718b3 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_113_dense_maze_sg_wrong_keys2_1114.json @@ -0,0 +1,836 @@ +{ + "maze": { + "dimensions": [ + 15, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 10 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 10 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 12 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 14 + ], + [ + 13, + 0 + ], + [ + 13, + 4 + ], + [ + 13, + 14 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 14, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 11, + 13 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 4, + 13 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 2, + 9 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 7, + 2 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 7, + 7 + ], + "solution_path_length": 60, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_sg_1114", + "version": "0.1", + "seed": 1114, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 60, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 4, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 3, + 4 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 8, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 11, + 6 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_114_side_vault_kd_none_1115.json b/src/v2/automatic_maze_generation/generated_mazes/maze_114_side_vault_kd_none_1115.json new file mode 100644 index 0000000..a87438f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_114_side_vault_kd_none_1115.json @@ -0,0 +1,567 @@ +{ + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd" + }, + "task_id": "side_vault_kd_1115", + "version": "0.1", + "seed": 1115, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 5, + 1 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_115_dense_maze_ks_wrong_keys1_1119.json b/src/v2/automatic_maze_generation/generated_mazes/maze_115_dense_maze_ks_wrong_keys1_1119.json new file mode 100644 index 0000000..6d1b298 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_115_dense_maze_ks_wrong_keys1_1119.json @@ -0,0 +1,487 @@ +{ + "maze": { + "dimensions": [ + 11, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 6 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 1 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 3, + 5 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 6 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 8, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 5, + 5 + ], + "solution_path_length": 24, + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_ks_1119", + "version": "0.1", + "seed": 1119, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 8, + 5 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_116_sequential_chain_sk_none_1117.json b/src/v2/automatic_maze_generation/generated_mazes/maze_116_sequential_chain_sk_none_1117.json new file mode 100644 index 0000000..7a28532 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_116_sequential_chain_sk_none_1117.json @@ -0,0 +1,963 @@ +{ + "maze": { + "dimensions": [ + 18, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 9 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 10, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk" + }, + "task_id": "sequential_chain_sk_1117", + "version": "0.1", + "seed": 1117, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ], + [ + 15, + 8 + ], + [ + 16, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_117_multi_route_none_wrong_keys1_1118.json b/src/v2/automatic_maze_generation/generated_mazes/maze_117_multi_route_none_wrong_keys1_1118.json new file mode 100644 index 0000000..eda33b7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_117_multi_route_none_wrong_keys1_1118.json @@ -0,0 +1,571 @@ +{ + "task_id": "multi_route_none_1118", + "version": "0.1", + "seed": 1118, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 10, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_118_winding_corridor_sg_wrong_keys1_1119.json b/src/v2/automatic_maze_generation/generated_mazes/maze_118_winding_corridor_sg_wrong_keys1_1119.json new file mode 100644 index 0000000..9aee20a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_118_winding_corridor_sg_wrong_keys1_1119.json @@ -0,0 +1,715 @@ +{ + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 7, + 5 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 3 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 6, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "winding_corridor_sg_1119", + "version": "0.1", + "seed": 1119, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_119_dense_maze_kk_none_1122.json b/src/v2/automatic_maze_generation/generated_mazes/maze_119_dense_maze_kk_none_1122.json new file mode 100644 index 0000000..dfcd5c6 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_119_dense_maze_kk_none_1122.json @@ -0,0 +1,487 @@ +{ + "maze": { + "dimensions": [ + 13, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 8 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 2 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 9, + 5 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 8, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 11, + 7 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 6, + 5 + ], + "solution_path_length": 18, + "chain_pattern": "kk" + }, + "task_id": "dense_maze_kk_1122", + "version": "0.1", + "seed": 1122, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_120_dense_maze_sk_none_1122.json b/src/v2/automatic_maze_generation/generated_mazes/maze_120_dense_maze_sk_none_1122.json new file mode 100644 index 0000000..b108100 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_120_dense_maze_sk_none_1122.json @@ -0,0 +1,564 @@ +{ + "maze": { + "dimensions": [ + 15, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 13, + 0 + ], + [ + 13, + 2 + ], + [ + 13, + 10 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 9, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 2 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 7, + 5 + ], + "solution_path_length": 24, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1122", + "version": "0.1", + "seed": 1122, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_121_sequential_chain_sk_none_1122.json b/src/v2/automatic_maze_generation/generated_mazes/maze_121_sequential_chain_sk_none_1122.json new file mode 100644 index 0000000..7adde95 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_121_sequential_chain_sk_none_1122.json @@ -0,0 +1,959 @@ +{ + "maze": { + "dimensions": [ + 18, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 9 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 10, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk" + }, + "task_id": "sequential_chain_sk_1122", + "version": "0.1", + "seed": 1122, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ], + [ + 15, + 8 + ], + [ + 16, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_122_side_vault_kd_wrong_keys1_1123.json b/src/v2/automatic_maze_generation/generated_mazes/maze_122_side_vault_kd_wrong_keys1_1123.json new file mode 100644 index 0000000..0666080 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_122_side_vault_kd_wrong_keys1_1123.json @@ -0,0 +1,730 @@ +{ + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 8 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 10, + 7 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 12, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "side_vault_kd_1123", + "version": "0.1", + "seed": 1123, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 6, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_123_winding_corridor_kd_wrong_keys2_1124.json b/src/v2/automatic_maze_generation/generated_mazes/maze_123_winding_corridor_kd_wrong_keys2_1124.json new file mode 100644 index 0000000..aa0857b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_123_winding_corridor_kd_wrong_keys2_1124.json @@ -0,0 +1,792 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 7, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 3 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 8, + 2 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 8, + 3 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 3, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "winding_corridor_kd_1124", + "version": "0.1", + "seed": 1124, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 12, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_124_multi_route_none_dead_end_rooms2_1125.json b/src/v2/automatic_maze_generation/generated_mazes/maze_124_multi_route_none_dead_end_rooms2_1125.json new file mode 100644 index 0000000..55ac4a0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_124_multi_route_none_dead_end_rooms2_1125.json @@ -0,0 +1,515 @@ +{ + "task_id": "multi_route_none_1125", + "version": "0.1", + "seed": 1125, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_125_side_vault_none_none_1126.json b/src/v2/automatic_maze_generation/generated_mazes/maze_125_side_vault_none_none_1126.json new file mode 100644 index 0000000..d61b290 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_125_side_vault_none_none_1126.json @@ -0,0 +1,594 @@ +{ + "task_id": "side_vault_none_1126", + "version": "0.1", + "seed": 1126, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_126_sequential_chain_kd_dead_end_rooms1_1127.json b/src/v2/automatic_maze_generation/generated_mazes/maze_126_sequential_chain_kd_dead_end_rooms1_1127.json new file mode 100644 index 0000000..cc89ce1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_126_sequential_chain_kd_dead_end_rooms1_1127.json @@ -0,0 +1,727 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kd_1127", + "version": "0.1", + "seed": 1127, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_127_winding_corridor_sg_none_1128.json b/src/v2/automatic_maze_generation/generated_mazes/maze_127_winding_corridor_sg_none_1128.json new file mode 100644 index 0000000..45e7a3c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_127_winding_corridor_sg_none_1128.json @@ -0,0 +1,707 @@ +{ + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 8, + 2 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 3, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1128", + "version": "0.1", + "seed": 1128, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 12, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 3 + ], + [ + 8, + 2 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_128_sequential_chain_sg_none_1129.json b/src/v2/automatic_maze_generation/generated_mazes/maze_128_sequential_chain_sg_none_1129.json new file mode 100644 index 0000000..078a7cc --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_128_sequential_chain_sg_none_1129.json @@ -0,0 +1,1078 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "sequential_chain_sg_1129", + "version": "0.1", + "seed": 1129, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_129_dense_maze_sg_distractor_chain2_1130.json b/src/v2/automatic_maze_generation/generated_mazes/maze_129_dense_maze_sg_distractor_chain2_1130.json new file mode 100644 index 0000000..4efc2ca --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_129_dense_maze_sg_distractor_chain2_1130.json @@ -0,0 +1,584 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 8 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 8 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kG", + "position": [ + 4, + 2 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DG", + "position": [ + 4, + 3 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 6 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 3, + 10 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 24, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ] + ] + } + }, + "task_id": "dense_maze_sg_1130", + "version": "0.1", + "seed": 1130, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 3, + 10 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_130_winding_corridor_sg_none_1132.json b/src/v2/automatic_maze_generation/generated_mazes/maze_130_winding_corridor_sg_none_1132.json new file mode 100644 index 0000000..983e65f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_130_winding_corridor_sg_none_1132.json @@ -0,0 +1,863 @@ +{ + "maze": { + "dimensions": [ + 20, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 7, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 1 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 3 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 3, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1132", + "version": "0.1", + "seed": 1132, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 10, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_131_dense_maze_kd_none_1132.json b/src/v2/automatic_maze_generation/generated_mazes/maze_131_dense_maze_kd_none_1132.json new file mode 100644 index 0000000..04a9585 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_131_dense_maze_kd_none_1132.json @@ -0,0 +1,640 @@ +{ + "maze": { + "dimensions": [ + 13, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 12 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 8 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 12, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 5 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 3, + 7 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kd", + "dense_maze_cells": [ + 6, + 7 + ], + "solution_path_length": 30, + "chain_pattern": "kd" + }, + "task_id": "dense_maze_kd_1132", + "version": "0.1", + "seed": 1132, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 30, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 4, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 2, + 9 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 13 + ], + [ + 7, + 13 + ], + [ + 8, + 13 + ], + [ + 9, + 13 + ], + [ + 10, + 13 + ], + [ + 11, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_132_sequential_chain_ks_dead_end_rooms1_1133.json b/src/v2/automatic_maze_generation/generated_mazes/maze_132_sequential_chain_ks_dead_end_rooms1_1133.json new file mode 100644 index 0000000..0b21149 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_132_sequential_chain_ks_dead_end_rooms1_1133.json @@ -0,0 +1,807 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 10, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_ks_1133", + "version": "0.1", + "seed": 1133, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_133_winding_corridor_sg_none_1134.json b/src/v2/automatic_maze_generation/generated_mazes/maze_133_winding_corridor_sg_none_1134.json new file mode 100644 index 0000000..0adee05 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_133_winding_corridor_sg_none_1134.json @@ -0,0 +1,867 @@ +{ + "maze": { + "dimensions": [ + 20, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 12, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 6 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 4, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1134", + "version": "0.1", + "seed": 1134, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 12, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_134_dense_maze_ks_none_1135.json b/src/v2/automatic_maze_generation/generated_mazes/maze_134_dense_maze_ks_none_1135.json new file mode 100644 index 0000000..3daba2c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_134_dense_maze_ks_none_1135.json @@ -0,0 +1,624 @@ +{ + "maze": { + "dimensions": [ + 11, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 4 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 10, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 7, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 13 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 5, + 7 + ], + "solution_path_length": 36, + "chain_pattern": "ks" + }, + "task_id": "dense_maze_ks_1135", + "version": "0.1", + "seed": 1135, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 36, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 13 + ], + [ + 7, + 13 + ], + [ + 7, + 12 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_135_winding_corridor_none_dead_end_rooms2_1136.json b/src/v2/automatic_maze_generation/generated_mazes/maze_135_winding_corridor_none_dead_end_rooms2_1136.json new file mode 100644 index 0000000..dab9001 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_135_winding_corridor_none_dead_end_rooms2_1136.json @@ -0,0 +1,759 @@ +{ + "task_id": "winding_corridor_none_1136", + "version": "0.1", + "seed": 1136, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 7, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 10, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_136_sequential_chain_sk_none_1137.json b/src/v2/automatic_maze_generation/generated_mazes/maze_136_sequential_chain_sk_none_1137.json new file mode 100644 index 0000000..bc5123e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_136_sequential_chain_sk_none_1137.json @@ -0,0 +1,995 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 9, + 8 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 9 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk" + }, + "task_id": "sequential_chain_sk_1137", + "version": "0.1", + "seed": 1137, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_137_side_vault_sg_wrong_keys2_1138.json b/src/v2/automatic_maze_generation/generated_mazes/maze_137_side_vault_sg_wrong_keys2_1138.json new file mode 100644 index 0000000..080016f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_137_side_vault_sg_wrong_keys2_1138.json @@ -0,0 +1,639 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 2, + 7 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 4, + 7 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "side_vault_sg_1138", + "version": "0.1", + "seed": 1138, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 7 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_138_winding_corridor_kd_none_1139.json b/src/v2/automatic_maze_generation/generated_mazes/maze_138_winding_corridor_kd_none_1139.json new file mode 100644 index 0000000..4127b60 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_138_winding_corridor_kd_none_1139.json @@ -0,0 +1,784 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 8, + 3 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 4 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 4, + "chain_pattern": "kd" + }, + "task_id": "winding_corridor_kd_1139", + "version": "0.1", + "seed": 1139, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_139_side_vault_sg_none_1140.json b/src/v2/automatic_maze_generation/generated_mazes/maze_139_side_vault_sg_none_1140.json new file mode 100644 index 0000000..a6cb84a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_139_side_vault_sg_none_1140.json @@ -0,0 +1,990 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 12 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1140", + "version": "0.1", + "seed": 1140, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 27, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 6, + 12 + ], + [ + 7, + 12 + ], + [ + 6, + 12 + ], + [ + 5, + 12 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_140_sequential_chain_kd_none_1141.json b/src/v2/automatic_maze_generation/generated_mazes/maze_140_sequential_chain_kd_none_1141.json new file mode 100644 index 0000000..a83b255 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_140_sequential_chain_kd_none_1141.json @@ -0,0 +1,707 @@ +{ + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd" + }, + "task_id": "sequential_chain_kd_1141", + "version": "0.1", + "seed": 1141, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_141_winding_corridor_none_dead_end_rooms2_1142.json b/src/v2/automatic_maze_generation/generated_mazes/maze_141_winding_corridor_none_dead_end_rooms2_1142.json new file mode 100644 index 0000000..c23bb26 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_141_winding_corridor_none_dead_end_rooms2_1142.json @@ -0,0 +1,683 @@ +{ + "task_id": "winding_corridor_none_1142", + "version": "0.1", + "seed": 1142, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 18, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 7 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 29, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 14, + 4 + ], + [ + 15, + 4 + ], + [ + 16, + 4 + ], + [ + 17, + 4 + ], + [ + 18, + 4 + ], + [ + 18, + 3 + ], + [ + 18, + 2 + ], + [ + 18, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_142_multi_route_none_dead_end_rooms2_1143.json b/src/v2/automatic_maze_generation/generated_mazes/maze_142_multi_route_none_dead_end_rooms2_1143.json new file mode 100644 index 0000000..e44c19e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_142_multi_route_none_dead_end_rooms2_1143.json @@ -0,0 +1,539 @@ +{ + "task_id": "multi_route_none_1143", + "version": "0.1", + "seed": 1143, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 8 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 11, + 7 + ], + [ + 11, + 6 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_143_dense_maze_ks_wrong_keys2_1144.json b/src/v2/automatic_maze_generation/generated_mazes/maze_143_dense_maze_ks_wrong_keys2_1144.json new file mode 100644 index 0000000..d879ed1 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_143_dense_maze_ks_wrong_keys2_1144.json @@ -0,0 +1,588 @@ +{ + "maze": { + "dimensions": [ + 11, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 8 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 10, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 2, + 7 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 7, + 13 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 3, + 9 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 8, + 7 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 9 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 5, + 7 + ], + "solution_path_length": 26, + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_ks_1144", + "version": "0.1", + "seed": 1144, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 26, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_144_multi_route_none_wrong_keys2_1145.json b/src/v2/automatic_maze_generation/generated_mazes/maze_144_multi_route_none_wrong_keys2_1145.json new file mode 100644 index 0000000..a367ece --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_144_multi_route_none_wrong_keys2_1145.json @@ -0,0 +1,731 @@ +{ + "task_id": "multi_route_none_1145", + "version": "0.1", + "seed": 1145, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 10 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 8, + 10 + ], + [ + 9, + 10 + ], + [ + 10, + 10 + ], + [ + 11, + 10 + ], + [ + 12, + 10 + ], + [ + 13, + 10 + ], + [ + 13, + 9 + ], + [ + 13, + 8 + ], + [ + 13, + 7 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_145_multi_route_none_dead_end_rooms2_1147.json b/src/v2/automatic_maze_generation/generated_mazes/maze_145_multi_route_none_dead_end_rooms2_1147.json new file mode 100644 index 0000000..1229c50 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_145_multi_route_none_dead_end_rooms2_1147.json @@ -0,0 +1,731 @@ +{ + "task_id": "multi_route_none_1147", + "version": "0.1", + "seed": 1147, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 10 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 7, + 10 + ], + [ + 8, + 10 + ], + [ + 9, + 10 + ], + [ + 10, + 10 + ], + [ + 11, + 10 + ], + [ + 12, + 10 + ], + [ + 13, + 10 + ], + [ + 13, + 9 + ], + [ + 13, + 8 + ], + [ + 13, + 7 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_146_sequential_chain_sg_wrong_keys1_1148.json b/src/v2/automatic_maze_generation/generated_mazes/maze_146_sequential_chain_sg_wrong_keys1_1148.json new file mode 100644 index 0000000..e3702d3 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_146_sequential_chain_sg_wrong_keys1_1148.json @@ -0,0 +1,974 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 8, + 8 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_sg_1148", + "version": "0.1", + "seed": 1148, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_147_dense_maze_kd_distractor_chain2_1151.json b/src/v2/automatic_maze_generation/generated_mazes/maze_147_dense_maze_kd_distractor_chain2_1151.json new file mode 100644 index 0000000..5a4b65b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_147_dense_maze_kd_distractor_chain2_1151.json @@ -0,0 +1,643 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 3 + ], + "color": "red" + }, + { + "id": "kG", + "position": [ + 6, + 8 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 3, + 11 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 6, + 9 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kd", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 40, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ] + ] + } + }, + "task_id": "dense_maze_kd_1151", + "version": "0.1", + "seed": 1151, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 40, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 3, + 10 + ], + [ + 3, + 9 + ], + [ + 3, + 8 + ], + [ + 3, + 7 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_148_multi_route_none_dead_end_rooms1_1150.json b/src/v2/automatic_maze_generation/generated_mazes/maze_148_multi_route_none_dead_end_rooms1_1150.json new file mode 100644 index 0000000..d598f33 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_148_multi_route_none_dead_end_rooms1_1150.json @@ -0,0 +1,467 @@ +{ + "task_id": "multi_route_none_1150", + "version": "0.1", + "seed": 1150, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 8 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_149_multi_route_none_wrong_keys1_1151.json b/src/v2/automatic_maze_generation/generated_mazes/maze_149_multi_route_none_wrong_keys1_1151.json new file mode 100644 index 0000000..1e99e35 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_149_multi_route_none_wrong_keys1_1151.json @@ -0,0 +1,555 @@ +{ + "task_id": "multi_route_none_1151", + "version": "0.1", + "seed": 1151, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_150_dense_maze_sk_distractor_chain1_1153.json b/src/v2/automatic_maze_generation/generated_mazes/maze_150_dense_maze_sk_distractor_chain1_1153.json new file mode 100644 index 0000000..4c9eeab --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_150_dense_maze_sk_distractor_chain1_1153.json @@ -0,0 +1,591 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 3 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 11 + ], + "color": "red" + }, + { + "id": "kG", + "position": [ + 7, + 4 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 10 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 8, + 4 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 2, + 11 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 24, + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 7, + 4 + ], + [ + 8, + 4 + ], + [ + 9, + 4 + ] + ] + } + }, + "task_id": "dense_maze_sk_1153", + "version": "0.1", + "seed": 1153, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_151_winding_corridor_kd_wrong_keys2_1154.json b/src/v2/automatic_maze_generation/generated_mazes/maze_151_winding_corridor_kd_wrong_keys2_1154.json new file mode 100644 index 0000000..0872071 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_151_winding_corridor_kd_wrong_keys2_1154.json @@ -0,0 +1,776 @@ +{ + "maze": { + "dimensions": [ + 22, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 20, + 0 + ], + [ + 20, + 1 + ], + [ + 20, + 2 + ], + [ + 20, + 3 + ], + [ + 20, + 4 + ], + [ + 20, + 5 + ], + [ + 20, + 6 + ], + [ + 20, + 7 + ], + [ + 21, + 0 + ], + [ + 21, + 1 + ], + [ + 21, + 2 + ], + [ + 21, + 3 + ], + [ + 21, + 4 + ], + [ + 21, + 5 + ], + [ + 21, + 6 + ], + [ + 21, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 14, + 1 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 3 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 16, + 5 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 12, + 2 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "kd", + "turn_count": 7, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "winding_corridor_kd_1154", + "version": "0.1", + "seed": 1154, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ], + [ + 14, + 4 + ], + [ + 14, + 3 + ], + [ + 14, + 2 + ], + [ + 14, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_152_dense_maze_none_none_1154.json b/src/v2/automatic_maze_generation/generated_mazes/maze_152_dense_maze_none_none_1154.json new file mode 100644 index 0000000..fa41b60 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_152_dense_maze_none_none_1154.json @@ -0,0 +1,651 @@ +{ + "task_id": "dense_maze_none_1154", + "version": "0.1", + "seed": 1154, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 15, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 8 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 4 + ], + [ + 11, + 10 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 12 + ], + [ + 13, + 0 + ], + [ + 13, + 12 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 11 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "none", + "dense_maze_cells": [ + 7, + 6 + ], + "solution_path_length": 38 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 38, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 8 + ], + [ + 7, + 7 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 11, + 2 + ], + [ + 11, + 1 + ], + [ + 12, + 1 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_153_multi_route_none_wrong_keys2_1155.json b/src/v2/automatic_maze_generation/generated_mazes/maze_153_multi_route_none_wrong_keys2_1155.json new file mode 100644 index 0000000..6e41f27 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_153_multi_route_none_wrong_keys2_1155.json @@ -0,0 +1,467 @@ +{ + "task_id": "multi_route_none_1155", + "version": "0.1", + "seed": 1155, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 2 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 15, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 8 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_154_dense_maze_none_wrong_keys2_1156.json b/src/v2/automatic_maze_generation/generated_mazes/maze_154_dense_maze_none_wrong_keys2_1156.json new file mode 100644 index 0000000..2688944 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_154_dense_maze_none_wrong_keys2_1156.json @@ -0,0 +1,651 @@ +{ + "task_id": "dense_maze_none_1156", + "version": "0.1", + "seed": 1156, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "none", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 52 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 52, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ], + [ + 9, + 10 + ], + [ + 9, + 9 + ], + [ + 8, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 8 + ], + [ + 7, + 7 + ], + [ + 6, + 7 + ], + [ + 5, + 7 + ], + [ + 4, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_155_dense_maze_ks_distractor_chain1_1163.json b/src/v2/automatic_maze_generation/generated_mazes/maze_155_dense_maze_ks_distractor_chain1_1163.json new file mode 100644 index 0000000..3318caa --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_155_dense_maze_ks_distractor_chain1_1163.json @@ -0,0 +1,651 @@ +{ + "maze": { + "dimensions": [ + 11, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 8 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 1, + 7 + ], + "color": "red" + }, + { + "id": "kG", + "position": [ + 2, + 10 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 7, + 11 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 2, + 9 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 2 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 5, + 6 + ], + "solution_path_length": 50, + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 2, + 10 + ], + [ + 2, + 9 + ], + [ + 2, + 8 + ] + ] + } + }, + "task_id": "dense_maze_ks_1163", + "version": "0.1", + "seed": 1163, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 50, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 2, + 5 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 7, + 9 + ], + [ + 6, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_156_side_vault_none_none_1158.json b/src/v2/automatic_maze_generation/generated_mazes/maze_156_side_vault_none_none_1158.json new file mode 100644 index 0000000..da17be6 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_156_side_vault_none_none_1158.json @@ -0,0 +1,690 @@ +{ + "task_id": "side_vault_none_1158", + "version": "0.1", + "seed": 1158, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_157_multi_route_none_dead_end_rooms2_1159.json b/src/v2/automatic_maze_generation/generated_mazes/maze_157_multi_route_none_dead_end_rooms2_1159.json new file mode 100644 index 0000000..875142c --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_157_multi_route_none_dead_end_rooms2_1159.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1159", + "version": "0.1", + "seed": 1159, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_158_sequential_chain_kd_dead_end_rooms2_1160.json b/src/v2/automatic_maze_generation/generated_mazes/maze_158_sequential_chain_kd_dead_end_rooms2_1160.json new file mode 100644 index 0000000..266ba6f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_158_sequential_chain_kd_dead_end_rooms2_1160.json @@ -0,0 +1,951 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 4, + 2 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_kd_1160", + "version": "0.1", + "seed": 1160, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 3 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_159_dense_maze_sg_distractor_chain1_1163.json b/src/v2/automatic_maze_generation/generated_mazes/maze_159_dense_maze_sg_distractor_chain1_1163.json new file mode 100644 index 0000000..008483b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_159_dense_maze_sg_distractor_chain1_1163.json @@ -0,0 +1,600 @@ +{ + "maze": { + "dimensions": [ + 11, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 8 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 4 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kG", + "position": [ + 6, + 6 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DG", + "position": [ + 5, + 6 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 6, + 9 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sg", + "dense_maze_cells": [ + 5, + 6 + ], + "solution_path_length": 44, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 6, + 6 + ], + [ + 5, + 6 + ], + [ + 4, + 6 + ] + ] + } + }, + "task_id": "dense_maze_sg_1163", + "version": "0.1", + "seed": 1163, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 44, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 7, + 9 + ], + [ + 6, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_160_sequential_chain_none_none_1162.json b/src/v2/automatic_maze_generation/generated_mazes/maze_160_sequential_chain_none_none_1162.json new file mode 100644 index 0000000..af95689 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_160_sequential_chain_none_none_1162.json @@ -0,0 +1,670 @@ +{ + "task_id": "sequential_chain_none_1162", + "version": "0.1", + "seed": 1162, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 16, + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_161_winding_corridor_none_dead_end_rooms2_1163.json b/src/v2/automatic_maze_generation/generated_mazes/maze_161_winding_corridor_none_dead_end_rooms2_1163.json new file mode 100644 index 0000000..f44f83f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_161_winding_corridor_none_dead_end_rooms2_1163.json @@ -0,0 +1,691 @@ +{ + "task_id": "winding_corridor_none_1163", + "version": "0.1", + "seed": 1163, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 6, + 1 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_162_multi_route_none_none_1164.json b/src/v2/automatic_maze_generation/generated_mazes/maze_162_multi_route_none_none_1164.json new file mode 100644 index 0000000..bf29f3b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_162_multi_route_none_none_1164.json @@ -0,0 +1,419 @@ +{ + "task_id": "multi_route_none_1164", + "version": "0.1", + "seed": 1164, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_163_multi_route_none_wrong_keys2_1165.json b/src/v2/automatic_maze_generation/generated_mazes/maze_163_multi_route_none_wrong_keys2_1165.json new file mode 100644 index 0000000..54124d7 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_163_multi_route_none_wrong_keys2_1165.json @@ -0,0 +1,579 @@ +{ + "task_id": "multi_route_none_1165", + "version": "0.1", + "seed": 1165, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 10, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_164_winding_corridor_sg_dead_end_rooms1_1166.json b/src/v2/automatic_maze_generation/generated_mazes/maze_164_winding_corridor_sg_dead_end_rooms1_1166.json new file mode 100644 index 0000000..3a6970f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_164_winding_corridor_sg_dead_end_rooms1_1166.json @@ -0,0 +1,783 @@ +{ + "maze": { + "dimensions": [ + 20, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 4 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 5, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "winding_corridor_sg_1166", + "version": "0.1", + "seed": 1166, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 2 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_165_multi_route_none_dead_end_rooms1_1167.json b/src/v2/automatic_maze_generation/generated_mazes/maze_165_multi_route_none_dead_end_rooms1_1167.json new file mode 100644 index 0000000..d93bccc --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_165_multi_route_none_dead_end_rooms1_1167.json @@ -0,0 +1,403 @@ +{ + "task_id": "multi_route_none_1167", + "version": "0.1", + "seed": 1167, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_166_dense_maze_sk_none_1168.json b/src/v2/automatic_maze_generation/generated_mazes/maze_166_dense_maze_sk_none_1168.json new file mode 100644 index 0000000..77659c6 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_166_dense_maze_sk_none_1168.json @@ -0,0 +1,768 @@ +{ + "maze": { + "dimensions": [ + 15, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 6 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 8 + ], + [ + 11, + 12 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 12 + ], + [ + 12, + 14 + ], + [ + 13, + 0 + ], + [ + 13, + 14 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 14, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 7 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 9 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 3, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 7, + 7 + ], + "solution_path_length": 40, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1168", + "version": "0.1", + "seed": 1168, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 40, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 11 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_167_winding_corridor_sg_none_1169.json b/src/v2/automatic_maze_generation/generated_mazes/maze_167_winding_corridor_sg_none_1169.json new file mode 100644 index 0000000..ce0bfad --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_167_winding_corridor_sg_none_1169.json @@ -0,0 +1,867 @@ +{ + "maze": { + "dimensions": [ + 20, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 18, + 8 + ], + [ + 18, + 9 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ], + [ + 19, + 8 + ], + [ + 19, + 9 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 11, + 2 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 7, + "chain_pattern": "sg" + }, + "task_id": "winding_corridor_sg_1169", + "version": "0.1", + "seed": 1169, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 22, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 2 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 13, + 4 + ], + [ + 13, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_168_winding_corridor_none_none_1170.json b/src/v2/automatic_maze_generation/generated_mazes/maze_168_winding_corridor_none_none_1170.json new file mode 100644 index 0000000..fe6ce53 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_168_winding_corridor_none_none_1170.json @@ -0,0 +1,691 @@ +{ + "task_id": "winding_corridor_none_1170", + "version": "0.1", + "seed": 1170, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 18, + 9 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 0 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 11, + 0 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 16, + 3 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "none", + "turn_count": 6 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 3 + ], + [ + 6, + 2 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 12, + 3 + ], + [ + 13, + 3 + ], + [ + 14, + 3 + ], + [ + 15, + 3 + ], + [ + 16, + 3 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_169_sequential_chain_ks_none_1171.json b/src/v2/automatic_maze_generation/generated_mazes/maze_169_sequential_chain_ks_none_1171.json new file mode 100644 index 0000000..d777384 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_169_sequential_chain_ks_none_1171.json @@ -0,0 +1,819 @@ +{ + "maze": { + "dimensions": [ + 18, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 9 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 16, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 3 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 9, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "ks", + "chain_pattern": "ks" + }, + "task_id": "sequential_chain_ks_1171", + "version": "0.1", + "seed": 1171, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 24, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ], + [ + 15, + 6 + ], + [ + 16, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_170_dense_maze_sk_wrong_keys2_1172.json b/src/v2/automatic_maze_generation/generated_mazes/maze_170_dense_maze_sk_wrong_keys2_1172.json new file mode 100644 index 0000000..b1f9d7a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_170_dense_maze_sk_wrong_keys2_1172.json @@ -0,0 +1,536 @@ +{ + "maze": { + "dimensions": [ + 11, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 6 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 1, + 7 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 4, + 3 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 4, + 1 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 9 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 5, + 5 + ], + "solution_path_length": 36, + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_sk_1172", + "version": "0.1", + "seed": 1172, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 36, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 7, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 8, + 7 + ], + [ + 7, + 7 + ], + [ + 6, + 7 + ], + [ + 5, + 7 + ], + [ + 4, + 7 + ], + [ + 3, + 7 + ], + [ + 2, + 7 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_171_sequential_chain_kd_wrong_keys2_1173.json b/src/v2/automatic_maze_generation/generated_mazes/maze_171_sequential_chain_kd_wrong_keys2_1173.json new file mode 100644 index 0000000..ffb897d --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_171_sequential_chain_kd_wrong_keys2_1173.json @@ -0,0 +1,1075 @@ +{ + "maze": { + "dimensions": [ + 18, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 16, + 8 + ], + [ + 16, + 10 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 17, + 8 + ], + [ + 17, + 9 + ], + [ + 17, + 10 + ], + [ + 17, + 11 + ], + [ + 17, + 12 + ], + [ + 17, + 13 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 16, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 4 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 5, + 9 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 11 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 4 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_kd_1173", + "version": "0.1", + "seed": 1173, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_172_multi_route_none_dead_end_rooms2_1174.json b/src/v2/automatic_maze_generation/generated_mazes/maze_172_multi_route_none_dead_end_rooms2_1174.json new file mode 100644 index 0000000..7cb0b0f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_172_multi_route_none_dead_end_rooms2_1174.json @@ -0,0 +1,771 @@ +{ + "task_id": "multi_route_none_1174", + "version": "0.1", + "seed": 1174, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_173_sequential_chain_sk_wrong_keys2_1175.json b/src/v2/automatic_maze_generation/generated_mazes/maze_173_sequential_chain_sk_wrong_keys2_1175.json new file mode 100644 index 0000000..a6dde51 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_173_sequential_chain_sk_wrong_keys2_1175.json @@ -0,0 +1,867 @@ +{ + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 14, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 8, + 7 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 7, + 5 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 9, + 9 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 4, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_sk_1175", + "version": "0.1", + "seed": 1175, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ], + [ + 13, + 8 + ], + [ + 14, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_174_dense_maze_kd_none_1176.json b/src/v2/automatic_maze_generation/generated_mazes/maze_174_dense_maze_kd_none_1176.json new file mode 100644 index 0000000..49837db --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_174_dense_maze_kd_none_1176.json @@ -0,0 +1,532 @@ +{ + "maze": { + "dimensions": [ + 15, + 11 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 10 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 10 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 11, + 0 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 10 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 10 + ], + [ + 13, + 0 + ], + [ + 13, + 10 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 9 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 1 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kd", + "dense_maze_cells": [ + 7, + 5 + ], + "solution_path_length": 20, + "chain_pattern": "kd" + }, + "task_id": "dense_maze_kd_1176", + "version": "0.1", + "seed": 1176, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 20, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 12, + 3 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_175_sequential_chain_sg_wrong_keys2_1177.json b/src/v2/automatic_maze_generation/generated_mazes/maze_175_sequential_chain_sg_wrong_keys2_1177.json new file mode 100644 index 0000000..e10140f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_175_sequential_chain_sg_wrong_keys2_1177.json @@ -0,0 +1,639 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 6, + 7 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 10, + 8 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 1 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 3 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "sequential_chain_sg_1177", + "version": "0.1", + "seed": 1177, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 18, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_176_dense_maze_ks_wrong_keys2_1180.json b/src/v2/automatic_maze_generation/generated_mazes/maze_176_dense_maze_ks_wrong_keys2_1180.json new file mode 100644 index 0000000..eb454b9 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_176_dense_maze_ks_wrong_keys2_1180.json @@ -0,0 +1,624 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 4 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 1, + 9 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 8, + 1 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 8, + 3 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 11 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 7 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "ks", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 32, + "chain_pattern": "ks", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "dense_maze_ks_1180", + "version": "0.1", + "seed": 1180, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 32, + "interactions": [ + "pickup:kR", + "open:DR", + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 10 + ], + [ + 7, + 9 + ], + [ + 6, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_177_dense_maze_none_none_1179.json b/src/v2/automatic_maze_generation/generated_mazes/maze_177_dense_maze_none_none_1179.json new file mode 100644 index 0000000..a3b4902 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_177_dense_maze_none_none_1179.json @@ -0,0 +1,691 @@ +{ + "task_id": "dense_maze_none_1179", + "version": "0.1", + "seed": 1179, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 15, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 12 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 10 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 8 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 6 + ], + [ + 11, + 12 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 14 + ], + [ + 13, + 0 + ], + [ + 13, + 4 + ], + [ + 13, + 14 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 14, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 13, + 13 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "none", + "dense_maze_cells": [ + 7, + 7 + ], + "solution_path_length": 32 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 32, + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 10, + 11 + ], + [ + 9, + 11 + ], + [ + 8, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 13 + ], + [ + 9, + 13 + ], + [ + 10, + 13 + ], + [ + 11, + 13 + ], + [ + 12, + 13 + ], + [ + 13, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_178_side_vault_none_dead_end_rooms1_1181.json b/src/v2/automatic_maze_generation/generated_mazes/maze_178_side_vault_none_dead_end_rooms1_1181.json new file mode 100644 index 0000000..ec44b68 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_178_side_vault_none_dead_end_rooms1_1181.json @@ -0,0 +1,790 @@ +{ + "task_id": "side_vault_none_1181", + "version": "0.1", + "seed": 1181, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_179_multi_route_none_wrong_keys1_1182.json b/src/v2/automatic_maze_generation/generated_mazes/maze_179_multi_route_none_wrong_keys1_1182.json new file mode 100644 index 0000000..5713a2b --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_179_multi_route_none_wrong_keys1_1182.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1182", + "version": "0.1", + "seed": 1182, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_180_side_vault_sg_none_1183.json b/src/v2/automatic_maze_generation/generated_mazes/maze_180_side_vault_sg_none_1183.json new file mode 100644 index 0000000..6031d65 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_180_side_vault_sg_none_1183.json @@ -0,0 +1,854 @@ +{ + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 14, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 9 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 6 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1183", + "version": "0.1", + "seed": 1183, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 6, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ], + [ + 13, + 6 + ], + [ + 14, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_181_dense_maze_kd_wrong_keys1_1184.json b/src/v2/automatic_maze_generation/generated_mazes/maze_181_dense_maze_kd_wrong_keys1_1184.json new file mode 100644 index 0000000..6d99978 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_181_dense_maze_kd_wrong_keys1_1184.json @@ -0,0 +1,519 @@ +{ + "maze": { + "dimensions": [ + 11, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 9, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 3 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 1, + 10 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 4, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kd", + "dense_maze_cells": [ + 5, + 6 + ], + "solution_path_length": 30, + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "dense_maze_kd_1184", + "version": "0.1", + "seed": 1184, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 26, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 5, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 11 + ], + [ + 9, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_182_side_vault_none_none_1185.json b/src/v2/automatic_maze_generation/generated_mazes/maze_182_side_vault_none_none_1185.json new file mode 100644 index 0000000..e48b06f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_182_side_vault_none_none_1185.json @@ -0,0 +1,798 @@ +{ + "task_id": "side_vault_none_1185", + "version": "0.1", + "seed": 1185, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_183_side_vault_kd_wrong_keys1_1186.json b/src/v2/automatic_maze_generation/generated_mazes/maze_183_side_vault_kd_wrong_keys1_1186.json new file mode 100644 index 0000000..1ce50a2 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_183_side_vault_kd_wrong_keys1_1186.json @@ -0,0 +1,730 @@ +{ + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 8 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 12, + 6 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "side_vault_kd_1186", + "version": "0.1", + "seed": 1186, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 23, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 6, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_184_side_vault_none_wrong_keys2_1187.json b/src/v2/automatic_maze_generation/generated_mazes/maze_184_side_vault_none_wrong_keys2_1187.json new file mode 100644 index 0000000..89b7fc2 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_184_side_vault_none_wrong_keys2_1187.json @@ -0,0 +1,582 @@ +{ + "task_id": "side_vault_none_1187", + "version": "0.1", + "seed": 1187, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "none" + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_185_dense_maze_sk_none_1188.json b/src/v2/automatic_maze_generation/generated_mazes/maze_185_dense_maze_sk_none_1188.json new file mode 100644 index 0000000..632dc1e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_185_dense_maze_sk_none_1188.json @@ -0,0 +1,616 @@ +{ + "maze": { + "dimensions": [ + 13, + 13 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 6 + ], + [ + 1, + 12 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 12 + ], + [ + 3, + 0 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 12 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 12 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 12 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 10 + ], + [ + 9, + 12 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 11, + 0 + ], + [ + 11, + 12 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 11 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 11, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 1, + 5 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "sk", + "dense_maze_cells": [ + 6, + 6 + ], + "solution_path_length": 32, + "chain_pattern": "sk" + }, + "task_id": "dense_maze_sk_1188", + "version": "0.1", + "seed": 1188, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 32, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 2, + 3 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 10, + 3 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_186_dense_maze_kk_distractor_chain2_1191.json b/src/v2/automatic_maze_generation/generated_mazes/maze_186_dense_maze_kk_distractor_chain2_1191.json new file mode 100644 index 0000000..4b7091e --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_186_dense_maze_kk_distractor_chain2_1191.json @@ -0,0 +1,694 @@ +{ + "maze": { + "dimensions": [ + 13, + 15 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 1, + 0 + ], + [ + 1, + 8 + ], + [ + 1, + 14 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 14 + ], + [ + 3, + 0 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 14 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 10 + ], + [ + 4, + 13 + ], + [ + 4, + 14 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 10 + ], + [ + 5, + 14 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 14 + ], + [ + 7, + 0 + ], + [ + 7, + 4 + ], + [ + 7, + 8 + ], + [ + 7, + 14 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 14 + ], + [ + 9, + 0 + ], + [ + 9, + 10 + ], + [ + 9, + 14 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 10, + 14 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 14 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 12, + 14 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 13 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 3, + 7 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 8, + 9 + ], + "color": "blue" + }, + { + "id": "kG", + "position": [ + 10, + 4 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 9, + 13 + ], + "requires_key": "blue", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 9, + 4 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "dense_maze", + "logic_chain": "kk", + "dense_maze_cells": [ + 6, + 7 + ], + "solution_path_length": 34, + "chain_pattern": "kk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "distractor_chain": { + "type": "kd", + "color": "green", + "cells": [ + [ + 10, + 4 + ], + [ + 9, + 4 + ], + [ + 8, + 4 + ] + ] + } + }, + "task_id": "dense_maze_kk_1191", + "version": "0.1", + "seed": 1191, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 34, + "interactions": [ + "pickup:kR", + "open:DR", + "pickup:kB", + "open:DB" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 7, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 8, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 13 + ], + [ + 9, + 13 + ], + [ + 9, + 12 + ], + [ + 9, + 11 + ], + [ + 10, + 11 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_187_sequential_chain_sk_wrong_keys1_1190.json b/src/v2/automatic_maze_generation/generated_mazes/maze_187_sequential_chain_sk_wrong_keys1_1190.json new file mode 100644 index 0000000..40ded83 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_187_sequential_chain_sk_wrong_keys1_1190.json @@ -0,0 +1,770 @@ +{ + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ] + ], + "start": [ + 1, + 4 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 7 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 5, + 5 + ], + "color": "yellow" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 4 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 4 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sk", + "chain_pattern": "sk", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "sequential_chain_sk_1190", + "version": "0.1", + "seed": 1190, + "difficulty_tier": 3, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1", + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 4 + ], + [ + 2, + 4 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 7, + 8 + ], + [ + 8, + 8 + ], + [ + 9, + 8 + ], + [ + 10, + 8 + ], + [ + 11, + 8 + ], + [ + 12, + 8 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_188_sequential_chain_sg_dead_end_rooms1_1191.json b/src/v2/automatic_maze_generation/generated_mazes/maze_188_sequential_chain_sg_dead_end_rooms1_1191.json new file mode 100644 index 0000000..1d39002 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_188_sequential_chain_sg_dead_end_rooms1_1191.json @@ -0,0 +1,622 @@ +{ + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 3 + ], + "goal": [ + 12, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 3, + 2 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 4, + 3 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "sequential_chain", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "sequential_chain_sg_1191", + "version": "0.1", + "seed": 1191, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 16, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 3 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ], + [ + 11, + 6 + ], + [ + 12, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_189_side_vault_kd_dead_end_rooms1_1192.json b/src/v2/automatic_maze_generation/generated_mazes/maze_189_side_vault_kd_dead_end_rooms1_1192.json new file mode 100644 index 0000000..a938825 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_189_side_vault_kd_dead_end_rooms1_1192.json @@ -0,0 +1,659 @@ +{ + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 10 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_kd_1192", + "version": "0.1", + "seed": 1192, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 4, + 10 + ], + [ + 4, + 9 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_190_side_vault_sg_wrong_keys2_1193.json b/src/v2/automatic_maze_generation/generated_mazes/maze_190_side_vault_sg_wrong_keys2_1193.json new file mode 100644 index 0000000..491dcb0 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_190_side_vault_sg_wrong_keys2_1193.json @@ -0,0 +1,887 @@ +{ + "maze": { + "dimensions": [ + 14, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 12, + 7 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 6, + 9 + ], + "color": "yellow" + }, + { + "id": "kG", + "position": [ + 2, + 9 + ], + "color": "green" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 12 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 8, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 2, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow", + "green" + ] + }, + "task_id": "side_vault_sg_1193", + "version": "0.1", + "seed": 1193, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 5, + 12 + ], + [ + 6, + 12 + ], + [ + 5, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + 11 + ], + [ + 4, + 10 + ], + [ + 4, + 9 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_191_side_vault_sg_none_1194.json b/src/v2/automatic_maze_generation/generated_mazes/maze_191_side_vault_sg_none_1194.json new file mode 100644 index 0000000..fc85f1a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_191_side_vault_sg_none_1194.json @@ -0,0 +1,566 @@ +{ + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 8, + 5 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg" + }, + "task_id": "side_vault_sg_1194", + "version": "0.1", + "seed": 1194, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 19, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 5, + 8 + ], + [ + 6, + 8 + ], + [ + 5, + 8 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_192_side_vault_kd_dead_end_rooms1_1195.json b/src/v2/automatic_maze_generation/generated_mazes/maze_192_side_vault_kd_dead_end_rooms1_1195.json new file mode 100644 index 0000000..e6e0e40 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_192_side_vault_kd_dead_end_rooms1_1195.json @@ -0,0 +1,723 @@ +{ + "maze": { + "dimensions": [ + 16, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 14, + 5 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 7, + 1 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 10, + 5 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_kd_1195", + "version": "0.1", + "seed": 1195, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 5, + 2 + ], + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 6, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_193_multi_route_none_dead_end_rooms2_1196.json b/src/v2/automatic_maze_generation/generated_mazes/maze_193_multi_route_none_dead_end_rooms2_1196.json new file mode 100644 index 0000000..a6685be --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_193_multi_route_none_dead_end_rooms2_1196.json @@ -0,0 +1,747 @@ +{ + "task_id": "multi_route_none_1196", + "version": "0.1", + "seed": 1196, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 4 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 13, + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_194_multi_route_none_wrong_keys2_1197.json b/src/v2/automatic_maze_generation/generated_mazes/maze_194_multi_route_none_wrong_keys2_1197.json new file mode 100644 index 0000000..bbfdd1d --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_194_multi_route_none_wrong_keys2_1197.json @@ -0,0 +1,419 @@ +{ + "task_id": "multi_route_none_1197", + "version": "0.1", + "seed": 1197, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 12, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 10, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 9, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_195_side_vault_sg_dead_end_rooms1_1198.json b/src/v2/automatic_maze_generation/generated_mazes/maze_195_side_vault_sg_dead_end_rooms1_1198.json new file mode 100644 index 0000000..5b8f253 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_195_side_vault_sg_dead_end_rooms1_1198.json @@ -0,0 +1,982 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 11 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 11 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 11, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_sg_1198", + "version": "0.1", + "seed": 1198, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 6 + ], + [ + 5, + 5 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 6, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_196_winding_corridor_sg_wrong_keys1_1199.json b/src/v2/automatic_maze_generation/generated_mazes/maze_196_winding_corridor_sg_wrong_keys1_1199.json new file mode 100644 index 0000000..f887f8f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_196_winding_corridor_sg_wrong_keys1_1199.json @@ -0,0 +1,715 @@ +{ + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 1, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 2, + 0 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 7 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 5, + 0 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 9, + 0 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 11, + 0 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 7 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 16, + 0 + ], + [ + 16, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 3 + ], + [ + 16, + 4 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ], + [ + 16, + 7 + ], + [ + 17, + 0 + ], + [ + 17, + 1 + ], + [ + 17, + 2 + ], + [ + 17, + 3 + ], + [ + 17, + 4 + ], + [ + 17, + 5 + ], + [ + 17, + 6 + ], + [ + 17, + 7 + ], + [ + 18, + 0 + ], + [ + 18, + 1 + ], + [ + 18, + 2 + ], + [ + 18, + 3 + ], + [ + 18, + 4 + ], + [ + 18, + 5 + ], + [ + 18, + 6 + ], + [ + 18, + 7 + ], + [ + 19, + 0 + ], + [ + 19, + 1 + ], + [ + 19, + 2 + ], + [ + 19, + 3 + ], + [ + 19, + 4 + ], + [ + 19, + 5 + ], + [ + 19, + 6 + ], + [ + 19, + 7 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 11, + 4 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kY", + "position": [ + 12, + 2 + ], + "color": "yellow" + } + ], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 1 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "winding_corridor", + "logic_chain": "sg", + "turn_count": 5, + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + }, + "wrong_key_distractors": [ + "yellow" + ] + }, + "task_id": "winding_corridor_sg_1199", + "version": "0.1", + "seed": 1199, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 17, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 8, + 3 + ], + [ + 9, + 3 + ], + [ + 9, + 2 + ], + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_197_side_vault_sg_dead_end_rooms1_1200.json b/src/v2/automatic_maze_generation/generated_mazes/maze_197_side_vault_sg_dead_end_rooms1_1200.json new file mode 100644 index 0000000..76a8b87 --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_197_side_vault_sg_dead_end_rooms1_1200.json @@ -0,0 +1,982 @@ +{ + "maze": { + "dimensions": [ + 16, + 14 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 0, + 12 + ], + [ + 0, + 13 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 6 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 1, + 12 + ], + [ + 1, + 13 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 6 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 6 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 12 + ], + [ + 3, + 13 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 6 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 4, + 12 + ], + [ + 4, + 13 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 6 + ], + [ + 5, + 12 + ], + [ + 5, + 13 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 10 + ], + [ + 6, + 12 + ], + [ + 6, + 13 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 6 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 12 + ], + [ + 7, + 13 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 8, + 8 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 8, + 12 + ], + [ + 8, + 13 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 9, + 12 + ], + [ + 9, + 13 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 6 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 10, + 12 + ], + [ + 10, + 13 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ], + [ + 11, + 12 + ], + [ + 11, + 13 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 5 + ], + [ + 12, + 6 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 12, + 10 + ], + [ + 12, + 11 + ], + [ + 12, + 12 + ], + [ + 12, + 13 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ], + [ + 13, + 10 + ], + [ + 13, + 11 + ], + [ + 13, + 12 + ], + [ + 13, + 13 + ], + [ + 14, + 0 + ], + [ + 14, + 1 + ], + [ + 14, + 2 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 10 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 2 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 7 + ], + [ + 15, + 8 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 11 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ] + ], + "start": [ + 1, + 7 + ], + "goal": [ + 14, + 7 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 7, + 11 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 12, + 7 + ], + "initial_state": "closed" + } + ] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "sg", + "chain_pattern": "sg", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_sg_1200", + "version": "0.1", + "seed": 1200, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 25, + "interactions": [ + "toggle:s1", + "cross:g1" + ], + "optimal_path": [ + [ + 1, + 7 + ], + [ + 2, + 7 + ], + [ + 3, + 7 + ], + [ + 4, + 7 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 7, + 11 + ], + [ + 6, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 5, + 8 + ], + [ + 5, + 7 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 8, + 7 + ], + [ + 9, + 7 + ], + [ + 10, + 7 + ], + [ + 11, + 7 + ], + [ + 12, + 7 + ], + [ + 13, + 7 + ], + [ + 14, + 7 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_198_multi_route_none_none_1201.json b/src/v2/automatic_maze_generation/generated_mazes/maze_198_multi_route_none_none_1201.json new file mode 100644 index 0000000..799369a --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_198_multi_route_none_none_1201.json @@ -0,0 +1,483 @@ +{ + "task_id": "multi_route_none_1201", + "version": "0.1", + "seed": 1201, + "difficulty_tier": 1, + "maze": { + "dimensions": [ + 14, + 10 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 6 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 2, + 0 + ], + [ + 2, + 9 + ], + [ + 3, + 0 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 9 + ], + [ + 5, + 0 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 5, + 7 + ], + [ + 5, + 9 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 9 + ], + [ + 7, + 0 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 9 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ], + [ + 8, + 9 + ], + [ + 9, + 0 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ], + [ + 9, + 9 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 7 + ], + [ + 10, + 9 + ], + [ + 11, + 0 + ], + [ + 11, + 9 + ], + [ + 12, + 0 + ], + [ + 12, + 1 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 12, + 7 + ], + [ + 12, + 8 + ], + [ + 12, + 9 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 2 + ], + [ + 13, + 3 + ], + [ + 13, + 4 + ], + [ + 13, + 5 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 8 + ], + [ + 13, + 9 + ] + ], + "start": [ + 1, + 5 + ], + "goal": [ + 12, + 5 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "metadata": { + "backbone": "multi_route", + "logic_chain": "none", + "num_routes": 3 + }, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 11, + "optimal_path": [ + [ + 1, + 5 + ], + [ + 2, + 5 + ], + [ + 3, + 5 + ], + [ + 4, + 5 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 12, + 5 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/maze_199_side_vault_kd_dead_end_rooms1_1202.json b/src/v2/automatic_maze_generation/generated_mazes/maze_199_side_vault_kd_dead_end_rooms1_1202.json new file mode 100644 index 0000000..1446c1f --- /dev/null +++ b/src/v2/automatic_maze_generation/generated_mazes/maze_199_side_vault_kd_dead_end_rooms1_1202.json @@ -0,0 +1,659 @@ +{ + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ], + [ + 0, + 6 + ], + [ + 0, + 7 + ], + [ + 0, + 8 + ], + [ + 0, + 9 + ], + [ + 0, + 10 + ], + [ + 0, + 11 + ], + [ + 1, + 0 + ], + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 7 + ], + [ + 1, + 8 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 0 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 2, + 7 + ], + [ + 2, + 8 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 2, + 11 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 8 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 11 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 11 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 5 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 6, + 11 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 5 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 8, + 0 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 3 + ], + [ + 8, + 4 + ], + [ + 8, + 5 + ], + [ + 8, + 9 + ], + [ + 8, + 10 + ], + [ + 8, + 11 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 9, + 7 + ], + [ + 9, + 8 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 9, + 11 + ], + [ + 10, + 0 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 4 + ], + [ + 10, + 5 + ], + [ + 10, + 7 + ], + [ + 10, + 8 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ], + [ + 10, + 11 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 2 + ], + [ + 11, + 3 + ], + [ + 11, + 4 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 11, + 9 + ], + [ + 11, + 10 + ], + [ + 11, + 11 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 10 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 6, + 6 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [] + }, + "metadata": { + "backbone": "side_vault", + "logic_chain": "kd", + "chain_pattern": "kd", + "dead_end_distractors": { + "count": 1, + "branch_length": 2 + } + }, + "task_id": "side_vault_kd_1202", + "version": "0.1", + "seed": 1202, + "difficulty_tier": 2, + "validation": { + "is_valid": true, + "reasons": [], + "optimal_cost": 21, + "interactions": [ + "pickup:kR", + "open:DR" + ], + "optimal_path": [ + [ + 1, + 6 + ], + [ + 2, + 6 + ], + [ + 3, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 8 + ], + [ + 4, + 9 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 6, + 10 + ], + [ + 5, + 10 + ], + [ + 4, + 10 + ], + [ + 4, + 9 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 6 + ], + [ + 6, + 6 + ], + [ + 7, + 6 + ], + [ + 8, + 6 + ], + [ + 9, + 6 + ], + [ + 10, + 6 + ] + ] + } +} \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_000_sequential_chain_kk_none_1000.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_000_sequential_chain_kk_none_1000.png new file mode 100644 index 0000000000000000000000000000000000000000..abbdf954488edca371cc84cadf2c192b8a253b33 GIT binary patch literal 23785 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 U!HO)gbjaQX3n0dmfnvj6}9 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_001_winding_corridor_none_none_1001.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_001_winding_corridor_none_none_1001.png new file mode 100644 index 0000000000000000000000000000000000000000..c68c2d9408d486e2b9b289f926a3ffb33e74e0be GIT binary patch literal 19555 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 Y(PK;e{>@JT-3mIm&vEagJ!h}{AIQKzf&c&j literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_005_sequential_chain_ks_wrong_keys2_1005.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_005_sequential_chain_ks_wrong_keys2_1005.png new file mode 100644 index 0000000000000000000000000000000000000000..cf26c02777ef4e08375a706e23b95a922053734d GIT binary patch literal 30432 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

@zw)R*e8Eb!;<$l*YDk|8CQf1SXFFH59`&@H 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 Cp@Am= literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_006_side_vault_none_none_1006.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_006_side_vault_none_none_1006.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdd442c637811ea5ee77d041e41c737b3a2ddaf GIT binary patch literal 13927 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 ZO?$VX6O;1_7#sBQM*%x(wjKHOKLG5i_rm}H literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_007_winding_corridor_sg_none_1007.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_007_winding_corridor_sg_none_1007.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9b114d37450b0b9bc239e163c54f576b9126ca GIT binary patch literal 20421 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_008_dense_maze_ks_wrong_keys1_1010.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_008_dense_maze_ks_wrong_keys1_1010.png new file mode 100644 index 0000000000000000000000000000000000000000..d217780e84db22316f48ed91de581cd649fd91f4 GIT binary patch literal 24086 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_009_multi_route_none_none_1009.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_009_multi_route_none_none_1009.png new file mode 100644 index 0000000000000000000000000000000000000000..77967f5d641da1e3f332369c53feb98bc95b5835 GIT binary patch literal 14138 zcmeHuX;_oj);6szY87dFF81xBagE;39B6*LpU4 z-Fxl(zSrW)aTh18w|2axp`oF5i;6$wOaM z7Z_#zxi3z}XlQKPy!!PToX`Wl%i{i#LkCYJg4s^<-EHnXSqg>KmTc4*nL zHHY_qaVU}#_FByz<3P8!wKE(t_Ix>8>ioE<>hk3eFZiC^gV6{&5BV~XBs=J%tW$Q!vycKlJZoY7Xxc)V@11k0V>gtE?ec}+uO z-EdaYIdFO7;OD%zmlD8_QIFPWXk6X`?!#w!bKuXX~*&3|^A=$%V4(*RL=5s{wx=M~sb+ z!HjS4_a0krx3n;gt;4CMI3!+e)HvFsp!A2CbJY&|vg4#qqFP4GvZPEO;|XahVdEn5 z4b3bl!u$L9u?;$4f3>h&5`RKxW!rXdYn975Q_8_qf zs+QT%ZLZjbo4G7DMb{+piLt=tr4kd>a}yXeE-5jwxmDIrG53S7X9T4&fwBa+`fCBO@co&P6F5aQND8<)(deVijTe3Sn?Y zr^NS}e!{c!c*ahsHn@fArliMSNrz*)KKI*=RZQq}JB#IFnmU^+Z_`(uTLJf1H6@*> z>vajwg!1!ZIu~CINtZvsed)8*%bROBxr|iUkY8#6fBQ zvlsZbc_Z$E5pS{A75C!;S5D!MC{9YxD3*}wC5K0aWid)$8sLkuqseUClurnXBRK?u zSmM8aW8J1|1HXjvZ-KqNT@2V#ZI?Si);Bc~N9I`ZZn@u17tZ#%yUr#(TciIXX>ynT zwC(f}*D$;IXAjPI9WltSlbNR{{IJVfU-mQwvN-7FpNxv}S3-o%z#@Ou)(nY&M@9ca(Kt;#$`+OHN(sym$G_EaDZD2A1g~6!D9w#A#=L*&TWl zFVojLJ+U*$lZH)5Xo{J8_OPF(t)+#6sTQ*0(^Bf~Q?gnoKW5V9OS71#+xtg0faeOO zKk=PmRl?Jla>f9ER5|L7U%1u9iRUW6=M8kVc~KWKn6(_9kig-Yw7j_6wXhJ)5-ai2 zR{lX&y=sQ7vK5LubGeEsmoJriCEQ|_Z`x`B@lAF?;^ZT2Ws8Zt)&xYnLc+p5WlmGI!{-5HM zY@A;eS=18Ef=c)MJ`x_OLS02D<-9C^7JM7s&Zos!sFW|FN-^)Y zsAjpUN~@LS)nburXu$03+^@dW@*Y`~x^iBB`Fsciqs)O&JTQiW^-NSAb_$NYuX7PC z|Ix{=XXlMxj*oxiH~N+M+~d-A58yZfP5sQTAuU;{P$}iPJi$&sS58cPzlWE3qqVXE(iRJ3rVmO83>csV;Zym&Zvvwv5Ra90LU?(49AvWojrQAs{1>ZViZf7^9SXs!T zwd%0Y7tTQ|it%^IOUud~;hgd}BH2g8!1o0$3x34CC$uY9Dp<0LDL$;GK`T2K-w@pg~<7gDVpMSjnW+}VOaAozlN#-RW3`15#PX>VR@#q_| zS~-G9Bxa<=z=%yaqE#l7l%|~Z0Id4jD#DTg*_cPNLbg-zfg{j*8GY7Mdak6qyL&-m zua@wNOp-%mN=`#JM%nbgFDy$btSrX(YcY2mcQWzkBcM)`6GpTpxd%r&+AQg^VMAjh zBS&{qY^yETX%9{afFDP-3AVQ;oi9%vD$+wboHEOZw3$o!8SIltl zfFBid-$VLopEG_S7@hw{-dECfv5k&wikGgN_HG|}jL0kBL70C){ldwSt(*QR zNL(_+xIeriEFtejjetIk3rdD?+J@4Ao$S?ZoKWhvNcExj&G!pF$U?E4w65*g0W^40 z?jf~q?zjwmZyX?g2clsxccXYDbhh9#V6I6d-&?Kn?x#S3Hv%5Zv9Y4U{XN@iSb@IAvsRc3@in_ zM$VnnNKkgd_^bFUAoW`yMtQZ12#Y5#M=`2dy-ly$3~!@C>4rW?Lo};BzB=}d(~g(sPGkYUjVC0t+rQK=$LhBeQff2fVER=h}8os~pUZ0Coe zNe{+8u>E?X3gXxe%_PGq~=Xb+h}W+lP(_az*)A*);RZ zvy|HYVZImf#tD0`!aE|JQe;S@CuP_*{xOltJw(}$Opa+0fHd61-Q8Wgc~aOt-oweA zzhv1O$e}=h8ez>c@b=ve#!Yt=!$jrqMdMW2xHhh7Jwc{S(f4 zH=m&G9HpCwP_9QP;woF%AM;0Aj-G3~Xoq|8w7{jj z--n_GxvpsEfpd3O5|WZyC7F$_!2q?eU+iV?Pg8eiW@cKaV@4-Dv!D~#%x)9Q8--P5 z1RykSp1d)olJPzJaU*CJaMp4xA&3t$TVJKj-NmY?8KnmEQyjlaB$iIa1qK#Kz>?s71mBs5=;=ka^EwQPNl)1vw6HRtZnsoZ?oUQ?sa@`xKp0F_$K5zG~c35+mir+n;H+ZWJm} zRZ=-Ac~wy+_7y_vW#(;dZTYLBBmbt0_4L6Y6ewZi(o#g?Q98NO5^rW^#*_%Le)*Q+ zIBkMzu{d5t1F0KLZNpvZ3K7N9s9ii6QlwITYmyWQ4-PKk*Jk-+S1wK=@`V7uUpY!5 zC}+Bo!S|nPU%&k*XbrprFy9o;PqGr)&2Co~0^Tb!>_(I`j-1;p66F667oyMKh;y%qI&ynoqq+o**OtN6?fo#(}aIOY@<$24t zLVTN>)Ui+E(SqDK>`d8-$kzq-oB%jK3L$uz+*cbzR>_39^Dwc}TL3F=ImIzN$&aL1 zd*=575}@@uh_bGXzJPSyGN6Xz`nrb3AZKR&uiTYwJ(^43phHLCc9NW2pZl=a7xlym zPD4Utnqpz0p^*~l&S;%7C!S39ze%~*Rl|f$HFuecC$(nYe6(h8ivXh&%UyH2ut9!o zJnlOgY-6q-8GX2rQqq;fO!JT`eKg{1yz0R>KhK+Zm5uYDi<&25T5?ZK@%iao(h#r9 zil0~8+8WV$Ehn*|ZJDzlHZ|BaA??Y|f!p-HcyTr-FK-4p-nI3pt82W#p(!$AV@OEI zwV_Y=S4~G0;w)3MkZJarn9l6{%W5gpEGPt@q1T+|$5zXE#|{6Ei}WiDr#~M3ckF;e zzDseh_z{Uj3JwjOUbZXrtKcBAtVi2BS2KN;%VZ`3<^FyMnsTYOwsy1Z%8Z?SNhyw_ z&d<+B^D?{;(q5f)Sd&x`C1&+LmHSLhyV|U&;B|JL1c16tZyqW#T&F2_l9*qsPOikGW4xO)2!Ne~yJlqXG5#Eju6@ zGk)gQ*m(|dL{x10HkCKc^+YsJXU<}GXpD3`;r(-F=f7j;|0TEece{XfpobhVH}uzq z=$B#G3`($$&d#G&K%F~d`GJ zGa)J0%-Y&VR$nxiO(3iiGT+3@&?3YK73%S8=_8*vxy8i9Fg;Cz8lu`GB-e(f^5Vx5 zZNe@-SYw#KKuFn!8IxYVNH~5;s+BPd8koryIwX*|JrE9Qu25!>ofWx}SWd;I+rUt2 zE*_6q8pF@cX#|Ly1!d)NeVXUnq$U}SRGM^5%Exw{1>LVXGejJwzO6JJVrb7=Ew*wHL^H$=>0#1C{u?zI=(}Zj#cIMN0IEvQI($M zM~@!8g`E+Hm#Rsvt*5qb-P*A5Hl|~6&|5-q$)AkqeE$5jRrKT+pjB#lCN~=n`h{jJ zi-)$lGgb{JAfJMmhl<1NeTz7vWbTzSX<8~<-8WG9la?b2TeFbAAiBix;-3K>91?Q> z+O=!9z(PNZ-LobLf#|Xw`A7nm@$i_LIi)kNlZ-~bp{r|CzSH*Uo)KpF&@&e4U;rMl zWC+PRGjp65`?-_8J-K zap84W>qlnyfeK`FFxwjH<>}dJCfVBoB8OdzNw2u&5DyV0av$>{dkq>Jak{xy7R!=| zx3l3&CdnEx0Jp5_56if6!|;*0O)Ok^HwW{(^#nsrL51>E_zn)A$^? z+tg41Et7*eQ?#>1a*ic8wvz@}HB*!$gPk=$XZpX@$wkxQq8St4>c6U!ulpES>5`h7 z&Vn(cUdA-aSlcl-2Zr>S^$cyqaN|GB3A$*{(mbCyz_kVIu2o@SVUfS@Tj?t+EBnmN z>oZaY-9e$#@#BwQ=;-TnR|y2jJUdCp_OUui6bt$$F6~5DYq`|1x~7KI@o-ILEvGf} zWvQJyiIY?y4mEhCMufkN_*LSajoP3_BK9LP;>glugBw5d&sS*iKcvem z$MpUK*#32Mg8$kA{*W%eJL&Sv8sK+F8FdA**7?|N`22h$XJ==+RA=_|Y#e!`mX^7t z#eEl6M#g)fO>%V~OH*DyGq%f+_cT8RGZsJJyq57~c9z>7@{{@UQW2!(f<9k(y-)Dz z({~qxa6=b(JYH>eb@i&yXm4-7z3r*>lcDU#j}Na#G+T`rQEGeqQVJN59oG0InIore zdGd3C%>jm(I(m9W%HgjPI$5l&($dmO+aK`z%*@;!9UVKCmzU%0GtQfWPC7pF2FM_0 z>#gFJRYlQLeiX|Ksj2xMn;>U1W~b_ZR^+H%Ek8Mt#y4-?EYcsLsdc~}7VuXl$SZ8! z-(6<^mM`$zHY)!!0va?LUoD@#LHIGiamq74T9}4R4NYakFGA^=9c!4vLnf7R<#phA zqs{f7l=+>s92AL3%+(?NW3Xf^ii2LZ9AjqcxQtb=+e|E=yb}>IQxQG)S$RZbzD3Bz z2ibsS$Nr3D?O;1nnv$8rVt5M1cuW5Yk=lY5n^?&W|dDZ0mA5mYq1Ah;k zvBkxvBL{*S65AtUz)@zeTO$Z^<;=T=`CqAo)V1g_Y4y!Z465GZ4a`^~Kcl>=C5%jH z|7;F3#Lcd(sPMKNnQS@v3v@DLms8p;(79Rlugyb%#}Be~%p?)~l5SJ59%??c&&cOd z|eRB0{x|7mq3D{Gzc?VS3UTXaV1>>(h81pEc z;2^P_)pyM;I#Vl07ti}P$U`+E3=OhCBj{iI2aH!H;kQZ`j?b(sh)a@ju8VfeZGqHZyF$tcX_-G6MSv_t`kcE|1XlHBYV;sCyrAvx_eSjg9 z;b;wY^fg~o_~2|(M8mM_v15@^cb)CP+@2uK8I+4LC{X_)BLDxb6aCvbCV!@uRB#-M zp-?DRyN83|D2_YWS4n-@qTWu+ZD;HpNmRggfVB+110;JOF*C3O+o&2Aj|x2hT>}kw c?kVl}9QsiC^z=mp7+T}VVV6Typ9fs{FNh1R-~a#s literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_010_dense_maze_kd_distractor_chain1_1011.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_010_dense_maze_kd_distractor_chain1_1011.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe13482a96f9ce9576b2aca66a438ee9049344c GIT binary patch literal 21892 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 LXYi-4{^9=sAyd}< literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_012_side_vault_none_none_1012.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_012_side_vault_none_none_1012.png new file mode 100644 index 0000000000000000000000000000000000000000..b4fbf504c27b72b61690e39aa2d9e9f4e4045ac1 GIT binary patch literal 13567 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_014_dense_maze_none_none_1014.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_014_dense_maze_none_none_1014.png new file mode 100644 index 0000000000000000000000000000000000000000..4108f223ab69885cc87a90616f6a4f982164d13d GIT binary patch literal 14779 zcmeHud0bOx+IG}d>sX|nS{Fc4wMu1+$i5|Qtt(pvWR-wKL3SbRgv4sq%9f%+*wHF5 z$Yx}dB}7Gt5FoPei2_Ls0n#KuNXYU%sh#=SclynAI`hsu^M3OO2Y>udPL9vHp6kA@ z>%PzRFYS-2{7&t65C}x&_^~e>A&_I5F8d69N_y=^tlLhKv<}uzQF-~Gu@BQM@C*iTfkr;e>y`yEW#i5#51Y~TxH{h zWA11OWZUnRKWqF8`@naZYaRdMGw0a6`N>U@_x!z9_*&Wd9KZ2ac zHlBCvZf~0nv}q)qz0swx;wcd3qmvz>e)~G4enN4cp;l9N*G#t|tvQYy$4)FMaVZ-F z_XOEFI6fMt3W0pOPkFa%-vi44S@Vq{1acAbYzO!=Wa?cAtfJM?86Z+r5HyQFGWsW*V>A6 z?jYc#6x?Z{Y$A3#mGfa$?BV!k zDe^vnkhUW7qUT14QkmycMOdQF&V)H4RV2LbfccKOy7v5FU1r!uNbqsj)8U8XDVFr! zp~TZsgQqx4Rk%bCH@8pZI4Pe}lE5RGCN5VO>gk8!R>%9#5xj=Jud7O!TiHo8+_^gnSy&7lah%7+G1J z*6@#*2&WXKr>8Hfllkf#vSO92PTxm1(pD5H8fb~3e1&@Gqg|xehhZlyV-{@3>%$yM z3bFBgSBY#@R3%9iw!fqzmmf}zWSuCwv3~vfzS5F{oE|G-*PDPI}6$aPP= z6!YNKyx`F=e%gG3*^9?UwvMw^mb}Fo-p3tcpMH=;u|zE36DFqnu53eQ6_=Fs$9FKu z*z#Vf6eD@O0sd{l$}_F4lwC}|`E-h5U(~Qy%*g8VC+YYro!+Ytu34AIHbceFj}`;) ziylyX2PvP>2BlWd6TTA&cOy*1aW|k;hs0SYb%FGJ+Y{oz9MQ{L-07Nx^N#4)OFdK9 zm&=f{m=r9t*$dCZJ!mdjSY;@%d@JlqE3_q4wCTkSwa5G1Jv{D{B!g8wZ@Zk1kB<-3 z%DeD+MSXq!iXx7k@0u`JhCC&;#9583g8wnIs++LWGI~Heqf?-8fQx6wQcdZx&*$m# z<@#;I2(~$`l%$aHU@c)SRx`U)_rr(66wPews=5acEm<0gV zr@QK#IK{bvc(7?R$;HmvgOb%%)fF*ASRg8=j#O&YOUU&h?E3LI92pOl1Ol1nz;G?iz z^6ym@;34zK3i%kiaCKsxChszPWG~@#-}iNKp)4*#kXb)~l=Knw5y*Ax)@?}PkJFdy zP7%n1Y)bsfay>b5g#GjcV39V#ut^Tg9jiISUdW{{7Vp6-@Hpu-RWzF7fECWr24u|&~iee=nL(Q^d74NiB>nr82pCDGU_%oy_O zWNj0#B_VE)KIIGgqt0RW_MH6uknR5B7GXR02LSM7kJqVgQEy&iTEw=lrdcky(O;5Y zf0rD{kS)Xzs;E>M6NYP8zG~Y1>f755+{&gvCBYmC_>WPHiB5ZqgvsG?lx{a z$UNUeH8nDF#&lN~ER|nnOt-9ig`2HdS(j(Z6eXg4zHOx;~XlR>{csv2%S-X@}t&xw%%Ar$WiV6jwlNc|SZFY{xCM%k$&) z!=X*{b%(H&=^6=I04Eft((-fEXQ4v`oW1eqXXymHV z>pUv-H#}z&yy*ve1OSHV8efVfY=lC*0RyKTlS@&W!mMH}UDCcn^_B}xky)3aQXjst z17_-jAnu3$;u|89opa0MVF({p+qBNhlNVZ5sKe}!&bP<32=jfbTsF_uUUh8g-lNI? zh8a%7pP2-79}*k;=#l<4Rv=PvgRsRL{p!lLp&^|f0WDnEZ3>N$0Wu@`9%|{`j$118 z_R?$`%&gZ8Q%x9YO=2IqYepr20xG;VVZxg)#}78qmnzp)28qPP(Qp@Br8VccgT>r% ze&X_I+c1+!|HiBgp{XN6CL7-F*FdiiPU2RPvEoPN^`!X_74kl^zau=2~R=c%@u=l&mZo@Tp<;bU#+0g*!M27`V*rpsFXC!6%*YB=>1g6vz_)biDbB{guIeW{-j+GiWdcu zmxH)i1*9UP?ud_*t*z}AsIcR}Z2E-@df#DY342=WDc}a^_shy1 zCg?aU*m!7YH%xe3EC1Hm(ybD!bA!xI5pH$9zC=lqDpfQs_vZ+%l42H>)%x0La!t)G zxQyeljeuLN$LZK7&|iP7%>V)>Ew(QO^Z6|dRJ^KO1UvqSX?zzn_T^VhN^v@7Dy`L; zRbe(UDsjoxS`z2C-mkCcGpx~Hv%cw`&LztM8}J)3yrp<-@P|z?Jo_-rw0bgSe_`x7 zCiHEHMYr0 z6BjDth^B#of!ZjlcXu%sjwOIy;fgbs%`@a7MAJ{mqZi;@=95`e7B5T> z<)(^XdeOOJWJpHm4U)0eEuwg9go%yJ->NTSpb9aORkOR0X^6+kvlJ_9-@8sQUi*q^ zt>>P0TY)Q|I|J)(VfUraSf68n3fd300kp)GG<&Kopi`)sA5=v$Aqg_7bdmO%rjJyS z^mwE4bJ^SyF@AQEhmCpPFEKH(E#WgJ31~VgoAA?S=~?(bvd|5VpD4&jwqKRUCo~f5_~4(xfN|TB0)j|6E)+q zaMH7(`Dnk*bAincE@cx-q(POOMU8~s{EzuR;Z9(ChZ#;yd=!@40Xqv3*tL)XFCMcTj<+NQiKjnhwO^o zh?Y;JFJE0-uBE&=jIOhZq2WzAP_Jcxc1tZUJd6FZ z3`!eR5nA%Rx+pB;8>qW-%C*6?)u6-A*g##rd>iH_7X^mR=Hu^{6~1$}f)cV;L*?0y z2LbA5ftY%_#=pXH1PCwrRm$cciWkva?3SCX-}w3g>PpB zdY&*k>u=kYFbwpfY65ga;mcj$Nj6$WoHf4Ty}K?4W9tk@>XE; z=nsWv`*q!;;*;5LO~!gmHpFi2kT9}JF>;xmo6Eq->T?Q zXN!x%#j!;a&1#Kc9w4_&2QRXte1a$K;pvi_7Y@VXPfCVyvSFt67BLF$~2{{p|oQS%$?dB-EBO4PZjfWU7JF9u;Laj6H{&r4~d5ZEXX>YF0lz{ zrc)d~HC3;0%IaZtk44$aN@Wa5ClUA?cX;>-dRF(Y9Ljf^3>{{8r~lqA6v6v zF!b;AcEBnhO(jiDyS4~2eAmgYs)w5S9Flu7Brbg8IM@JBA?KCYcWPytvGdSLI5y!C zc4iOM9gf}4ldZOSOWURv=iLjqK|3zj&OQ_FVfYt}FHt+I6Ijy*uE^onsv6?B4BF-# z6yjP)BHlM`4rnJ8j`E@eh0jg$f{z&Pip6WlqjV63u(J7%x85o3535-pyi=TdMX3Je zFhjQvNbKmR8?^>b6gl!0!XC>oarZ6PmW@%9O7-MXD4frAy%MW3J=dzpEe z@zEpsz5#J6*7YXCtiCsQq!P1^i{Ws&I&@o0@@Rw%t@KOt3r#%u3|t{ZD5_(Hvl)o6 zmU$vYGvRTfrnG$+u<)au(j$~I()*%LQ{SGj*`~goF%u^(Irna665__|LTab+2rSUW zsTlQ1MW^XfHzKA5KdA2z*Xgv`y@1c>d*E;iLE;R>0>Kg!z0I#~ARC}{TvkViEqX)@ zoMKJbzI@MY zt{>;_DQ?(ostPela^kGZ-A7)874i>|pBeBtD+8K*1A)jUe@ zMrPt=jdKsFNhCG#+0A1Ap0M-zqAkqnOKFR&c5!*kHA|t_T?4Dtx$0!pr~uQ!FeMuR z`yjMADpWtrCi%rV^ePR{mRCiEaXcipSy<55?D`3>w?k_#R*C55`k^BQ8Py-q@X<4- z+#Z^&`6#ULumR7mN9#lfHJj~xi}}`wt#!i-lO@Zw5XgmhD1VlvnC*J!)AzO^W6v~7 zX3KILyRX3)?@V>)i*bUDpU;M6kzBl2$Aav9MoS3Zf=h|6yc^*O^Z1k&XQ-& z-4Ufd-@0{c3c4b55R4dsl48Vq=?zA^1!=Plkq!8E&~%d;H}j7lWD{v=AwB$R|L_^+@BS$=1WOdOk;-^nP&&kdXVC&bVX!wB~ zARn1hSrf*93xidzUcKsA>U;u7Bz47YjlC=uD+#f7yW#Y?w6>S#0bO0hEE-jM&3jxL zWN2oVHP-8rXXoIcObhF_`jly^is0|Em(tvoMl zD1g&%D>yQ=k5(adbw>F$ndrRvrkcIxrMD#zn`wh7J2PDydTKC(^%-e&+pP4y(-=&P(^u^KAVbVfW zfUocFoxg;W$VekE5Xj~u^S;;4I5ErN?AI^1OI-5rN*O+4Kmi9saPaFQ78UIU5Omfj z^gn-oEKr#_XFGy)`Iw=h;rv8f=1tUeF^n<5X?v}WMx$AyYVWG3e3+iTC$*MVAr^~` ztgShdcbVicGP;FL56!2ir`yU}EPn4_J_)w4Mqq1PG|o6tqA;R! zYPe@43<{zZ2wbqhV24lN|g;kR;U-|?d z^$a($w$5*FZy)oxSm6uysmi=9k|~^j#dGy_(MzUE9-w$!|R`l%m)?y zn;?*R54Y1NR_`ajS|0%(7Y?bNIgrumSoeo@HYRl7Qi@b#Y#-`CeK zf=$MIH=;%Knn%tyy%T6&FyOTS_CmHj?1bw9WP7jgfLK>HgQsVGC9`}A+H7t;%Rvgb;^CClF;J2K$ z=4fs+GCB5Lz1%}TQMecCjzH2ZVA!cWeMHJF3(|H@X0GTS0Lay=(NXay8!zz>`gsPV z&1ZYs4r8Y)?P2Sm0RB(2Fz=Go6D&#F1CAD%p3*kREK=VNL;0l<2jkrL{2eXIf9eza z^L}YOP*fFz>JIky#eubrEjE$2?mKIjmXwq{`r<(hcE4B5YH%yJ$D#r;|A)wyapAye z508VC#>lj&b?EXYwp)EU<>4o&t@&@(EUMK)S4rW_2=mmGlzT2ALE_B)MOUs|F)}pl z@9_%W0m9U_q>sWTzWCBExzt(PxViH5{*n_#{HWZ3(9j-@pop|?8m$EA{?vpo)1Des zYX*fjms4`Q@o`8KQ&5}|D<~|$VG zkgn|OegFN1Bp*;c<|ii2%CBAhp>_-eD9e%CO|-6p_)IATw{VFpcf2uzQVy=|;*O7M zt#k9U9?Ao{%gDka$Kyj3Za)O_c&pZ5uq?l!HT^&Q-2bk&`oHqMzi=uW46LBXMnoJu zRW`Wf_1#_PBFE#_*4Ax%FOh^coW^l~b!5y?fDG(o;bcJxtFP~d`Oq^BDvD*^5ZzvG zK7{H9xWlHo<9Ae7Jk;b~4Iy^Lm;W_PS8dt-hvGJ8?F==fYvnDcqP~^JZX;7uS6!61 zw|B|5BAprj?EJhj(k{(C&7DiEC29uE$8loLq0wFOWU)B_T>cwC11S1~?nCX}3bWjT z0{dT!=(bM7&aA`!%^vE8;OfuqfTYMbFjA| zkddi>XAIOu#jp9spElu}q!bT7sXD!svZ~W3#!tvK--0|)3vb_5DQoxIb%a@v;O_)% zoMj9x5|I4oi+t^+<$F%{6X^xAto%~lJ_uy!@li=p1?`-zdibLWl`0#OLUZ%fiAUdDdr z^3>5WrK71|Y5U+8l_8h7kL^akZ9wTFR)8w^)sma2hZwqIot=&9-l3skJAWQ@I*$m! zIDqG-2d9*MwOv8YKNKX86oS!|yxm!o-gcHTrt<0T7cVLY$fP`r5McD<%Qv#J%Ky+nPtKBXK16ddK?Eftv>fbVu_1})Lf5y%Hf`tczM1n8X zVW_%vbonofCwbT*u{rQGGjR<^ei00RNi+eiRMgVa0u=Ia7U-s#pDd@7uSp@A2bL)igC17Qc&3EiK)zbVws_%nctJ26XWo)1AijesQv0xAFY+ zpx%GEczNr=|224iTxSo1JXo3o2H^dj$^K=F=Il{ zQ2Nczj0iQgu|cKj>ZRzAZ}n;dTa*n>#~yZ?wUe#!_N%+wm#dxOILkmPpYhw%Z$s2| z=tE%i^6}P>|BZF+|6A-`sqJt=2LyCz7*b4Z6PMU=0nH{6K+{#^Gcs5sE;*fUvI7JdLvdDhU13{-o`w>PCMq?SM`U zvbD4O;qp?-?`g+Tbtk(FP<6f1%HRS<29R<9i2Xg2sWB1nzKI<6ul--M?fx0e{Vx^o z{c;%rlaooCf^PoImyAvb`?7XarJhYQMj%1>MFGT~|4RsFxuL-zuG)?r$1BE$1bR*< zHf`Dz0H)FMn???TK1R}qpCR`@FaZJZn}PyARM-BaEji%VZGh}H^y|hGKn{z~o+mC$ zXaWHHT9%~$F+4K?SOeX*(w!k~ql=4?YCnd+*RNkUI&k1y&~s68Bq}iQzFVBy&-x=a zz}hren>3Mgq8CD&Z=%khcLhvj|9%#bRZytI-Me>7PZ=x|Kr=Ep{5MW||E~}h|5EV$ z6*qISz@x$?XsP|?&6}kj6_vc-?=1RBk0KC&pce4gbZxKlumc?o_;}fETPS`WRMp{0 z`1tpY)%IKmOKpSYI{*s5j(dxK(yaiIZ8vcr_$bgq8_eI(C2^>|YuPO(6o0DU7u<|W zm5ys?sbc`fOAG6og9Y;0_l-t)|C8G>f>#|Z|LvA4IK{#NM%`7-cY4MinvMP#XF zOONo3_gQ|T%)l#~1)cUV``9-YwFa{qGLI4dJk}4uV&P!!AqHe?fl8kV<}5&l%0wK9 zL#kCNcTQERUs~-xN;`oZ-EVJMG+-j|rI(mdgR5qNKzt*z4GmR$Y>I31>u3M4V903J!sj`RmLQlVC zWy+UF0}+i0W;e_&VGUHe&E;4ei{A1 sU=TMb^38DB-|&LqUt98lIK{TLybEN#=ZF3PFa$Y%*#3*k&wVcaALI5%BLDyZ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_015_winding_corridor_kd_dead_end_rooms2_1015.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_015_winding_corridor_kd_dead_end_rooms2_1015.png new file mode 100644 index 0000000000000000000000000000000000000000..ff06a81b54c62621b1db88423f99bba488bc1070 GIT binary patch literal 21829 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_016_side_vault_sg_dead_end_rooms2_1016.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_016_side_vault_sg_dead_end_rooms2_1016.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f16aecdf9a8bde9cbb29d02ab97cd1d7990b2d GIT binary patch literal 19220 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_017_sequential_chain_kk_dead_end_rooms1_1017.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_017_sequential_chain_kk_dead_end_rooms1_1017.png new file mode 100644 index 0000000000000000000000000000000000000000..ae74e8d7f7ad92404e770776346fb385e47d36dc GIT binary patch literal 21973 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_018_sequential_chain_kk_dead_end_rooms1_1018.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_018_sequential_chain_kk_dead_end_rooms1_1018.png new file mode 100644 index 0000000000000000000000000000000000000000..58aa3c1c574cf1ddfb7c2a0c1322242f2e6dafa6 GIT binary patch literal 24278 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 Un)3m|2*{}u=Z=^B$?5k00yEH~@c;k- literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_019_winding_corridor_kd_none_1019.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_019_winding_corridor_kd_none_1019.png new file mode 100644 index 0000000000000000000000000000000000000000..7136722af9fa49a722c8333799f33d6d95b54758 GIT binary patch literal 20129 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 mU#bWG{&biNh z?)yABd(g#M^DVu%AP|V=p3in3f#V85R*67V`P~sG#VWkO+jiiRo4o>&@?i5B(Ij)nqPHI`zrX&-_cy~h)L`u8L!BX$S{ULR`q9W zUIBsJdI$1__Whi_5Xk51|6VCv0(t*qqeYN!&i=xOK5o@%oH=b~VbQB9!m&eC0#{WP zTIMY6c2aaJRjM4mB*y>_J42wJliC$gv)ndom1TXi7lO){-WQ}sBm|-dyK_9IqtdaL z6f&_D=83dXOd)RGy!nzod!c3Q7^B{!ZlE3E0hN63e0jM^?QkJ|tz$y1eAG!9h?aKe z`XxPgPP*-*k}_Z=9t0n8J%gtbFNZJOp93#GT8mKeB5>F`ej?u+5t*!i$=$^!KY=e! zia>W|TzEFxs1^C)l*0#%H|%aZzF^H=COwtQtm{P8#348-izT>|=l7n{wV->_ z=}{kBbM2(06PJW;)@QAP(<0<85dxK8VAYvPe4`+LE*K{Y9xI7R43%U!NiyaZXimyg z^z4`pn=uO_x_unSAE+##PFYbU?Q;<-QG_Dbv*Fo$V+Q+FufG5 z^C?ntAvHrv{&HRKn*^9WRQfpOGFy_(-b7U}sg#oK(s?J{6<`R1-0)_Z?B)2qr;Wabt(m)O=Si6 z&0WNYEghTB5jR9n=Ho>;&UGTz4n~#FDHCP#2`4_jv*X1g8ZVKLg%c5$mf1ri<5pC( zDo!C~P?LHH_xF@FHYWA(Wb?TyxrK?{6~o}%L{YB^+}oQwB&s3t;7KI%5bqQo_u^AS zj&G7=%$cIpN}5T|;?8+fh2EZIITx)Pk!BI|TNuo?7gc(jL?D{m2Y4TME9CBXh zfOV!{4bG`UU+>n=nfY4j?M^!cA5+OYRS9)ZQV~5ku3$B(b{D$UJ*SHu8o8M!z2TC0 zuGmi$=p+hMs7l2J(_dPTo;R10q6pqYcd4|z=@RS9R4IXK1Y(oYiY$%ERx*9mpRM&A zT>eaX)Bvr&;eJcYZd}CvA?_jZ3Pw~hSDx&&kUYk~DHwE|oQ7NBI~|iN^FhyLL{`6Ouksqebl1bvT@kUwnW{d=M8QJebm?u#LXXoee`OIJ05h z-Q8oR>FBm7+~e_YjY~Je;+vMYf>7luF?|ls!jk)=LrfnW9EOw7W!Tf4@c!ke zTJfJqW>TCIy7-KnpQcE$U7WRwQogiQ`N5mW=^UI=!iYCi3gN11-2Trg?M)-gt*(*KggN8R3LzF zf^FXH!>iC~82(ch@c|L1;EF9RElZ;%8jdqxDuWpHebpFGpQv3bRWC)unVC_Bgf(N? zG8Rjnk}7PX1vQS(YNsQjGqMDY3lCu{6^Rtt5PzD@8fN!#t;a68OL5fM)QG3pA+BFs zk3%Lh!b71#@*iFR`7$Adk!cRoPq4G+;7_xzUE`>HCTtm#Dx2C4ENec;lZiEpoUWTd zD9KWHyunis@ZuDmA}ooZw1S;rOWDCW z=o9>mT>10f%S@>Z%Ve_pLaUD{s9VK3svNbT}zTogByKkSjGsJ9~36Or*h56(zVchh^+H`|Zs@yIK}o zF~sI2vc-vT6`zN~&Wng4uz~Uw2-SfIj61)$vV)_dq_IN^vTM*@loIgK9X`c7y)EWy zDTlQ%agFoYR(Q5;FsHu}z^y^Oe55%A>zc@MCz?%gDnQ6)sS@eltP1gISi;RXv#?;- zG4q_+^X-zvs&Ekiqq%V*WiFHWR3vTd>=ffE0Ge>sbf~B-1*|Ywlf<4eC;5n01WPHI z$ffd_DZFjbUfsnd@q4QT*t*v`i71HNPvk!G5Ok#>R7Q+nR9`8Rj;d_d9Em&FuIL6S4D_ZCCTbPw{uot2`P$-=wh z%En!FwYB|ru`eEv+c!*A&@l(XhnAj-?9n-jlylG3q$fOIr`V|9*1eAONE=DzgtG;A ztay}B1Ac!4JXa|wz{Y`6XUP|+!38qy^E4uGmkDgjnT%5!w=Ss>E;zHsPzUv3C$98_q_vDbT=t1iOK`oxnv z4o4sA9mSm5*{e~lw|23oA3BKND2kKQU7U5A-jiO*(?T z?G?R1Pg$Q30Z(#5czF1{c7{5!Nr~i6Okbrm zcgnsi87jD;%oWza>R;SySHW}7aVMSbV%8pVsG0tZMB#;}KxK6X!YdD&qCA|vNn>MU z1i1>cf;pTJBTUk?o0aAnDqfhGo4dPQVo;`$3McODX&Tn{qO^#iekTQ0HAqw(v*A^B zmx>|)WZ7NPa9U_mP(e&ZIC7A^W9bv|qyXAQgLL(Bs-Iqyo;VdqM4>6X3Hu2fXWyi) zo}8!%r&(>MsA{@+dWfmohB%ULr+Bcz(NuupJS7H3o7vBvbzN(l&MnUp+Mj72A3R$R zN7@z9qM$|4bZ;WIKb$eTm0PFJy|Myoo_09hri9k%kz8kKlsu}N(mr3Z6tAUJ%ob8p z)XAL1yg$6{lpRv`_)_8X+XRgXL*3M5Dud2RS#&B)jaz)DqQlAVVLgin(otzOfkhfk zS}_?}Pmj;@;eZQTsr!zLSHw^i^1}2sjH<>Lwm>%99vnoyK z-jsYr*T-+&-K1}$$sA~EK+W#^eK#bno{bd}abUKpBIzBQs4C%LJtEmuZ_V|*(xhnd z(ZHx%9ZdA2_4u%~0}26ec5r%4pA3Ec=!zB0X4Gw4XtQW{M6hpqb&k-TCbYabMwOAN zG9y*vBZd9d7~c1VPA~6SCB~`ZRGrdIW0*Uq^Asx_ANq7QS?^7j#UJ3B*2<3tnjK_k z7X_bQ({RqcQxsXHW4U2e^uc-~o5`iv1WwT>fKsLl44-p09pHrQ;1q?N;kB=o4?Hj7 z^A9^S^DK)^6I2hMk~(Hi`1J)gqU?m(yAsbq4aw|jC06oxr~U9CaFRmD7nq6f+mhA!{A zJxc4>OZ8?;S(p_b4mTPcYx}fa8Kf2tL0~AoX*hU6NHFwSv!ugcab^JH^TI`Ut<_Q5 z?X=FV$j)}EoKC&|9g|S*>AKBV0f?cnrY~j&B`9}+DgklVQpcz1ZlQt~*Dz{eT9bLyMzpY)O9IZRt`75qs0 zd&RCs!lSp;Ev`c4X}BaEW&h++Je`!}j5y+i^b)@Xodjg-I2!OQ57Z#&HD%F#Uco|@ zA2m1r=n@K`fc7`B@lbIsO{hu$`_ikjfeO8oIIPQelQLS%0x3!bTSZavpuNq8${8~w zCvl7uLsjXhOC8aSSR*~KLzsn18xPRJ_Kzo&8g8~Zlv>)Pv6%zSZ}Q8JvTBtbp(^eo z_(-OH!hQKk4pgQsX}3Mlqt&9BW>d->yTCbjPhAwV(u0y+pBir2$ekTUY6U4oMWb%i z&c>GDMEf-;nJ}E+wBdV0P!t5z-Zxz=!A2G~9c?b3{<1K@jonpJU^#GV)zxI;cg)Gr zP29;4PI7GGAp&;M(%i5TtwG^3(FWYy2I8#1V1scy*VEcVxThe;@#M_SGqyQIz%l6= zIfC2D$t;&k&JG+m#fJMBHdp&l>VuM-z7eV*7}iU*Kq@))O)n)~`0i>Qv%<7hUie zt;)$MJhKP1-NgCA9*0pt`WMS^MEC{?$CFyGLW$qs78=`EW;@6yr#%|h?hrowUfrv= zYvuHqFYBRe6g;>K&$HR24(aP_uD2BV#VPiFUlPIYL%X{YkL1-fes9~y*aanG*qjEa z+y^t6pM_5x)o0hX2015{6+-LH*CgALaFh6?kon|bVcEBOFN7;Jyj4RU!m3lrH;U8K zY2=jX8wkG8*qWf1j`Ue-__>;RF`Z(XLFb|p1a@use!z5tV*iyHT#~>U7d!vpzLTud z30oZ{d7R=Hn@J2Nu$57_M;#=R@)gPh3bC^^iz>+?BtGD)b!xTMP~Tw0OjHH(LcBdf`MoiJ37YgO+9u4j!~k_LQ|!1aB(m@XAtrC_r~nEW&g zss_j2e(>yqt4IOX(M#3dN9+r3kx}trU^Ooh3)bCwm-1N%g%YQtaDYXj_xtw^B<1sEGRR>A8f6 z5(cFT$&aR_){9G%W;nW?@h#&w-}3IIBxtN$`+|SA7@Nz%^pPyM%mrk6=#cC%1KY!y z{EEX&M`m-*)^lfXARV}@JgQ1Y<@3?DmobCc^;R-*5??F@;YKUzCCRzVdbv3)HQ5*| za!ovSbsNAVBr#!#;31yroh8oSo}MINS8;Rdq^qMGbmJA2?6#N$1Wm1hC`}86x2J@r zd1*%snw{;Ry{({JNXN-XQ%pR?tcW3FOmX){O~)zoum+CKdp*t39I`R;Jcq0!43})M zA6ce|JDnz`FCX4{7gTv zQUN9`Ftv5NKTFz2n#S!_>`e4s2MJ3l{Ce4JM_gkifM@=T+~^``1Kg?Mpwr{S)J>yJ zT1k=UXWF^(neM|qq-L&)ohIG>jWpo>-Jvr)Gp3u^pKnPZ5ST1;xKpIyNqUmtc8T`X z3A>mRA@6&160EIB&t?mAeTcJl2FdeNrpK5H3eQ8xeVb(GQE)xFb&t1UKX0lC=$7Nj zwh+jJo$DbGQ@3T1Pxc>v1F}jRsJiDxmv-p*L~i%;@_NMh9AEcv3&O3B!AQ+6H|Kx+ zb$DO@)wqm@mdv)cw*6Ogb0cbFHwl^6dfq-h#qhC_;H<#1s;c8tdL8K!F8$3q>wlm4zGW|0h&iC+=jUfKgs_62^Bq^04@q0FqdQP< zc2kVBfjFU3*`7q9YOZ6a>+<}v&vqe5`-Yx|SGIICWUZ+23M6$OEAhCRl@;0`XFYFW zFaQVVoQi&rd`Po3KR@4%*s_!S>|5hDN;oIhwr1eWdEc0pj{elI&?yW zn>O-^)jB#>`a!h3i~BWOog`$ZZReRY&vO?tqeo=0Z6_dGPb3`F_$?~@KP5UKAgk`Z z7;yh_ZoMYm{{0^cyUXATubBWT#ixD<(YTu223leF%a<>=PBI)RZ5{1t805#TyXZQZ z5pXHb%*hGf0mK?NV#m%95;Gq$4dN)6bzmv8xSSaRTnC^7S@&VDI=9Hgd{|}W=xm?3$(TI0#Zb4ACJBhMt(>yU zKhm-*_0c(#`p?!Zx_4!EyTR`kL95h=o8tg}|N95RUrNM3<5tVn&Rb~x%-me`B#JCK zHf6>`k@p`sAjGvajip$&N^}g@Vg?3+dBz3Rw25lx>{5Mw{c+!Bv?s08GIR=c5gk0W zyQv}cPVcGAy1KeE`|uT{*^Bv?ghF9Oef>3`howD}vC{2c8x+ga}!rha-#(o)WG0~nTv^2m0SH-q)mKKTo1u4 zswHvCCHw%M((O0##(pEWN2UrPRV6-}`dF1D@xPjrV-oCBVaqvk)q2zs)s4N=+D^nB ztCNYd-Httb$NyRX7RdS2>Wt2XQ;OyEU@EwD(TzoJ%g$%2>YvY5B*h2z5Ek9DJiAv) ztLP;`1AIhB{hk;Q1JR3WPu#kwOj*Y%4}(AsNN%i56gIz|OoDQAK7@S1Ta_v3b!93S zN)Y`{m&32KF>*nHi80vpSli$<%#n{fYEyk3e0yuNeIZ|r?_BShy{a4A+Gy&SO%LHY zRIxqFgsas;#id^r(BPmnyQ%|r)kLNETBubqU;|1Px<3I zh3u+y2n`J#dwlcLprD|Kk1ejmVMSBAS!l+V6uLklcuYUW^9UiOz%B2hCuU0}4eH`v za5b(SP=rf6-^~=BO$-S5;MkW#CqqJtrhxC#*3t2DGeD}ek@?@D<7QeBHlr6uV0-Pd z&FPKq$AWyW#0@kM>M*w0(QgYi&>kK%OGEzUH@y0`Cqyj zYQCHo?D`Yd{Lg^Izvb!w@^{SQfEc^890r5o5u_~QLz8XP7|zHaEyt zUWvmS4sM))Cq%vo3eK%2UhjkEG8)E#sqqUVtQ9z-t>CB7Gw4HFM?oonfF@E zwwN#dfElKypuDQ9SFfIwY%~gecgyC@JB`cqw`|!W41C(JOU}-T`=QQP1_2GW!n>pP z_`**Wm<+_@ul8XcbdRDVo>M^j9}b7ZK->K2$kg6!7aE9z3vFb*OTx3K*2dCD z%p4pX1Qj0SBZIsVeCqwd!E50)AEd{%>)L@1=){Q=x5n}ceZ0IjEnmL;$y-yq)fT`S zD>aNw4E?0o->Uj?u?M&Ed=^lJ;3?GLtLok$Uud8%f!urW&VNbYk7S2G2F`xcyX+?q znIQXtn8BPxTdBvebTwXwP)O`he}7rK_|+%*O~ zX0M}1zwz+5I(F zL1Rpp%M(V&XcG!hivAHr`~;xYR*dM+nDxgj@jtaI_(MwI`+z8{alrmhbfNz+k-@d_ zjYp&FV#z}ZTToX~WM591z8WOv5o&H_zEaJDJE#l8kLewbp>UfL2S*~BE2=Lq56B9? zH~LZ@;Z=DMj*O3w>%pj2b+dodj{tf$>03_$S!XlOmrHbdB!MHzYuG33|5HI`W3$t`@``ZF)F!D7s~RGyD?D zHu!R4K~-z*8d7=IN60CA&uzHULeptICDf`+`!;MhdHFi^>7!%p}|c#RtevtLOvQBo7o)^ z<~)X@CY0@Wb;X;Tco_)q?q3_IaqrPbMw5i?63~RSorFMAt?yh^db5yP>mi@GgC@iD z(y08h6`3x`DT+Q7ih0$L_!mEwOA9h7-Oy{0k5dDUzAPX3)GK*znjP0t==rBFmhN0n z6S$MednBcysh!>za+N(n`MrotKtJ4wtq*j?<%9?{^V4Np>%fJFlcPcIm+R(t4`TO{ z9sIc4Hk~(sY{*!Qhy3z^(|-vMaHoLYJ$3|)Ds=Hs^VR)9gFMt#_2}05WV%-PrFod6 zwV zvho=;1(p0dWHhF1?T;zqf8q9jQ+WO%DE~y)zB7ct7ZnvLJFRQ~zNKAg5EcH=iiBE& zj$`0N>X3^W|NPL#D{<{r$4bnstQe7#heVcs6_+X+8~r>yJu?XXnYP(3P8+$m4K;?M zYXK%`QHnu|qOc1=d1W;iUy7hPbFi53T1OZ|Fd~&iUimr=a zfs1-PdEHBt-DNcT?B17)$9=c*Ip;o6YodFAJEH%m`O>Sepf)mu2G%X|jq{yN(GbY~ z&3|Lg{GW*_^?3c0%7WiCWdEx$@3mF^A2u0-c`gi~k<6ElG!RCEvn*Q=jJieFMz+M~7Pfh9oL(6lWy8zS97}V)s%S|8p1sbh`M>t>~bjd@$Gls&&l- z)BgB@fdR9XEBywx1pAoDA8s#*IWZ8omvH{vVhzw{H#HE{>UIla!__$8x&2_Cs5xSD zz5%cx?k(Hus6k%@*;@Wn!|(r0O#LC`@ug?_*Cl*y!{P4kuE>pw1e_#V`A{Rp4<+)F zwTAF!(LA>TZcEDS3X284&VH!L5|1|BVM+x$N=;(mcd-A49j_3C`7HUKl) z>;kRc8uvASrG$)hr2+GJc*&aF#dNSKrMhCYL1=$(en2chqO9{1aAQ zUJT^)UwV$}pS;6A=Y#x5`Mh_4D?psQPp8xKnY{7Pa(cs55X?9iOa-*o_P@xS6B@77 zqD)~5T=2j`odQz)<(N(fVCk5;0SaG~MgC#@qe;zw{(&TNcY9q`)!~nubXw!WVtg% zPdfyZHV_9c1%X-N-}k?ichwwT?IC>zD+B(II9fU|zQ!ILVBrseIXzQ^=6Hu(-cTM| z+YY3EHSte#n!ci@M%n(X%-y3NWRtgfMYpel@Fr35;Q;|ns}SyqbY}medkep(zyGg} zoPS#h@U@k#CjiLmuV#3c(B^AFpznDnG_xAQaH$vruV3<0ejkekz z_HtfnbIkx~#ZK(Kt#cI2qG4?mVKFNJ*EtVH0s^P5MMS9Og=e#afUb}GUcKUS*B2kT z|Gzfg4>Ny%<*$E?n){QoQ^n*RN*U_ceT4vE7rnwNf3_u010wnO(30|(s8P{>B1^5} zT=4S;BFyxdpt9Zc=&@sFD9wq~^3X;KFm9~ArG)|xd^IlUbK4@6?|rpK^GAQo|Mpg3 zhV*r|@IC_+u)x~LkNiQ)JU(>1yxsC=`(==;SL3uF0Ga`w^LbXdT4ULX`4T83_4w{i zOPYU3$fJIX>sBqL6441@^=*U_+wH)VS?1Zv+k?nuY60c%`m#SJu7A;n|Nm?izfS2b zYDT=oW!=Bx@~bIQFe{AJhk5M<2k8ICj0Gt072pA{P~h*2I-nG~}8Kp4QaWb+J6uI^w+VJg*%%G;a2OS#f~<8Ebd%sph_;)|q~%wf>K4 z(SK1*`CXaJD|YtF4}BOO00s7wF;%IF6#yR1RXHs5B`79Y;~B0!lB6(gV^2vKPQ zQWTQVqaq>%LJ0&(2$2#(2%!ZM0)*VPnVEA>zvtdF_kaHL|A*&cZ^)CZy|c2`_r2fy zzF+R1H#geyhuwdG!C+g?o&C`g1{3p#!M^^maRYc{r2_5(PP)OTZG)}+-Gjp}2VR4j zT@JqP>mTgvb!AWJwZI@Re?N8AqeoPaEAR0P4!$0wtEPtd(=$~413lE{lSKRwY;|rb} zZ~t)c+aLCxw|aK@@G|8q!?XRyH(+}&(;fC~iT&;mdAc%xqn7#ecb+ib?e@Kr=_o- zwaUh?9!5osJ!Q36#02WD%rqu^IZm1hXP4meNfw51*^r(Kg*iD2vf*EDu#!ZJNu+9K zc4krUgdDSWEW@XJnJ!ulo+vEX!FI;_+S$Lpa$0xplLBe8^UP24Dd?4}W$b!JnnSk~ zez9r(j&|K%_}I~;bK1_V58BAoJdsRY zS?a@QPa)~cJCc~rSUmX9RNsH53u*McAfise#_NLXpUxS{1pHVteDAQOzyGuP4j-I~a5!PFDkrl(Q zbeNWli ze6s#hSCToH8Ge4Yp_W#f0r)q6oB8qQ;VOa%!Na-*cHeY>tRZ-`o9!Z6+V|sVP<9}V zgBPu`a#PHWr@?he*#{$4!BWSWN&fzmoHzk z*nUji7S54$z8t^GsB2ql2ceaDN62tlWym2P^Tt-V9cpPQE-rpKLCH6}9izt7(Fdo3 zsF~mR=^>jAJ74ITUR(^H-9@wWhZb71;}~hNpeX>a}QKin-1)ap#L*@61e1 zt8m{2SncE+LJ_}#Utf?-B9kw1CMGD11#}46j%$h2>!Xg+IUG*yD>ad* zw=4!z8 zpB~b;bcl#JWSC9;JVi8Ep1fl3S0TUrxw&ZJA=}r2P47>&an@Pb-LTlCHZ>cOgd7;T z$IJ@uKBulqFfy1+E)4OdRC=L1LlB0^ zwHpGwX<>sA9t$e|5d`aMu&XUN$EHL2oV2&^bm3<7S^L+`ek}B=9*}YhzOVq|m4NnD zhnY6bx}FK2wrk^$Dj8NkG0@euHzllNw)@8fZOxyX4`GwrtNoP39AXl62BPLt(61yU zB`r8r= z4jAu?3rp;>GGY@5V}?=$`-Z59F7kfrd1sp#{G3lzt5x=~l9@DS1mm!a&UP(4h;$d( z*J_411eeu0YiUuFTFmQaW<3v6hAJXGZRJGG89jCsUj}(5;pxnVTiEDj-o7KFs9F!h z<$g^x7o>vA-r_;b8D1@2=y#~cDSYU*CbPu)kkvW{i0H2EGgusIphdRB2<+rq{p?2L zn3YcoNm*U&=v6M-rHy~zL*Ff_L-1DI;JiL_aU`jXXcJDr4LD$GeM+m{)8%qybi?>1 z{?R_(OP!sa_sOx1TeQDFsVF|f+EA$9aXDUA>*BNko~2=6;0)HcNg_$Yj&{q-dUJ+l{DN9zBS45fHXz3iH2ag6Z zS3&g2Thv1qhUgAB za%i(lRfp~X32ESzG94t>>4u$)lP|~$G!9UyI3)?M4BwK%w9~Tp!>7#Y+(f?NR-%~w znP!<<+tKy~* z8HSYJ4b}&zNx0DG;u5qp8YhL33H^MzNjN2zlodXF_jFv9U@SA?#zp6)?(`iuV@FRa z&+YjhS(8Q{{h}0cB8Bzon!)0in3M@&oj)x`?s_52brS)uX(w?GZzvvKh7&ZzSPw=( z!Pn^<%xV@>zu>rrGJj+ALa~ckM+~nbp;0Huzjum(`er-nU{HmOGfrtbim8|IC9P~L z@10~!`M6ihNnMv29eM93{?#7Gs8mJyImV_r6+QkyP=d*so?~|L5l=~lc$TC46_>f& zW!&W~7ng>e3-IZPju%o#T|$Q-Tt%`%FZI;krkvCHJaz)j9*yWg4%XeC6}$d_Ap zQB=}xf|R|1q?-7Y@7%*q`{$D{5>zSd>I{L7VCAjMz?|f6orlaIA?$N1i2uAN&HDM{ zshc%vY@E=tri;|7}0D2m#+Kd(vcX&5fs!WHGO^1EVb-v^_;$@R7A&fxvPT z^09bn1ORc>&0n-4Ugmz;Q0@V6gZ-c&nwv>?TtS5ma-Vw%q6%B&a5CdWUG}TOz0|NY z`Q^@d0}af`Q_23N*`!#K=5W(?bP`snl|bMFuY zV0Va^$2iLPw5W}P{;|u{`G@iPxldx5s6~BCw}!9ZQ!qXSssWvCfg4+h`rNkQck880 zw@g0j*h)C5+1GUSINh$az{&!Sd09Ka&V!w#@rli;r#V+mmYqc zn8Zsg2D4p+28iEEDsxbU;VUD8D?KSmG%)XFgHhb}Fo!WHeGd;0>fs0Vr|)e)9BMZ&{Ry|OUOE8FCBB2Kvv+UB^(#V;2;ufjZ_4V~t8y7}J9;lE@?TqQDy<;mi++)08 zWamw}VBFj*2V5zow^tK$f5n-}*T?hq`i7o*Wb3eNsMUV^{fjS^9P-mMspwat6`?ESUQg$5l)}h^D6* z*|#y;nF9>xp9Tnzk%HA>wbgy~ql#*U{h5!|3{c{ApWunr=_)Q_%KXt$?$F%c8-j0Z z9i=QHTCFTA^dP1nsDlUyg%^E_E=zmyV^Qy>^=(ZIjJ#c>T8Z&A4&vJ+`;aHd4|CPQ z)%BwbW1GXkgvn#W=DUof>iw#v4$2d?r6Rs=t6PauwQ)8w=u=ISd5W~)R{KUg?ou)o zw5Z#=%grmGm(!>tfEuv8Z=XR$l*qN-ek6XWMQn0Zjxlfw)p4yYo>xrsg16~Em%+dxV3+&dP9lx>ts{B(u0DHzRi|?h}H9Da3 zV0gH1KvB~5Sj5R$R?U332`NLNFYJ=JD$EQTt>`nyWo%X<(b?X4Twde02m3b!X zU%B87wn#`2UA%Tw1O6b!%h%TwRj7?9*(8W6Qb&|TKqt;Ca3VSav^Oz5jc&?1m^UE< zt;!6kA+37dojZ4)_o(nxn=nJEe9$_hXXUYZ!70C_5WGx>FB`4Z>tO#3o2K65tK++N zPeWUvJNxhPKWYZzAo>u+X_MCSJ)3HLEykqs=V%ZqOz|rWHPVLzYhT;CYuB!WF$d0jOqe?O7#N@{iYr#c zvW1l_E=@;|LTL*L3oGc)unL!!kue2K0E)0L?J4j=ASek}d8rbpwXq)|m#}fu8dW%UQMciAC)Q^2m zUZ;%UB&xz-C+fFIN=o4(;lDigUK&<@fFW1Xa=nrpJ;kAMUSJotMBfAF1M3=7O7L!*T)X8VvXs1=+BH0M==>$O{muXJulNP_uq45lqGrF&n3l zi-7FReq35N*XksP=U}P#9I~@d(I8G2Fj2iKNBqHiiSufO`$7aO2{0)(E3us?#kVtS z;EV4h&HJ2@h}lKS*u}=+*(RxCE7w8j&PnrtwDM2?63WU;&j)a-p-IH~ZM9YLOWCElf>? zLP1At%*1qGR!roC!ODzv$))K~KkCtD8Ffj;^$?8hak>_@FM7JjjJ4F>=oR&X@>ny5 zP~rg5zxMSJFS|}}I)y64okbuf`PA$vQCa#oX3K(Yz1}qls?%kEHo1gl1CUrxkoj>| zQi7KbmWE}KgZreD{N;5OD=Li7}Rl965#uA`Rc^uZYK#FmHkS&8+wH2TLwlpeCyO#Bn%aZKuPauYZsSyE?jKl z5PF3CD&F|3wjbqqqM79Z&Ew}nSxK=P3;fN_b8j?`%%sfQ05ajw_LtHi4!UNnuBc@n zTi`bv@`i#5?b?NUuJ1OkP57Kmoh}X8o-sVFH(jNGT2YcT5iNE}<|Q;NbLNH9v4&0o zP1`5Fdnpa};Fh3?+4#Ke1WLxRY}MR7M4`26UUqhEXzO_oiaqy9QU_DygE*HH(OiI0 zM1>A#cp2g`d5W@CFEkbwZyc5|cUh+Nky5hfKLiUy@T!r6#Bh?dw`z{{5?%lsyE(H# z!&Ji0iIC~W%&!>8Xl0BYwD@|$wEi^0N8QQXfn6$oNESJHl%*#nncI=g7v+goCh&PK z&H<;FXwy^5s%_DqFULc1Zyut}P*HO&TubM;b6|tN{iekBH2^|oE*A#&Z*j&Py;!`h z5QEWN;PauCrvrHUKhK!1l0_H$3ct>X2W!1t9E!lbTRJrWxB&lw^0S~D;v=2ps26rw z&}+R(wCv^5biDq>GoiTvv;O&VRzGsVjDOVP9=*)=^%XRCiY;*4)>{kLs&QM+>iadERdz(&fL0G| zN1n{R{bJoyNgcsD6?S3uee0CrzXU?(SN21m%x3;omkzo^2i1{$6eWnuGg*5LO46_` zUU97aabp(h$`!R}mI>+Y+Y|QH^wu6~A9Z~AR=~oYViH*omk&}^Fj0r8QFDCn zV*;b6yW4VLHv)tXr||Z)43fFdi^CylnIqb{EoPV1d+fdk3s0pNyW?_g8r%2EmG?3B zozuj#m6)f8Q;iGD%KUc(<@aQdx%&DlZ`rb?{n}O&ONo8yPQi9L30sMuKK;zoGK0w6 zbc@w}-j&9?Ef5HVWk67RxTBCN14k z{S$|vg&2cwf{8p)uabwbf6U21*sp}{xQ*2c0`cweg98pTGauWsVwPBDd$pWpHy|2`J}2TA(3q~19={uM0Is^k)BX6Cw6 z-%~V$4(qGFod&bMgj~FUiFkw|kXU zt-QCEr8)O4_|s}M!G?cP%7(#gH%erJa$)0%4(an%!HpdWr@moQXU4;8W?J>U&Gi`L z{9Ixnb)_sQ{J8Kk{WZ725f*pmyTQ00B>Ye)Zfy8v3_?G(71L479=A=_O>d6{%hUG$ z@49`J{kCn}#_INWd`K2e_jRlEIib#AB?}mbFXeA9=2_6IL>E|q4!0kU$bSE-pC9Nw3mmn>exlRjR^iZIRxB;rK}?@)-bHi5A7qq<>bd zS}>T&?TMb3&&Be1!OJDud35L6y}~7mPaW8DBv8bJa2uyxG#0`v=yzG`rx!<6N$8ol zUe-r;skxI=aUD=}m!W5=8yFZY@TdK#kFm4}r2T99x>|kar2gz=tsVN%4~ z9(tzVVu&tVC+Qr`h@Xe#8|(>@kB*A`kkMSQy*O+O(C&N2EZ3c&y^3zNvYIxB`;54y z&a=^?KRQ)Tsk4GS(Ale_9}LfWWY4An4R{!!p3maoO=kvHXAzg*uV*EhN1w58c)|7~ z8G+Dif#SBzm#WjJetTXqD9#Pxvx;RF{;TQJx%e272Wgx0d`)oACP@<&6&0%v!GH(R z!p+TXa1$)9{@cO0^<89gHd!XbG4gXt_S0-WHuh{%?2u1E{>4M7!6RF=!hKS=5(L6a)El2`WH3C$x~3KzQPUAU&Him7 zGA}~P@A9IR6~jQOH*58l_$%|nX_yFc7%cytXA0P~>mVrb`yDH_YhWjWcFM_>5(05a z4+>hxJvm-fTwdBN_DI=!*t6tY+RtX7iVxCK#kWw z{}JGHSmdDVCLoNOI^g_D*t*yU_w&@s@YQ3L1@p1GC5~ige&0q|`A#SrU@9wfw;#UL z6C%3}k!r1)&fod!lCoNFh!6%#xZSuP)abv14a2kWQgLrTvF>u?9qU5tG2D*{w$+a2 zU?nw`?D{6jJa=je)V5o1JDW?B|5ip@7}$u4CPRuLU7m4 zoo4~BWek|H!d<@o7tR%H_es#4k4!WyK;#`40%h7|`6)mzI}3jur$#9+w|HS5EeW^JL1u4Qu{=VD!H`!WxiLcA}p7 zXjQRO4s|wFBO5#UQlsX;Wep@M2R-OCM;0y8tKW!ylGB2e`6dNbp9 zJ3T&$UIu6^h&hXq<w3gu&-fn2X>Z!{jyfy z^~30pPqoz7u(+q&2IFc73PSkAs<;$WR+ByCW8?f<1%QkmQbj%}Typv+lwBfUJUw${ zeVkx_-MY<@8?V`&j?Zj;49AQ_l*Pp&yQAVUEDk2 z>oEwxc9HcVuEUGduK-5^fWt8Pn>$8I-M9OE3w1b;6>2O!s&(E(`@H~}mty|~yW`zx z{&`eWi8{5iskk5OwUv@FP5gD08|PU9XG|twuh18$!I zy2ENEVAEo4A?j!0YNnPR)(g-noy1{W#Q}g+LD+Qqg-;|#K$!aZtoSu>F1G-<07TdS z9{*EjK&96kqf33N?fd!Rq14uuG|#Pv(+P!nd3jZuH;20J1`laEKv4GQ(jGg%2fpac z@edzvVYM2uY3z2U6{(?6KC;hbY zL8xZgu-9KENrR?JmY`4Ui?=o%V+gn>%pi~mW9^ckkX`a_rZORVBQX-vEA* zA<8BM>Xa_Y>uS_KTAiB)qAJKIpw=x|L%7&%sOkqC8SL%~;KG`p12hDnNL~+ioQ9?) zZvA5z9FaO9~XY|?dG&wD;UR6Q-JI)6U!MU#}7kxoIF4=w9OyU_2F7Jt(_# zdyNx)SutS6%jVZ9p@8KJm^5EH8jFJ8cd=aLR^sMgBIS=whsmSja3i$eaqL;S{Su7t3Rq`@1tUU%Gkk$8@xxvg0$?xM$+^2P>exC1M zrun>^SlUI4&y9`xa-k5zD24HXav$-IY!(fr#`EHaLY75>Gj6hkkGF{A4aF;m0|~eO zQUPBs?8n(Kxf^ppf484Gb|en_evi``-F|p1=c_Y-^{`J{5xs4`=Oh5l>_Qj zzIum##p3cSH)Qw3HO8I3=@{_B!G>B1bX(tzWk8`0j_*6V848zeITkTqj7M(wR--(IBy#kAdNT4WG!lI(0pDRLT8U7RUr<_m?I-4= zwXL-pV=5a-yYwnL@{s(pxR>vEO)%BL+=7Z1peyW&Zc`C9{i?ugIs9nDhc1Y~fW5tP zofguUNA<_UQym<-yPVVwa|2xVWBtxKh!*NJRxo9`z@Elt1c#}bET>aQvd|}*0^%9h z-h9F+JSQKaP(k0*h67RE`rL>YNcuqcxua|4Ve%TKNeWHKE4HItu81~Jc#@>M{7%vE zoC@PXa8FTcVRwUmyA4Op0?`z0QW)G9;fFv3{lQ<**)qa&NLF3qpjbeCy*snx=b1BR zF7+$<`Grp%{AiCT6bj&jP9>@u@0>72d3lsq;tiuEHS&oKt0X|=k5~X-cW3G3pXJez(X?3dwg`6*^NbCHgj3&Y-3oD$-&k5<<`8ZlARX^=vBx&t+ z&n&CiCt7&qY8PrrnqF*$PW0?y7mJQbL6rT%XhDH2T`=}49W%*Sxa>!7h?X-sTffQQ z#MY=#1%tun&ffI~F#EiAgkCx>?1)QL>>Hzn7T?;PK3-;Ft5^3VIxRIu*bPQG{+M-p zq`XD(Reg!3Y)t1$(ygyMP3J;Y{ij_U7FVxY0N@v3sFh@RUp~0(RQGcu8RwPgMX?8_ zsNzdRLSUGw>Gyo#iAJY0ULTpSQwfkX3=9c~6^>noUw`|89YA=82-Fkjw(ylOuN(tx z%4;f)X{l`w9+l_iHPaF7V6o9Fjx`H4(%ly%S8vXbV;+&LhmD;=K-WZhv(CG=tPtOO|ylz`eM(MyCggL?6 zCHi_mEPFwFYHrbg!}JoK!zX!+)FAY_(_YUGN8#Ka=(w9Ru3m<8q$3sz+SwqHG|@#N zgfSfzpA{lCVfm&c9vBkn70aa}B|o%qpqfUFgp-M4iuX=ij zvCIoVgSMq88O+{gl{ZS5Xw!nNmO30_GP9$~kVJ2tRB8XSbkSU2!VIrcyKY4!C%@|) zUhoNNNu7>gLKjZ2jPW#%>p$YrV@1IfuYz{(T^bLvq42LHIPxLAZd9>}j$T@5FSJJq zHR-CtB^(JKJ4#~p8P*;Xy3gbXH#MY1j8k6cLaq=~BzWvGg*hfaZk&WD>H!PC4av9wd>B zbv=)l%Ycka!_(?9v+UqTp6r$~I{krlw{%QQpQ89$)*KuhJR^124r+UG&8`P7CDk+8 z1G-w-&b31sIUhA(EIsJNyp^D)nz#xgfUo7(~&lyC#R6A zYqxXlLUwXPvsppJb5O?wofd2qIU1&Bf|jnk=8PPgdqbvG9Tc{N^%Vd>R8loI0Ax;s zcZjWP>+god^A(mwY=+$2!}#xW&aZOr_;hcJDc>8-xI@oPp1o_QhC6ojf@32`O?A~S zQg97#inICHEx+i;@x~AMHg?fKKO6Rl`6p>bBdyZRu?SPT)=u{qI#}b zK6d4&y8S!Mm%l0nEO1(#{?*v2tw>-^PKI3e^Pth_7%hAxk(JXoaDIT|VBeiAF86q< zE4HlCr4XJP6I)6F`*=!5+Jsp`e;8985mYo8{E6{STt3SgICb(Nqgi2XEwZI=_KG4% z!6(FIBFCRMt*_w5?FXh;n*{cI@If0IXKEpgZG8LFE)BlMj72%b;!2L=Id8=zO(BIi zaw-U&NiKEDY-P;-gx|0O&?le??XhG?+t6Wp;DOqqJJQ{fF)Jzac?3UWD%Q^=)mZVO zm1e4OUge9R(@P2XX!pqRyGpr@l7<5tADP^TUT(Hel8JY3&zN5X^r{M9rbv*blwGwy zL`6*{yx&v*|HPN@o8<8iOhaFHT9#ZYu0TbA2A@L9!Z!cAJ6;3E8}yLelO}2R|Ja+U zTdc$}MX6kM09{BkLLITS%Ig>%6~OlWYdI@N@*_}p{t1JT0#p{#moKgWW|R)jC4CJ% zMj*O3c?9tm#sEDL^2?zX`~`Rm`xV>HZw`6s1JbKE>(Zfg%W6j?DQl~VA(&-wRf;O|JZj6fa6#3hdjvo((qWHoX&Ku`ES zr`Va8m<0H2Xw2Ehdhde;f@bShr^1Q>ndl=C^iZI{u5!M4Y@FBA*QZ^)1> zxpQX>5DR$)1xgSR3)J^BQi_k0laqS@9X{CeG?aWbN~<>$OCCUXthl`vRzBqvFutUn za#VkrJ9`EHI?b~BaVvvD+TBII`qNX^)RcLJX2Fcs@#9ZG7}0|W5iv0_uV2(t9AH$h zfyLQ$$GRS}-c>L976BVywIP~Ex-wmW_=QBD`s1IJRlu|O(P}~p@%Y#sLAq-egIi73+e09( zPZ#@jN6zv|K={b*&GZR-H2)hn_t_$|8nij&0S|>;8*9yY`)$UEtKEMi^S^3V`S)Y# z?=`~TkI8_y`(8U=O}p#v-AxEHhvLH=-%x6$qkn^Vk3+qe&xG&6se&zkEppDkTU^bm zwk&+Sw6x@Y)WewLCGqj&$8OM_=eXl_?)?1x_tLlO0$i6M$x;(hGF4g8k01fg!P3ac zNOmx}iAJ_}Z~%aYM9i3}=r>*VO4V@ob@MrxYEtM}3P(H_fYE=$6`)hZ>wf}^hnGt1 zQzMZ`$Uy^nO-tGzV)IcdUvqqU)XKV`@!Av6j@*GK{{LkyuMyXA0xd0rWUS4{%r{r! zjg%|_iLat}=vQ_}r70AP$koAJ)&Rix?TZV$&}Sh*vIdeN(J%Aega5|%sLuIj3Uqsx zdjeZ-u^Dx@(>Jh}n}OrK+*2a84ekdkw*|Gf@*e~;ICr@9cdiYUfO~mhnfV8&7f=DR zad_sYt`#!VX)&)=2h`->K5JGH#{p@yrt9?c8{io`>aCItl}l{NGV!~dBAT$)08v_W zWPlX@O-Memvcg*CP+{|yp)GNz)x>e7jJ%$2bO|Mej(*v5KLUl|Y3PQqfVay3Ur@6C zvA%OOy85oUsi~(A#oo!wV;1N2H|Pj&V;;l#RWt#3r!Fd%_)kp*YV5kk#`(ni_n|Rq zYhwbb8|+DM^TWSvyOOO4#4ou=tLDISiv8+qThv;wfg$?XySCt8P2dFSuD{hO5y2OJ z=wH(%Pf;>LvENhs(_~XCBZD~d-y}<@%O|7&)kM$#Yanzxzofmi zgu%xG)kI?Y)9_=e9nk0jmA<)~JSTbh*t_|^*Utc0luGa3q8=)h3cTcR0!Gdt5O*py zIlc$66(E#)EsRkN5Agm3i}IWNeYTE<0uBCx$As@*N`~o?KUXMsf_|LeTcP~DV8FjV z&M%ti&)&XK`w(UK3*6NKss$_nsCXa(+LNctK7h&NX$e(LP=GQyaw>K9?tFc*Rvueh zvH(!=q+YrT&hH#x6T$2~2hsh$dszjRoEE%z62%%aDm7Q!>(}xfeI3mGfH=+tK_NeW zm)LX=hZz_Pq`I-7O36L^<<+Txn`b^D)Nm)$AokC7!<>#^IZ>GYoQE1g$CB8rQ6bkhMCpBmW}zxd7% zn0!BRf8+0E^8DYmBK=;^KVgEgFCm7GZIRZ>HO@PRSG51o$_RwMJ;=}0Lvj7$Nqs@e}cJp*9==kySsqpcztB5jC@Wkp?m^sw_$|UvHaf0k- zKYzB}y?b{C)CQEDoqgrzL;S5L4avzMeeC!xgLr$ZzXYC|&(y#6Kw~>W9xw-6UXKeu z!VUe!6qA4jbd&p^oG`MD|187&$@ya9m5KeuOt388l${Ov$q#CZQ7fO4pyK8ks{H|i z()KH#)N#dptz++2rws6N0xyis-+DlTc7xWwXLe=%n)>>V>DMHa?r(3L>C4j6&$4f3 z#`23QDk{864L4{!0BcTJSLeqP$Lcq#1iyn}xv9-)U;sR?2lepe%ShSx1791b2Rr+ zgx!wv<3K5X`y%b8gU9m9ZJf7{!yydWApBriLC}>|^7?Z1crze7{x8hc|A=Y)y&hjP zZ^M)oIl!7)A};gzqyKK>5pDYC@nP5vNa)`Dn$#POuB7`6W*Nhc%;8$ct_ReN-1Nws zn4X%EgDsDipM%Be`q*J&b-%PpO1&$wFWHgASiUA1c~*DkK0m*wdl(MmL46A^D~KuR zhZKq9<%_ip{z(-&6J|33*G*lvm}fCXMJ^e-rhy(*a8g<3^X-JqQuGuh;O13Rp{Tf7n@^i*Q->4G?>> z<^MgOO%G{iadAbpEJXj}{{7w-($W?x+eXan{Pq}tU~1d*V0lcDTT_=7Xk;I;aznE~ zNMoeuPK@&+oaEpB@t1e;3=mkh!Mb{S&^Ily-%OS$xUmRq|56>!K_S}wa5|=su>f0J ztEBGkM_|=oNWW%Lc@a>=gKnSfU)NcuFMM_UpZ2HzoeoGwa^c*#jo{-vW54dvqrfj) zUc!jv0=FC3^MAvw%p&u^M)&fe^#8EQ*n8&{~b*u$68xIgP*=;eDw$U$Iz&W(9N>vlhq2dVZNuU#Kt&Ib5{rZuT zU;8-bHe3eWVw2i7Q#zny5>Tf=W8}m+y#yDJ-}*GpPeOLTj8Te1`z8Oa8V;z_o<7yY z$%1y%*x1+ryh~qePgrnJC1#_RV?;({EC>iJ~V< zPx4dHTy5416E!QB&AB?}Q2cW(gDSPZY@+^8d1S2*@+A)Bax<$IP!|eU2`b1_!g6af=4UW}(%LQ8 zydPp!CP6V3z`L88tQV25R6dfW9sdYKHy?Jl`Qnyslp_2MoTA zzrg4#u+1tf#)c~jA!TYcieiz8lKD}!X8uh?jL{A}Krq#=84wD2b&=@`82oCJ4~UEq z@a+!Ii0)m^J(;==KXdLwZ12Rfse={hy$+hvGXSb}nZcKJlAhr@FKECN-|LWJhhluA z=@2vl%(rn(U!ZSpiF^Qb1*ouiB$*1@w438VugLG$b^)c@|Bm*5e+GUvnLFcSqIb*4 zWI=t0;9LBJ-Jd@{(Y5lY*l(MITJi0*A>~H%sX*VWIuP>{KwKCTz~o>A7kCr literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_022_multi_route_none_dead_end_rooms2_1022.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_022_multi_route_none_dead_end_rooms2_1022.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc4b27f3eadadc5f1dc7d180443718204f9a141 GIT binary patch literal 13469 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 AbpQYW literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_024_winding_corridor_kd_dead_end_rooms2_1024.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_024_winding_corridor_kd_dead_end_rooms2_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a9eecd294a14a90215e3afa639e72cce19ac1a GIT binary patch literal 22276 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 S17AoBIdRO~q~edRKm0#(6wv4Z literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_025_multi_route_none_none_1025.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_025_multi_route_none_none_1025.png new file mode 100644 index 0000000000000000000000000000000000000000..274a91d3cde023c664ec34d4ba76e89c1e9884c6 GIT binary patch literal 12301 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_027_winding_corridor_none_none_1027.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_027_winding_corridor_none_none_1027.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa351bc4191832eb60ba454b8936c8ab42a9bc9 GIT binary patch literal 18421 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 iXMVB!x0!N{R4u}FW!6V!v6xq<)2Uh literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_028_sequential_chain_sk_dead_end_rooms2_1028.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_028_sequential_chain_sk_dead_end_rooms2_1028.png new file mode 100644 index 0000000000000000000000000000000000000000..df8f1ce4c45e4c9da30fd5ca83ab682f7a0cd6ee GIT binary patch literal 21152 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_030_winding_corridor_kd_wrong_keys1_1030.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_030_winding_corridor_kd_wrong_keys1_1030.png new file mode 100644 index 0000000000000000000000000000000000000000..32e4fa3e7fedc6c145332e4b847b1933a976a1fe GIT binary patch literal 24853 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_031_dense_maze_sk_none_1031.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_031_dense_maze_sk_none_1031.png new file mode 100644 index 0000000000000000000000000000000000000000..05cd3d883538d1fce7b14163232a515e726d743c GIT binary patch literal 18795 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_032_sequential_chain_kk_wrong_keys2_1032.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_032_sequential_chain_kk_wrong_keys2_1032.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1ed04db22bdbfe1113a450283cbddd7d447b20 GIT binary patch literal 27171 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_033_multi_route_none_wrong_keys2_1033.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_033_multi_route_none_wrong_keys2_1033.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ec257e7b4cb82f10af0b0a88482013357a846e GIT binary patch literal 14015 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 Le_wLu+K>MSPwCUh literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_036_sequential_chain_kk_wrong_keys1_1036.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_036_sequential_chain_kk_wrong_keys1_1036.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2cdba99c2f7dc79c91b1029139edeba4f74372 GIT binary patch literal 27003 zcmeFZ2UL^mnl>D)8x`4ZMLO)g*@}vQfb{0xD5wYsNH0MUL0Y7Q5=yXvO0&?ErXn3e zuK|M6lok;}Xdy}rB|t)eP(sT8#B;tgGiSatbN)H!U$g#M!&)pCG0FSB&vQR_xvuNJ zA6+#y64)oU4+4P*T)KGP0s`472Z8KH|F8$VqW)Fk82Cpk=z?vKCG2KU$n^ksh{^S! z+di-$pIfd!2fGIZ-h%n5C@7s#&^Z0GXHd}XKrKZ@-@m*=0T$q)_|5@70KSF)_C>ou z2t@cN-Y=g=&S!8f&)G}of4>%*xkT98;OL&Ezf6=@ng1mjVzC3kf8n>b-A4}f+W&|b zTXes0=z@6~p|iCFRsOA+LL^eUJ?;JV%ANcMufv)~ix#tn6di}wLJS~zjLxI1J2Y3;=d1Bu&he3i4=;dPbp ziP);=_Fm{-1@x6*%Q`WS?64W;Qk`86d(nd=01GuZaPT0C*abr`)oqT{w^|XVwx>1{ znb{4r*6nF{c{qWIOp8A2F_787_&;+l1~h&Dl&#+`0)2@qFCx zb(I?waW;EEs?|FG_Y2BNyik!E-?b3tZ89V4re~cFp^!>XPLts zK2@m0`YKrd-h}_8yRJ7LRW`CcZ-&%L)R_KZVwaD>S}CM0_zR3P11ru>I^>o`TdS*Y zk&lUqnSNq$uxQ7nGV2l!=D@pCEo$zO`kU_rrT6WXry~;KzC!(w$8_nMdNZ{5!Aq(l9*!MtGBkNJL5=)l0wh3X4El{8UtrhNL2HP z-u7a(IZdF#_fz$biS&SPE27v?!^OG@Kit51(O;F299HN+VD{l0);HM_nJ0qR65~@P zU$hJAH;av!$CxKe-o-c1s8$Bef9`LcDyyHem$Z^M^64EMQch&!%A??pAq03v)(@@6 zopTuR^{Vw_}ASJa6?*Gv%F?0A7qkByV&>z#wZ-`L;?$o zfDbnedY;!#ks-Usu2r-jEUCMvT=1$-_Jq;2v00br#6S!(wn{)U^vfMwfcxHcJ1oMQ zwO)@Qd{ee@^uJImsRK?7%DLdQdieUHm-gv}rqu!MjF&D@ic_{6L(zz;zw$Kc+N$Wy zzI1c8Gnp}6c{GgfH)EtnX&QEWnnp##W0^7ekAp$%dIR;hA<+C4f6);=OqUBw56 zm}Etyoo-aG!&H@Cq0d|vEy4p1owDSv>T^}{8EM4IKKGM;jpWq5x=5_nHfH(F?sFb3BwV*0T9);4Rc zK;H?&@>FR2_N>b}e5sb>(bUu=R(-SIo=ZziOzhewayfhDZN`;XREXfrilM1Z-i(G} zFW__*a^x`Wd1=l~gH=XSVc!fftA5~o4=!Q3EG(Y8DBQaIfZ_q1VNO5CPo})~`b6*2 z1I38zZl0c=)k{bhrwsUj=Iq&g)2yaJV&rUAh+j}hNI4f{K@&(|aT{l|Cq`iyc5%16 zq_|(8yDslA7)JJ6q&>}%>s_iDGQ|;nzH!$l1F>CJHcqOPDtGireapIBld_G&Ih*H6 zN=adT%q7H)35hW^y^Tg}g7K1Cy?ojR{sWOAR33UE7lT3O&Kiwd*2M~x*;VIP-v0WY z(pc5P28-?$UoTLfySJ6IGb?Q7#R76291wAa$DX}=@mv%wv|GDtIJGJ(iB)z`Z}SV- zyAeAND{Kn3ctxvi-2l7KN2bRds~GWhKd$1jVC0;EKi(dyE#ffi98xNJHS! z#g8x|`F)ZqA4l)WiWIkfmH3lnWO{!zI`V$5!YQ8Q(xeRE1A)9-NKGnO`;Vi%;t4Zwd@jH>yXu}q_9s+*oU>OpwrZn ztN+kt4kn=xOFedPUNW*bnhVDDdWgsy6Q^6;jie)kaNbskq00o>%kz@qAg0;1Q0EJB zoEfGGBQo@JWOnGJe|P7b3vtC8=3y}Dz&<6V7nc=n%@Ld)-?L=4HDcs(Eaj=BIcLUw z`&7;`nU>pm)`Dk0msld$Jw&RT^tLT-rwyXFCp>S>H0sMv=|V37AGhP$@_Zzcfi&|f z{2RT2lsGZ%o((*rO>gsR7H#qyHaYw5iV8N88fX;R67Y@HBUc{rDS)>XYLq)7wCt4U zrdmZzZd%Ktdxj$i${|CGb2QgJ8K{Sy-)h?_=u_(4!u-8AYF3+Q$5rV~QzT9Y`+5fI z$_bM7IVAmJ_izN_c#Vgh8IFZWT%HcLrT29ul zgj!0CR-4z=ey%?AxqZ3K7gmL^Hr4ogpE7$;pS9f2nOp@sL74?%>!As!Z?E3+odm>> z>WloGIU{{7iZX9w7%JGP^=fgm(D#Q&HWE{?=>p;08Eg)*;cJX|UB!;Jk#paV!esK( zEm`-U77b34dU~HO2R#0yyeHDq8H9K14YKD(%mVMk*%Q*dB_)DB{Vr&aiXT+;IQa4h z@?7|fCl1LUn+0*}Ag?H;_==inK6aS7taJ6nhRWyXR}rtq%OsvEqA(n0arezPJXe+= z4r{JNum+Q&f}Xd?W>_Lj4YkLekGrOYox7l!w`ki394RGiY`KtW+wx_%qAl_*(!jm7 z{X>y&_c$unVx`-G$Qrg^Y0|*cb{Ip&S7D>%?PtJl{+a?AC=!> z`qa_u0$=#Wq1(%>)pwl}-=TeWfrKA6sVMlnjDRvTnv_S2+@ z8$t?(Xh|fCj>D#0KkNR%P${5k@XZzLspNiL{Np%O>-jSxq3D^H-o??4UlT+5Pvpgx_GynVhsgcz|0aHIJb9>9t>lGR>JrLvcT3;G z=(0!eLFPr8=?gQ9KW>4iMsw?qZ6@5uC?iW9k3|`$RObloKYIEhh;Uq=`97z^*WadQ zAfyvS!lD9eiB~nlp)U-s4GdVL2o?iRY-XOOY{`jd@4ns6NXaf4Ox|*LN7?hAb3f?x zV((5L_F8G1+Bc9OgyHU8jX9s3i*pa~6Fq93cr{J(PQWhAffpwXV}eq?in!19q)r-Y z@21@ty{%zCrZo1f4n{rl@%ih_sm5I?7DLKUTi5JUvQ`3W8h1TZZj9(SpZz{Gu;4-V z#k|?_T`5(T&d1-Uebtr`-Y21H_q%A9Rn7L1f&NqNQ~c2J7r10 ziqiwio+|(LrtjoQVLLgz_DNw|IqjY92Us8ACwnS#T))MexkV;CmBD08gpExG${5wD zhb$$UWEI_dyX3H7dP$U`60oavu_7&N#bQXn=48zE7kjM-Y^^w5evH?*2}aneCk=mr&cWEm2WzsA-BrGJms-wg{I^ z{8;cbHMpdoSK?CRhlN%GC1Sn zbE+a)s-P+|rSVE`*87kuAC0%ZmcqlQSN#l+kEAu;=ywba=-3(i)VHCP$fkzmDnMsG zC#>B}$Q2ZzH2UP9FbN#vqr&Eax(RDOabrJ^J9DZf72ICZSHn zIV%#$_eM?D=PH(m-s%hUH2K4oM(=GJ^RLYRE@nL8V1-(!_^PVZRqS{n z^1PiI;R^1H^x<=Xa(0*2e{xPY65WsH}id9iuBQhzG$WkmOE z`&ep^<_ZW(G&)-}T5Ny#RQS=l?x`|=>*g$yGiyG}j99)W?WoV4=LgZk5S!5FKaso= z!S8uN^GBtCy1GN;+FlQ9rIkRzYpC1Mmmjo}X)w6(i;dnVl zh;~^A`&`ympKO#ju(~YY^V>vP>sp>t_Bs*CW$0>?-|lf+aysco?R{`Iju-E>&|?n+ zT<@=-lQN6pZ&JQSkl#OdAHAY^;r5n8+V<1&v}Fs9l)G|-W-T>TRI}HS|E)(Be1!Sr z8Y1+vClkbZM}~z@S`QX6uMuGDI953!~h zYUn5K=SFtvjKL-ZFXu{#obWxxw+c$qkId`YWS4V|(Tf)aeYYlbmv`~GuY_;)otUuL zx*}%oT(H)bij8}kJsNO|@zk<1NrWGEVJq|0FQ}U86FGM7KM+1R=2$EQyt8!?R~i#W z@O5=RlFi`jSdEVXV^7m)cSB_)-hWKz#J$*3EwlFf-& zx#zt4e!t@6oNB&Vj&qA&n2z^IX%{ca?RRcoZeAVm9`>qDNR@81g*G-!*tD*s^gBmX zI>rZZ*&9%<3Mgw6vVzBpl-#=F6UI5i1$wnbai35u0U*dg+sbQ-#R{BWh zd;x6m!Y`O@0?jW-30;*KAeUskja_FcIfNeVOnaEO7#U=s{|{0MHfjr%jF zkX&|xTcTz@A}Y-(_?Bbvn7e~xdpU^H3ky(+l8(-#1+Wx9DN0?@cqB+t$2>Demtl29 znC_kWIXzfxwk~?SwP&_JhKn4(RiFyWeYGv^E66GtIyq{6y6m5qxQ9ONZwj$vbRCKSAy zYc@$#D&PqxC(J}GED@NV7vFlGa!j%w6p4~U6l6tDl-mqEw63dPc}Xq|)tqmeiTTmb zq-Qctn)PKbt~RNs&K#w?)~4d*ds)=W&h-4%5?rxwvtvYH6*k^_Y9Vj7=0N*t+EzgE z^opou-P6x#t$-a#dr#5kl_N@gHpne@h?UDQQ&9^$R9OJn0W0{)92G&G!S^ve>nj;V zRzB15lrEaAf{MsbVP^YxiCUF^`M|J=_BAlNbox2r2bYPUArtkooH=`it1rmI-H^7C z-?0EQee$eg2L$r=w^D#3o-9M(KMQfFJ#4D+`elXQQ6d0d@X#Xx;Wnmc%>CTVO)DMz zme#JyW{H?+!j;=bF5B`Qzw+WLO+sqP90m8E@U2g{^&;2_65xGx;FRhJ(>Ju`NwBE5 zIA2}xz#f3czP&N<*H`2RQ0=+P@4?FzOIb~u({YN4?!BoAQ17~(NueDwuD5SrB@Fkk zr)F*xH;qlLtm;{*PdG%a&h*EDKs00X$@3j3oW$IP{2ZL`b;b#oI2@jcZ&KaRv#g)d z&lxr)jBgQchFgNqaM+hhS0ZRY(Oa4))`R`jnisxBS5C}U1#Pq;{ z1M#r9I)4U2_wq-a31R$et~A@zF_MAfd9YOcL~2klN;_2rpnw|ewINxwrh`C^Kjmh4 zFLwJHVZ6w?r1S3X{V$zc(J8{x5)$#`-n9Cv$4jPWW=Ty&4im|*szT}0>n&f@Jo{g& z>dkhwc{m0RgUfte&-Yt83!7?AO@*B-J?&7(gQ`a@cGju8cUSJxfm_xG&n+#LQ9Y<< zRAv;@iK+NWYe)3AaoaFrk8M*>(Z+(vX1sSIxQ6!F)NonWQF;5CDCFCv>$^v_l3%S9 zNpmJ{sJoS{#E_xJ+NjcV3Y^~#9wa8haY zz{|xMAJvGiqKqYZeVQfQyTHEeD5%mr5nEJi=ZM?4&!j3sr+QA+Y3u6hQu6(LZGxK= zw>pn4A;0>b3keD71L$Z~MkNj)EO7$^1LjVG63&Ld>CqS-Pxr}|{aY;rJ z{vFJTK_h8NQ1g@C)`~;A0G#pUgNZufNDgPMfE1Xs?Ff)LNx`jEfN+)j0bHfN7-{xG z`Is|E$-0XQvc;03)^d420%d!mAN^7a`R(?*-NGHb{H1#X!({`%h2t(M7sw=PHOL** zuaG;a{Yp-%7HYG2rdozl`|#cChd6IBe@1`1|3@nW|9PB&{~#@9I>v!Hof$Y#FWq3BE3W?nVV>e3#8ss!n*-?4DXD7gFM{snq`H{2*>V@_A* zSjCl`@k8jvQPCuAAA(UBzoxL0=8+tyVQC`kW(QunpzGa(a=GOa7`=ILV_ zrb%0?U9*eM+SvK{kk*@CELNaO$@Lo>Q{k}8(CJ6?CVYzm$S}Lest}hqzz%%Z=}AZ( zUgmtQ<)o}m-ciif=f2G$H}AtM_DK=vZCG=CqI4?WJ=S@GGph>Q8HV3ijgOIWMJJ=E#E6q z-sL7kh>+ zH6D{{_3((;RLnP_z|EYQ@dzF6$yzUw(Gn<|0?u_tO&z3d2Heu&MNoj0pe{mJK8n&_ z9#zRV;aHLNSJEuqsELw1UMm!^9O`5Je9`7$8n-A7rPblx1)a%}Q{q`F z2Yqkpf|4*v^KFS%g1=^-66A&q??WmB8o5o1HU&8<-VrfK_|o$I^eQ~m5FdZf!5I%s z6UQ#lXWzm*^ZhJ&eYeZq5${pSnG1e@vUl9-(AtxycN4apYFu5pC@LfUt(CUM+64ZmK#LuBjKg?h(8WY za`N&=R^R3}se36xZagK`oP|uh0-$7Jlm22foo01X?B2!&;)>t}uJphut|vk_b_s)u z#6yvhli{=$9);!aa}09U47;ywmn}Nj7cTJp(E+(Za|d;^yxdw6;0Hg6ZtM6EzH#Fe zTSGI&_Cm@ITSJbwrPw&zWjT2lNNTy36OPaP`b5%c$c@q*($&|l_>h{FGxWLXARBWI zKIWd5V7UN!1qaOfE*{%lyzLaS_%JbGp2`2Io+YDndn0U66YhLPe>t;oDcE&r;iYy# zU~cfvb3877m%vUr%7TKM@-H#?DG~3ejc2xzeFF3r4sKkJcKUtf>V z`DvHE`9#=tc=2>=#+10h2K!f6&kF}8gG~=iM)?Kx>-?tWA@O;w3C1yyp*jsdM6^gH zA%=79{p29=!aR$OU$bxwuv)mD=howlV}I&ND8Hv%6L1Mm+(Kg2-F~|w8Svp3D;K`# z)4)ITuZ(u<)irU;p$BVpV0lWnjo?Jp)lUf=jQ7l4N>l^4E+5a%$`SAxc7}ZTgJ;}4 zhvf!J)JG05SVtIFd-QYD9va8_teAn4J8|Oz{$Ntl+)JTag0pC?6ZB}iw_p6%lr**4 zsR^oBB8?T{WE;bEW#HZ|YFc zO51Z}C0|UE(SeQ5mkXxy`h&v=?3Od~zyZ{PmF8kaySWibT)atHc{%2g2Qu90p%!EKr%=ex zytUi01T-Y{$yvR61WQ=j?r?j1S-+EL^Y(Tnvq!k2*f=Rc72m8DV*?#qYtmbL(Aq#= z|4!!9?+Q1+$_wUeJO3j%ETcyH%)xZcz?&?@$Ey)c@iKwE;)=phRS{|J5Q6&xR)Z9u zt_7#uQ0Iq8oww!lG@$huf$&A4Z|k+Fp`cUDqId`M7-SYR$=lWQ#57O%ka_z(|MPJv z$mo&lyI+|E+I(lnY-*5XVrgPH73Qm9TitV}W=OC3cvJ}K_F~flivGwf!qsA&58?o} z&GVk}N6u;vH-cy6{+*0=`kVT)$J;iw>J^|^3Ejq^63R2xe{^zkq65bGwN|Y%a_ zm2t?Y)8IA}4r+dTvI#<=Bg4}X!MLi!d7DDdC6=O3kj^&-k6mTWXV`S6Vf23l2$a>; zuueH=rPt;B5Yq49eye#QJqoaE9Z}m$HckZ27R*i(#%iN9z{r~i_lt{pb;!1U7Vd8K za%ZityiQm3wvHf)6CWNn)A4tN?u8tGT(RQ}|3RJQwuZ&3-f6&Im&{ZrJ16CGeJ(_> zCR-b}Tfe4a*BR3Ki%GH=KPy(hEWT@;^RPg7>DKp%0`kr7r4UH;qvIfEJOe78?ry#H z%FQh-QVJxs^lfc1I#p$)>&||g4snh@oW-nqcPi9p-mVqZdaF=Nbw$R^_K+->@X{;Y zZr((5p|pB>um0xmeHrSo_efa~=Lw`HHAvSYSe*#Rs4cQTwQ;sf7Kn)&0A4md$(1Vf ztEE0P(tD%AOTrG0mCFUE;|?+Gja08k;l>|&`-v6*@zEWBpz|?~i_8kAHhRFDzVRSG zoahIT%m94kw=*EK3sQ{p#Hpgq^MtP|YhnwzXbXrA}xy3Iic@ zTZ*$B+YQ{9IpLtz+|PWwqkX~3KhbF5iLr1?V7WLq)b~Qh2X=-3bIY)z+(FN?FP%a^ zK0Bs#=FFK^`SC8?0^`In8+Euhetl$c(43%bOVF2?b*gtAo=qgetgn>MYDOuq45sG= zJM4#hxB9iWx3`LSeF*XTUNiqE#kNCzeO0wnYr3+?!`C2R7h^Qqw;W|K=ddO*Ad#P= z(UL%wVgjUCO};3Jc=P&7d_VZ&i40IfqerJ+s(@nL^Mdj9ya-Ww$A*f$JwC9biq4L^ zzt`fvuxbx%;@0Y{(H>p_GKn_SZyOw{4(WSoA9p%c!HJ@R;@2a+{9d-yf#)l@5O?$f z3{5OA zufeAp&%rkUV)8|7>9{EXtX2(_R{*j7&x_=Ljqm>NyT3!t|1V*Ne{=;U0X8(a_})16 z^dnHj(0vEhP|oE>CmVU5tgaqN)F`R%D4eevv?ifky%1JZwJSmwOMkwiCn+Vh?kp*j z?V@cHZVa%_0*zx8^6gQ~5GFuv|SR^`qUkEM!LwAeL=`U@@dFwfeS z{%l=sAcv6_Ew$DDF_0$4h8US)r& zaA0}VkA9Gf$nV-(q+)|c6emNRG@wn52Ma19Ar?9M0k+RH zIFK)T*L@+E_otnj&JO6T_GxfgtE89Ss7Hk+2`^%$^eI@*a^LEkLCkS2Ev@P3od+L+ zQgxmVZ~#4!>YPLV0vR>smuqXFfN%thTyOxqibn?z(@4mkaHAxT29DH>!Y}LQ2L&72 z7#ST<6{`#m)nJAYlv1ZOk05O)q-}t>8@`Q4vhkrS&vPUSvJqZ7vzpiqP=0?rY^hh_(| z#(UG#RyPv&=LB4f;C#4O+*Z|_%sg7=O-)AVxNT&S7IURUF<~oD>9gBQLfRuuBp?fm z&rQMFk%p&z4wJ)k;6{9Td?%mL;9V|%eR|vmphTt%(Q-;3U1S@?5;T} zUlvZAw@F!91|+aQ5>3QyPnEc~Y|y zj1QZe*SEVfnVX4c2u03uDhR=cSV@1EMT>H)meWZ{7K!xCSV0tz=Ys?svX0Jo3>v&Z z2lT2c6(r#r5d(dj9}f#A6)e>a-M3yflddyntv!nE&b^6!2q3=Pml2p7AD{6@nm}Au zevoTRPZ|0#&2oRaZRM|tQ@4U6fRx;-MSAJ#Oe<^FP4JOSNTv`EkCF(P^!INUP_H4^ z@R!|E5p-~hLYu=q6P*A zzP>vlXXwBTuk@T}0+OnGk&4=U|8#F>>G-!yzQ|bn5C&5Pjh?o_Fs&k3BqZNXgwfwTM6WoCUB?v%)KzRqtSwXM=qU!O0f@0=Yjq)Qo8ZpmgL_UE zT(c=eQc&8~1t$i+2(1Rk$u26(j-Z^xVWI8f$I+UQHVxi81HL{Gwr($@WJ%J$8mz|w zA9N%|ZfUb%_x1%~$1I-EqgN3V!2^ck4+E0oS0D>7DBkwa_et{?=P;Ic@9iQ%H~U86 zIW6{52iM~XA>)NvfKoKG<&&~#Ozq)u;uLzxdgN$>mCw}gtE53}L_i+_&49Oh<-iv< z0n~hC1IQ3GY7Rouecta|e$vV!E7}D9(bFlCl&<3a{*)Sn-|SJAK67j?T`jV&SE_pT zU?s8dRwa-sZ}LvdFH1WiY&1~>!#r#$%N^5G_v-JJjwiz;neRv)aLXm{-n;Y3~uXI5u8aiQbKkJQJ)n{UP1|y|LR8b^wNOl39`v5fSM=x&!hY6pm`% zl;I*=ByoB9zD+UhJ-5uS%yt{Ol&R)B9aF{!S-LJFQeh|KG2DbkItliMj)h?fr0d&D zmbz23U)Z_cv69{HEgLMTb{0SIN>RK=jFkwu2uG6HC9VyFB57Vr$l<%8okWiNq9*q% z4kL*0fh{sB&5SmhBOUB%ZOgYETU>F5OM4)7&b&|Wl?ruHed~q$bkz~#Wzvg#spJtX zfm{JM-(y8*2xcG331y?FW1*Xfprtdi!5VB``Lb<_P)RPV;SjIm1Eg{_lhzQI0N~bd z!b3v3ug6MS>pBO}dQwZ^ZMlMFrdBL{DA)NkhQgeKP6(%QS@o6Evic9lWoC>v+Bdur z1Y@cLz7=?~x%9TffID9Tz`x);Pu5RGMs7sP+jx(dF3jXl2CtThvynsryw!$NU1G| zhsSH!>*{Ui>l@}isJ=^B?be=7BW{+bH+Psy7BYieqwSu@zfQNJVhUF|`U4gXUzrP1Z?{}bi7I_JC@Mfe5Y3?7Bp<7n| z+f~GFT2!R}B(qMvyDi1|r9F`s*3`?K9kO;W0$lx;F>swLw|9rT#3lc{42TKcDIn_Y zK&MUpm_&3pUDT?b3Sywpn~y1K(_tHvBDKdyR<~6n=~HsBQYp-W6RmiM5afHOh)-om zGf5Jc`6PVL9+Gbw6#w~l1^ucsSKb&ECv?vMr;{>drXOiBu@e%n2>hLEt-bsJfNCh5 zz4Zi1s9n^=TkG;Z%dL6IjgI7#mc_wvINZc591=|jppILW%e%W?Cv53;z2!-(oCa#p zyQOskktm96Sz}V@JZ)&loxM^TCzl|QQo9^2()3xQ1WnZC?iUi=SE0MQ@g1crx2SDh%{mwtK+Y>?woi?2>)Fps69fUt8)@musSL? z2Qo#4CnJ$MWZ|@q0u<($wcx=7V|SZ_2fJiZ4pL^@ImVFF7H8zbLNyZgIhzgBkL8M|By5WIM*HT({jr1O3OZL3cr7Fp#^$G3y(1tLJ4I0Q z^{>_Q;&v?dh0xx`n!riT7X4rpUTvQ^8F3Piay*QminKZ12y=Igz&>u+oDy2d0WpY8 z;x)DKc&9)1L41rroSsaE1n>}4U1g@0{WAAo8?a_D(K=#jD7(z$Kd_GGt?f(XQV`JRFgck zRVRu$l+(rQZ+dU6nB*PnJxJ8Q`XIS5zo%R!a(qpLHE7gv$fy*Z5?uwl)0hjO z8EtZ}XhLcXp#3@vv62{KX}U8ukoC6NEH*Z_#iskizpikvmEc_8-Q8`XNF?;c2?C>9 zA@@4ibp{s{6!6&VvIz(NQ{=dl_wI;1290FqIVCu6^YSFlSU+|*8u5}o%i~pW-yyQvRca#fM_b}M{g|30ti-E&s znml3(M1tdKY92gEz$q-mA9P|00P^9_s-}Ol&b2`lSC1#8IT)h&%95Ew51-lj^6tqhF8N}w9=vsxz4=qPGU}GC~7N;vAvIfgWI4S zMO8pY*Aw_o$l>lk37T}}+KxMMYK*$qP$>VBPsIa>2;^*}VI=iMptPh)jFI%OBk?!` z1OE?O!toPKNc1|mh{>tn-4Pp`4^j+0Y=*UrXrJVP0fw@i_d`aRqTe-Je^Q41Hy{Ua zv*4YO$5vU4*wg1juzX5Ox3KY4LU7V+H0`mfzNX@yRA)5`7DbhKoXD)9(0f|niBQEv zEMMCIwC5baackWi{K5ydT?E6ALKUfV3{dO~_Tsr9DmB_`zBWySK ztt3gAM5N`~QmY12fwOckD#|5P-&bC1_Re7~LHf8sm~fF1H2Z@-e;6XQ`%A+YcamvH5?lMltI zwnE&%e#z&ABQDy2JDta^Yo7s?ry85Z*;`wyThY?Ag~BOmoYfiYht$b{4V(pv5Qi#-c&XSCjwSJ!p+ z;-ae5f12TR3WkaS#F! z7=W#$h5{zE;S*|!jAknZ z%`R20d+5hg!)c<7d!=rnCxBfScdHZxb;lPuNX0*%XABhL(XJyRX%kaL8BKigvcSBp zb1S{vOF0~M-q)YYNU#1E>EeHrfkro53kr0OczOG2Ln=UQ_xb$GEcBHYr0uQJfdjlo zZ0x>@r#!NwCq=Hlk;o5@6{tN8!JhLnqv9QqD_ZSs|3UNie_ zeQCJNX~Mz7!=qLu`Q5n#7i?_sg;*S=wh(WGL=l)wCJ+|A`;#N&DKf2Vj#&4kZT?wU zbQ6&7R&AE*@ah)wOiQuf($v&VY_{a;EH>!?FMKtIBt)I5D)6ACtJWSB1pv)(>&3$n zt*XFRSN|F747e4@>tKHya6k)q*HFm+g7W`A;Q{^wP~HdD7*<~FfUf@=z-M>mz)GZ+ zj?SVsJpNDCVEN~~KtXblu=ebb(qCJy`ox5FTX^kO6UfOsYiM-Y;H+dCRz~*fmZeKSR7@a!p+}yA) z6v*M~>L;6RGRh}FGV8`+ZIM{QV|DUQO*Q*Y*-`3Tm(KOIc(2`is;e8`U0PK8!9soe zSGU>KGEK@z=AXHw=f)X4_w-we+ozKN4Bh!Ra)Q6tZw>2?2>|j`89crE#dB zK>cld{DHkPY9GKqlms-?%g2lfX|(48td zTYdc8NQg)lZ!Pc{yh5N`zJBs2po2hjKFYZz=|{Q+VSQSK-+EK}(zoxYbtxnvFO@dT z)cdbC(jF1HoUYK3>TD~4{o6nZa??|!?YG+$S4f>0Zz2I{lay3`wqQ4!TOZtN0m@cjl-+PlCU@dS*=bh2=ynVIW1Z_4FFvL(s zaW`6Gdph(R8Y5mkBdz*NInFLeEFAMi(*KJ?t5~fjy7RlhNFLa>`{5M?B;M4P@8=ff z*l)aP42;d|NM_gQEEy^7#JF{s)1(rPC}~r6r#3gxyTnPi%);#_flL7W2c#6FDNn}D zkj$Y_AO~pBD_q>l#CR?+uI4XR*+?wgKogm!;a#eD$HP2W9CXGP`j!h;=mLq;MQ?IX zivQvqp zmUC!T$|H95L7n3xrFMsToh@#mp`if6tT5r-%{*^v09=2AuJ~wduhe1DB0O>7h3IT%g-u^!LgZ)8FhSb9-|1waHBY9=Q^SD; z;x8|;Ftu}3=+Ib*&h3t5>uTdjL)a-54!sE7{d-_Rm!;I;WCy#kyS1T-3kH>_4#@9v zIlsX)f;?&Cv5(s?wk0)xDL54cplj<5^{F9g?g}QP3+87>7)IP2(64I3P>M@jam7}= z_9cH`SqK6w-prdgg<`5lU-X0J4t1AEAWpmWuo@cP=byk426|zBj zMoB^@e)ZV7^XCNR%GS9;lSe3KjlZ1-|0!{;RU|AS#|a5rY-~^7oLimg-Y=LnvDT#R zy)ZsXBoYI(`9ja=0@EAB<825b!Szw{$!`WlqCRouG4+ai^j-(jBi+DhT+))E5P?po4Q;;jW za!`=BN^r_B5Q`y~m_L7doR|oQ25v7Y%O9L@BQUNdj)laIHuhCW?@f4phtfLY6t{H2 zW_B~jRLsSa_uZplt_Xg2YS-;Gg8ynm>8f2URftRPxkp-VxoO3Xnvn@f6XMhp?62q-9B zZV!kdQsIl0Msf1HUCsi#E7JMOZ&paPaYmZ25yFg(7n(f!n=JQ9YlQR|axvV21=ECx zS;`DnD|q7pkxbSAco)``@(2?(jZ!)@{BVQ4Sm(LUj0s_{Yb#CGpW=n& z&FA`C&+{ktw#{gYi$LbTvyU@(SU|XxgjU!z?Teh;4@d&dG=jr})LH$2V0dJTIF*`I zt=J-q!k`-;G1?7wf>=3VCta+iO7#|D#$v@3!9`=Sd_+$4&{>h#C5-+ zh3zeqlH!TbO%gIk)SDY>un44LbbxjSIF9hQ%^d)zE)Vq5W8!(>bBr}XTs>zy8wigi zs#O!Mi7V*Mc4UsZF6aA{4i%39An9}Yz77_R7pK7>7AFERd@N}sC(^qr`72aCioP@` zA{Gzi6F^UsN0%eN6mXOAg+L}D$cYtD)bgl^)$mwdkEA;c)XGeYO z3FG5?qL)%CcAWEa7a8RxKN>UXZmymTwm-v&dzy-2s{4j51&n_a$1JBdtfoOr5EhrO zhIOfA52oVxfZKDCI|F>H2CaFu*!$&yawj2t#9{~K^z|~wd*s*2Qkio46=$fe%i&f@ zJR(hK^%`XS3h32ycwkq3vlCFs$TDrG+in`1&30@@3U@QpHjI=SvN)kd8A?2u$09-6o0-qJ; zHOWOotqy<9P_0;@Zng^!JeK3EZ*G#pa!wU+ixCz;J0-@;1-cm<5SQMD6Td+m$U;=! z+y%<}r#$gEY04N|?q?Ys9@?k7-l^ox?e3`2-AEdsGH>ElZWASOx68v7n6!rNH#8%+ z+pn11&lwg2oACGivNiMSJHDSghrEE@TgqQsGUZEm#RU#%%34nbyG^d-NS9{Q=1`qA zx(6T5uO3XKiUz)^Ry!uveotwVC>&W&JW`VCbZF58qu)=Rxe=5Oqq zka(aY9W9oOSbm4YebZmQBiI4v^N15SyVR#aYKimo?k*0Ie5E3ZEqL z275V4z=zF!eYGJO-xKRAZTjGN7CYn)KIBd6*eB1Eb)?AsY4lAs!X!gYo;T5_SeX15 z5yBAP=q_MkzNYg^VI4A3<^<=>_rgG%0P%cQeFtE%|4b3j-`1Ld)*^KpZf4=Tl5aFX z2HFVYklSM}Yn{SI?#d|Hc`hoWY_THub%Jpj5u-vF)m$GmQvkk6{ zz+)5KJx=^Jo8X9MFc@2=zIU?U5Xo;uA6?!B?D1_rOC z>m#FXRQx+&z-9h(-ui`?U;e*@2L9U+`o9;u_@8it|A}M$ZU=uuB&{)G*UBTjcsT5z z%<9iN(~o&FO&QM0zk;c3ZeV_6S*a^}XlMwil5d7j>_X<^Kb?K7IGNcBj$?YEaN{eQi;)I)CKX zd!X-lT=>?XT{CE*|E@Mw@clki;#%VG1warj_%~$H!=H=d_@Y0ef1ak`N@Q;kO1Ag# z#wV`LT9+pdynZwmnXVU!c)8zghbE|QDuhnGzCP3U;&2reP>bndbM#!jjhWtoI79AB z{xAYB+XDkDkKZ7)jePt+)GMSSMSHCs^Jw7YP?v9H!q>01Xauv%>(y3Xad+cq!F>h~5j@i$I}xxPD4sW6We{-5;PzKBFL|8FD$3UaIS6 z$mR-8YJ7dF-C-%Eq~g4huVD|usZ8QP1^`98{ZLFs4m>Tb)(-f7-kHrqNrD_X>uT$-H8ytPXW_Hu2)Iw!b9++8HM?a^^O?LrTu!^ePxot z!FAJo!)_yk;0&i7m#hZ<+hREAFLd-)F4qPm#k=NsjFvj+W=GpYF`FR|Hz&&h+8)Oc zi9}3B$K}DHB2g&xhad)xzdl5bzMYf$XZbBN;By;X`j)`5@Z?^=t&qcGyu^gHGxQG?p` zy%~uztO1R@5N~0L&zu{TmE1`yR0fpm`<`D;k!CnjnWG#tC5$W!4e z`M@B^nn0!w|4Cg6AlcDxdHki1LHR!>(3x zu#++)-~=J0$~p zy9lINW7FDnF{X1VoErIH?T{;S-JlOU1@V3Koq9k2C$8i#&BEVY8+OdgwpUU6LAosp zEJ4#kWm6d18A$o&l({xX+Q9O@{NF82|lvJsf^{NyUjWo?4P;IG#^6wWNf;F1^|tfA!FiPZ7K(+W;Y28^OH1%y6umXw znUD80%60KiaefOe?;(Ff5xD5AZEBl_eXA%rIn+0MTkigg})kD+we$@_ck8MkMj``+{3bMJfppj!ImN%DKXzwh{rUlV??Fx~MR zso#i+iS0Q1{i%y$VxOjqiEY{Z#b)puyBx;_@P~fr=}Vzjfu5lemxDdT%rA#t^$QI3 z^Km~E?hzc~6BwYOqOPW*t8~aaH1ukSzN)JK@2^k^4E9oe<`~uo?y~jj_x2%TViJ3x zpHI9nZ^3(cG@m{7t#xGX!uXa*kFdN|k>%X7WVB+M+P-IEo0^BJ6&lNLR3To}w_H>z zPjvj?HHx#V_~JllzjIjFj&R23+n$T_;eJUol$3epqe7g%<#h%`LQnW|xnkM+`H`yhhi5)Vx z{#5MeBga1x`+hH2g+~eJ#Khj7IxHsUQ}E|5yMG~0#HW~=nVE&1;324%D z(N)GQLn*6Pna4d6HmH;NkP4 zRRXLFCE}q7677pWt@ugw2%{mf?QFIVijEN65zS)%g^WfKvUyaP31XwK6ak!Dyr=v*TeK zU%IgG*mbPYG4jQ^!RKV6XCAVj#2YbOh~shm1*)r%<~p@ICGyn%*u%RFr|tK-cr;?yH<4Q_$S`y z{17?^@zFUQ}(#x5X8o{Ke-!c@%0huDH8Va(KCOo?${j*eXDAT zsyQ+T6LDZvB1*{d#MI6bSxY^t*f?<--8MYzprBn_mRNh!I z^Mjp^6H6J9Z*It0_tI5b7<&lvsEti7FYM!7SSS&nI=K@SiJLCpP~r`HVIrSxbJ>Mo zCt>SXThVmH${dM(OQ-c=bY+qXYjo~V-4aI$mbs)g-IwR6Y?;$MQ;=B39`h;AD^ow# z61ssG@kC{7x!%%SXpsUC^vTkJt<}x=CR|QlULHG}+*;Hu8o&rO0~#l91)1ZO=1t|I zu7u$$)?`v@oMM?Fm~y6Qfg<$BZJ1bdtl(PS>^=2x}lY(OoG$usmTU| zXU?2quB<}2Vy@c0){`_?>1ZdQ?9drg82swF2-}Y3MQ2<_M#fzIc=)J|ylL^;5W%=!TT`=cILbhzr{yr_vT z7+y7Y)(n@NoIEFd{?oQ{%(EFDj;)Iq30U&d_|u68Y=}{l+gx?EdzbWR)l0eNl}=4H z;UDgrCdc-k%%Jg4@Om_f`tuc)#&{)@c-iowAx;ljg`>6(WtovJu+?Y1$qO@~6iziJ8ZDDD&(^`O z_3{!PZIMc+nR5b#(}BKr&S5qyLrXVu*MMI>VxOvu$2XsjeKScA~5oWbXSq%#E{NP6EQY`!KNGYn&20l zzMF*0^DpgprXll7N@QeYDvUtlJD9j0(ay=kIR>_cG1xF6I|Ucgr&qjgtQ|i4I5WA^ zEh^5{l`?cN4%DH_=dFf=4> zb5w?Ru8>__k#klU{R72N%&<5(Q+jy}2Ba6q%7%u9`pYkFRnwk))_dv<4J@`j@?D{v z)`69tOjSIQ(@hLmPDz8O7=`;WdScRPSf!T29+CC!?tb;S858+t5^*$&o>xvhfqFlI zS&H}H+P_Vu(ao>5djWhXVPktrKdeh!@59eQMmwdLf2og)rz=hL96i^n?2FH6sbkIWu6?(^0GO^Cjec;9U(Q`u%14~^s zrLLlNGW?l!pmm006JAd-Khk|=b#MOSO@3>??A52Akl>ae$+K$DL{PCt7cQ(NSjM<3 z-Dzi|0}bEPWh2IdNSyAC0F@+=-fF6^M)6uGZJij`tv@MO#*VBamErYTj(573w!9ep zsy$`_D*kYgKRGbb8ZpI)3+fl&n5fz_=pCAYyYHBd-P7rD{>a;+3-({FyfN8XDa6Jo zi6(N34QaNIhJ4rr2nILGY`4haJa$Q&X*wtXr_&>Saikblk{IwKQIH zL3}U`q(ywYW}jlZM)g`=^Dx)c+{*{6mM(bR9f#`N8Mk-?xzJ$4H8^hSl99*IiH&h{ zdoV(;iDba#4VYMDm!y}qX-2>t$QTYQ)iDdf=k8vhwKXz^T+<3q_q2!Q=rf+Y&~9PT zBY6W-<3xlRXOK*ez=~A))9C^ekc4{kI82adE{BGNb)Gs_eDPSf@FyDgo3SvmGaG#C zmS)%FGG#u)zl>2BK9!(o%QNNajpiT`>)TG0@hg{X!r zq4vj2_rYe*T8=QD$pywxrOWvq_yOnv=Hyw}b4_`pqX*(RITUL?QpL5sHM%nWhE2C| z8IMKwSy!Jw1J`)$6o<2NZ6B7IraAa4Y~X;9jcrG!Fx-5E`jBQ?9gyR=s6?MAC>gP1)$BSZ~37 ztFb%%d{iMq%1krEwYkugk=%Y3eG9I4JW|v1jJ)b@o8&1OZ1BE?X+N2*(p!2f8z%I_ zQ3yp<%9ulbLKYTH_YX}v1Im^^9AQzfePD0c+m-YacFAaSy?bldrC0|uSRn(~V0x$ub19EBvs39#Sky^Z5x|T=EM%phhdS%XqjQs5WR z@I}_#sl!$-_9kjlDTfdA=ux%(hJNUrp2?Z>Hq0ROOc(FLq&7AAQ?<@GB2%03I#0kP zw%1`;)2_?kk?7d8F*b8p&6K!FcS3z^Bua2b{shW94NLl>kkgD)Kfzzgz|}h zwOtSf&90n`u^3J-yEibdw%L_CP#K}DuX*orM$wZX&4AWfBsKO>k7sd>s)rssba=yo zYm{4om}WLm;^5ac^iesr?6`-i9-;VWCy#i=)250Ozp+IZ=9dV-rSC zCg&KeZp*%2^5|I7<|}#yd`HUqV4E;7)XGZF`=Ly_puVB4avdN1^Ro=`v@CBA|GwJ% zm5RBzrZGqR6OBy@KKSLws-0I1rfw@tUE3sH!o*W$SwnuG#e$|pmh8~U*NCp1s+sl( zUFZ=Uvs*i6`h~<{H|+-O=zcq=3;ySnq@re<@%$EixpCE{YInxdJLvQqw%zIB^;eef z#d<^u`y$#yFa)#n8Rc8hRTre4%Ll(WeARfR)Y7J!)6Q#Cby+F1^XGc$NIA2jh)8Xu zNAVKjX~tCL?(XY8h5U^Sa%WMu{AJqALO%)KD|H_k54LYcqtAE_Q)+gDgfcLYhTDDkXph6s z{R-h`9qCsiyRGtr@x`jcw$B_@CNHH8w5JVh84n#WC*gY{Gqf%!Vq%sKq%bN8XBG3T z+jeKN1d_zaGy4;yAOxK&q@5w4GetYb$?NnWEeo5>7Oa(-b zq0Tvb4VUCTnN7}<)S99gY4C+_=UIxN($rzUK~rx?A!yQDpkxv0ud4cLg1K2f~o zM9XJs6dh^P&|$%JxvRi;#h`rSOZzm~uKIetmWp(_aYLqz8W!l!A@4D{jn@30q5V*CVud6;3ockrXgyEO7^7_9=WMW2$kyDn zR;O>hmaj0N5v{CzG>s3+Qz~NbLnpQu6*D~JahSzAiKboYFU;ghx4FNad8{Ho;~~}H ziJ-QYRytpxb4LTQvT>`EaM#)-T34pe#!FMu2{9Ivp27 zyE5uwe#KtFe!7;?^@BDwQ>%)0<-JF{bY-qeiC>>GCv@@I7CS^icTC3KdzqYl8CtHq zh+U@kInLV0GOgUxt>EeALfXwa4|CSzOcyC^4DAH`_%T>c@D#5`yGf>l^ER`6*#)80 zgYQ{W?pZtAW86javeTwz;8tnxn-ZL)jW0m3iw(a%BQ-6P?6)SFhB4P$Z*#hG*$g4x zQ^c+bulGwIilD@nYt?v&UN6OFrnY8o+mWV~?r89|^eDp4G-CEBj2CTjeY4eRvtvDH zh@ZWQ^aycIcvMpwpr8NU=4<{v+2?^<+| z+&p)utC^$?aja}nQM zP~9E1n}Ar(9!M?4<56RXuAb}XGo6B8Y3C?Dh)WIe^nNhe9kt(-Sh@O5ngZD@CYi9Q zsa<_^A`%sVzF2igVjax&Z*W2N3X{EH)(`tw0LJ*9CyyV%+dKvxZvLjAO8EYe-L)9gaF*R*kD&z*X`os z({%S+dYso9)NDjm!ri-f&k)ZI`1rTcSr0lBB?z;{n2DKTpW^_vx!}TdsqN|uCd;&X zqQ|ey&&=G;&(CkhQ1aKNKtzDX7IVKN$@<6O;TjKgKDwwrU|hdvLN_cT0@*wGYKTM} zqIFeORw{$hFg2_DwWgZd4}woBFLV``m!CL!@j{b(=bcNLQov8rh`2>DsZb>-v8ilm71vs@q^cN)bQq%D)Vn|95`C zzXj<3>a#ic;v6a`6nQHvo$uef#i@8^Sy|{E1_RRpjzn)tr%|G`k%2jFq#XfY883%} z8Jb<45?j$NZL~`l16*uob~YgzM;5%k zeNam3j!-Ck{k3P^9#in7qYAwWkL}pL{SvpUw54SfQE$;z71yPr6Mp!pnbS!j?+f(F zIA>?)yLaz&?>}MN@%FKqm4@10Bf1_j0f1v!8eSIXKYyWsYYZbj^^_m=cvj(!$kRt1 z#@g2&0SKc6z)%_(Xe)aI7vUGn*|IRW9Soi+-SX2m34qepd!y~5Qr;Y;l1E1!{kQsk zZ+#InU; zNLg4rD<(EDert#H6u`^O#{g_@TucUDaPwFa}XfVRn@}uwe~s)UXrv%!p80Q$_umI z;Gskj70xYO7lm5yxDJ<=`mTz;4DW>7*LUC=qdb&tC$yYSdo|@DnN4g<(Xu5QAnqC# z1`BnO9SU;0m6d6=_nF{x|4?~12BK~t5QcDu`m?}+dUhuwMM2y*Q9(Q)QNZ&8XC`oSrhvT-XMSZk)kBc$HMy4r`v70DKP^% z6V^XbUcUT3w9a&+7p^}gZ^1~4U#S~sIdm?8bsbeTRXomSX$bWK=avt`g)|`Hut%z#R8- zwX*cV%Dqv7x#1ZM*SkM#*Q_Bp=-Tkm$NGHRsKOrvzYstij>b>EIb1tDPFQZ1=KSHFH_I z2LT@@(>D?hLrbI!m8F72l{-Ii9LgRrvO2WVavb4nRd&P#qX?gbc`V+zPnVi>t9RR8 zQ|LPlF$B%zwyI{)pxx`LzGK7QiPH@oTSN=_^FN^g15_s&Bjvqu@pCahtH7upM|U^3 zLvo@wT;1858y6-PMq%on3!EMnf;@{%Az>nb!szrn~*ObqU76mq8aBPUWwy146KQ$8_?mufW%rl4k=h z%*&1^Vs{`_GIj4d(B<}o?Bt($Z8VeGuPwSgGsK<^GpEa2w$k^R065*H!U5;|BmLgT zS7$dbzcr(FNe3pK<|t$s2TWnJG!R6)Q~Uzcj>Qp#d+*X-_~Ib(omL(}hID|>A~}3c zi@@{8w_+@h#Dk~hBa`0QztcBGul9&=-*>o&EpWjOua0b2qpxnU*1sJeIL41Mp1NI+ z?A7Rn)?QOf%G*>X)bfdWV@5KPTj=+SRUY->8Sgc<#-rzmTbK7|Aae{D9yh(=Ux2IY zMGre;(QBqIG7APmb6)FVfY=r1Y=4148jH>MG14Gd0EpMn*u@wd42xtQj==CJuLCNY1t zcI$Z0n>Q9oxH))?CjK6dORh=pj&R4){I|(n91o;0tNY(pb8ea=BR{lr zEI7N;#ng86-q-MA2%E1b-1p=sTb5Vl4zw?3%~50xMEwRDunH)r9X+X?avk_yEXowH@hu@2J|>JZct|BW?{0%nt?mg#G5>bqZen z7OP#&JDiFFu=plAL1tY@XOuENYHr`AaJrR@VwP`Fx|%7$65us_#s}iqEi!>YzB2uE_ zW0eoc4akRxuex=-{HCIXS+^t^X35`18U8``QONu2Te^S}VDVkdTiuVlc);SsGYPh< z>*y}&%^`{vV~d2H9V6xW5+)IGs<+5a_RimWnN#+{SBdx%WHwEof?>2NMp_!Jyz}-? zKhoR1KTOO`3OO>6e*mHh!;BUt1;E zgOnEUC;hei>^8!6Cy*0Hxm^!XMa1F}E@1e@mx|EKsU}Cu3u%H+6oXmjNPWRX> zN}cwtTMGH?B(Dw#h5LPSWdo2-SsX|Z8a+Ie^M!L-K?DA&@);hOzP*;N(&Vax2|&eg zq7U$mzB`WhT0;4FWV;Y>3kF=kldlTQ6@tcm$`!-VH2;X?4lCED=H}==&vv&9S+wiibbgj=N^&RY}K6|Ww^Bv`zra8 zPI^1;OF7|l8}M67NM|m9A|3~I?zgkfgkM?T4R)SMFOZl_tPeKW21U(0jPLS~$iUs1 zr@k*1=vkmx&8xkvTLh!tnw05zqJu+|@pvjhNcoCS5i<(Nf^4@EoSnjmz% zRVd1MxVmn6OK$O~(b_A^Y_^+74{&bR^WiXN;QeJz1#kkrY38x0%+7#J{r$1(m>V*lpM-%5?zPwGV>Z4U9 zVE}fKb3UVGmgCZYzSZtsabclCbaXTXU?9hdNw*(9d^p2m5zo7ynPW1m;?AbI9<+Mq zw%ydxanw_Oeui+Tr3~O+O^5hPCFf>MtxX#JpejNtrRqrbRMu~7E9H~&>;i--H<-*e_%lXw*6|Eg zR~NyLdB@@8^GSKX#aPCMd_GRMXt1WI+KT$Z&BesBL1*=k>aBh?H;iyn#oSI-g1H8w ztvh>lC^GYdm5Gy+lUYW{a3!ZkHLxh|L?a$p)&sD8ZWj~IT|36?Ghih_;uD~x+4u_5 z06{$={K}Opi5RFDb@ZFc%R*HoH*zW=sAIS3`MHfxHBw7H%PKhcO@7#*JsYs?RSpVG zfcpsRGUj*^81;kR=!_w?lY36+Z12LAle++EB?YnC<)b;^kI11HatDg@!W|4b_lXsQ z-kaKMfZ}%sh``r;Udvy#S+S{%H<8b2u+2mf1Wx**Hf; zQ17(ZbrS6+WGTV{S&~#=FcO+NuqeSim8Ob{s;eJ)ESCiuJ-0hUPcEC_JRxEfiNjp+ zLYNtb@$#ll^BHocf%x~IEGX&~S1M=t;U6@&MN*8W23Mq~Q0svS#IeYbu~7cPFT>7b z)!1WwKv4z~_@*N?{->UsQDvW=|Ah85r$+t*B*Zy>R1^(vdyioBwQ=x=Z`nV~9vF;$ zZ*E_>R@R9msLJzxjwDW@<4X5z^yvSEt{bb`o*ZMefOjVva+kf4-c%4{qdF|Dn@8LqsuD!={t%RT90 zJFLZv^d@iabzd04u}ks}bf(DHel3hn$*UhGk0P0j)#vK*ohU1hK)*>$}MhYrw%{;`Z#$$ z4kSYRaS^@KIcV{D)DC%3O$zOPylS$ZeFQ?X>p%dnSn4C0G!EdrYnnxK zozA2tg<4P9_OGX5oVEVyz=&uE)giBjq0-tyhn)3vY|LRJqu;*DNsbM=f)pc9;vGe1 z%?s@{sako#>Ja<2<*AC&SdZzG^lt>O|mns15+WqbmDN)MrIH7q+Txh2Uo}1U>cV7`lE(+tG^TR8>u^r3C*my!m3$@o|mm*T;@VKpN>HZKO-Ji%fkV6 zq?qTA07s}>A2LGq-E6z^}C9VWxeWYI;<3#%@4$zXkm3G zLe0WPFUPO%Jie5T_Av+#(H|*jd#1?r^4*>8M`kX_*!35av_xJa&=5z}oFjPGp zE!%Q}tbAuJUS6V{JFMJ?(NR3o4fka2F*WT_ZC@WBdW;~>7*Bm$J&JErZ|9V%c41L5 z7sdz1`CqnlP#4r(3~x#VZ|h&FTun?4q4sZK%E(Ub0gJAuz1^?GIHP>f zZ(9VV`DC1sw#{AiVrN1jW@)H#P9pPhkxnsAnVB?s38toYne%e_q~XOx%6L7H(XE;s z5x&>RPSFA(=5}=^-#lwUc{Ds^l2z4M)(nu?CGQzk&JM?5YBx?@)6m^YSNz>%zQDcP zbGzH9kHGAF@+tr4MNQQFmQLmthSfNQ{$>-L`8>hk3-1rAwZkL67(FHmO>2HuiW3>3 zCmTK|xn_Fc54w%c&dih;iw_<-a(rjZ_m+ktb8NDa1j|mq|2bYcAyvp(9tuiH7~Zb8 zoVmvE#(TAY!b~Z7bTPbc0!5D+y!2eV=4$`*IclEtQcfz}zd`wNzruibxUoNnEH7wKU-U*r1PdLk)k#RgGO zSgX+7!V6fg(3FLfhpPFsK7}9>S@kv-#@cNO0}C^_;;{U3Zz0^)Ym9xD*L4BEI$qXgMu)k{mRow<4;Q~L=b%en?KifPv4d_Jf8L~&M* zuh(anLClOHuX`iVpIfcI+ZAHqSXf)DeBgEc*}fqya&W}!e$x&`qP+yZNx;o&h~&N7 zcs=Y>JO`f-!zV;3@MLUUnwWF9!Mk!I#=hKKg%!Ew%`-1a;&#kWEfyx$50ZrbFfLj~>l7DhZ4iW)1ou-; zk0u**iU;!D80&aS@@ecUxnzfU*EkF1*zxlF@d4qp%7`xc!5tkSg~^*`s+jjGs?|c- zJQyfiZRPQT;`E?_=CO3&!3~P2BQMZMVY7O@CWgCpJa8IzbD8c{Wbt-QZ{ItAGFwBI=jOu^m16vQ8Ly=0@k|Fhx}aa z=_U_zkPf3ePqUN7cf0bnOIT+h+Nka6TfD!6>H)5>4bN-){q)_C8!GR7;8-*$*cp2T$8|{gm3+ zwZwe(Fp{f^O~PPXTlA0d8}I`EoVM%xpsHT$*?WgWgyDbFQ?s@fg?Ex;;p2b0nZb`w_#_AEf?fLt^ab_ycMju;j;{bS-f(qL|!>iKuEIOgc>& zFQ>kO32Zh9fdRLr$rYBCsPV*Nz6R)p>5!G)Oa=10s=?3M(aby>1AP%ws9Vd{f-8N%6*o;qg@i7*9MsI+sQUYpwSE?&3{ZD$z zXFY^oSP#aANFs7#FDshdQueeJKz)P&9ZF0{g=2%tt@wC2moZ#@b@DmjM@o}Fs5C%| zMEzY~xSa$`edLEheYwy#-;x#}#Vd&7_r`yT`~AP^I#z%H21U(BY*X9oeZBe@2lviox%K)^FX16ZDNKRQ=TD~i9V|tzGc=P6mWggG# zh`Iux5eb0T03_jlbbfk~Ov_Sy5@3@vTBhG?3$`0y;|BlaeF3k8Xdy@!14zV=hE=_Cu&yJ7( zLekhMxwbnMzI)ivppya6|CMb0`La*Myd40Z^q;o9{AvsX;Kv`iW1w06P2}J|j(Yl_Lx|LH5a^>2Qm@6>FMN_?0Uie8yjkG3k%P`&WSIuDa0UytR8z=3f~4C%oq0 z{MoVozc8u*QYZF+T~YdfH{t(jX#Ee5ga3rZ?5~9K|94UK#}+-ayo+Cm-98rfmW4x* z15$mkvIp<%kkcaAlM6u;j3epnyka84z(ta0dpsXh&%eFX#1#i@T)cmI+$YLnQ{o*$VLeB6`?oOwW{{8EZmWgZ(X%Nu6E z6&V|EvUF+Xqo4nTaLrjbMaCo2X zIrzWwH2;fZ0~rTwmX740H#gk5g_vEHoN2=Q6+Ai&)_BMlVJltla|-0=(Ra_SM0(S5 z_)rEVL{5~JC5li@GMI>r-tH`NEQFa4ZR`;9(>Q#{?1w>L9CFLcf(3WJh*y8RUK{*J zAog&}xz9-}wv%^saA0ySjrO&4Rm2;P%~zUaJ-sY-810dicA= zj;%0tPWuhHEf;Ss-uJ0keI7u@<`=Mu_5{P@(}vRt{U-zC!lWMJC=B$ZV}SP3z-{RM zm3QwRTwO~kmmbLMrTo9u&J5;bJ`+nU{w7j%ba>m`sV+O4A;!s4s zxq(NrZ(3ji<<-3s@;iIG9b(@M0LbvqnR)+RrvBWj{BfH7y%QR$$7nB*7XPT> z`{SyNdk2(LZI;aW`NU_>o^3e2R)a)%x5kGg4SJkIK58R=E!p!L?*tZ6>hgeP;4(vV z9C;dYROkF=FyLUqwkk*5Fd^B%?c3K2x%%^^-AKQvwrGqj<}Zk-9x<5#a4&{Zg!!Y- zXn?DbGLklz&jkFG-?E=(`t|GAj{_N%#pgHFWdKl?6I%hG7kvXA(WSyJi^3$=Uz+V; z(5hF5&c1!O{q-qYZ)r#4FYWph5K(i~g3mdH^!J_U{Jf&K5i7VLUKvT_v7fiGm`j;iHT}TM5$sQ8>=Qikn{Jj2#%l%hH3u0ZaRZ7d1c9yN&xaA`QJ)>s_ z^G{OiJ>44nYoG2@JpRehbbzzgE)2er@_ovS-(!;JsAoc+tV#cev11OHIrjh{GwBeh z4kZ+0gFZA@d%ooA197n*=u+K#(o&4CdQnX~`zd06AuUQ-`-yQg6KA4js@i?cLqo$) zMeyFqG}OErl{%*lEc;n$IEQVX5eH|3vPOrc^78z<&_$OOzxeZM?;rE||7r#P300kQIVFE6jO-z8xSJzCnOdOv$52Q^r zhQHQ6Kz#szT*D84&u!X$gpt)b9t|fMVN(^d$oFH$WlX3nSdFZ0Lfbr%= zaL@o0l029Gkr9W=+io$NH*anw4nF)-rE5)B;qNxaVlLgV_)Y<>CsQZdHoFgqsmpX$ zPlm_Q(W16rxWZ~2m1>ir1Eh-}Gm{YYUjpEGFXY4#?y3NOW3D=Ui^k1OVPb#Zu?v6x zanx})z81SSJNFTZ04RPlI4Z#-h`-Q4SYMehv@P!h25C6>*A##$e3h&}S29-*Jk46s z89uu}EgtJJ*BRdj9CC_NzyO~J6k5VK)8dAP2!_xFxv-xY)fY0AW@V8e;87?q`#uKj zprH_WiW5>|J}B6HExuz18hwuLlIY&|WlLA?jfjN4@dIaiD(Y{0Cyd;Bc(B#qyrN}2 z<5I**rTQY@U}`67)ufd_&PwLB(v5<~f(V_!fqnqk+G7BlM-6C(6frNxgL{;1He$g6 z3vzsXlPP1jfiY+C(&A!lVeBMhi)P-WmbClIVL=cflkZLiS>8!Qqr$)Y2L9+ z*?&TWRb{Te-Oq-OqLABozlC5xS?kjU6kH`Px2Pg<^EJs589ys-tWv|CwA!6xdg8jQ zrfRaJWyy)7I$8+Uf_sXck^TXc@KIL76(S^#+mD6(uT((5=KjpOUJ9Vur`v0NNoBq; zLQO_ZMc&xTV?xI#qLtjN5I5r^;2ziocTufKn;Y3%-LKzb1SmxLj%tFOqkphhG$dQN z0R)`dADRBt(D||CA=V2Z_Ee3%R2QChBd{KwF_e?ve<=0_dwaX(=Q>+4b=2~^k+7jer+5^bt zoH{JA9uoN7T7465yboCFbqd04kqqATV#1h-qUaRO!?j0X9PD1FoGlAH4QE@KVc4AI zD7R7Q4L3n**&xUe%Zq>s)YVzHjij|zYk8yUTww~ej1PgU8yj?3;83d?q`rH7t#?8d z9Qjag-pi36*>9i}d$rK(*a2Y884_aUt@D7_cfvaWq|TzI;3+mRxqFe~(vWS!g#Nd0 z_gFoX6K!O9Q=(ipxD9x8L)(J?@ANis5A*ks6?#rsC5k*B%4}CN>NQm{{95Qk+&lGi z6Y_DHR45;sQ4DC}jNe&KuZmU?_O9_5QSpgv>70;RSYe zWFK?ZM_HeHZDuI!TS&jl21H!Ychf0d(051Y0q&ecSV)F_Ju*!kIpRufTu4bG%5KbM zk@bbMnWitTEA}$TzKR)U%`V z7s#REkt3IFoLm5fPD<$av4Ga1bdL}1CCi@A(*2UmnRvG?0_i8y_P`*nftjJZG7?e{ zK~tU2wjfw=$_n2m2D^u6TOkX*#KeZQAu+%lb<8AU{K$Za^QKvsJ{?G)2MT<)cYg2d z5F$RTWh>a=!8zwS)lg4f+W$>X$YOm$ck*C;7FpY1#9@iN0~7L6g=BhRxE1Qhc_kZW zPt5D|D)WLy)dUs%i%f)lTir9!DurhER zlww>kd1)wQP@Fx%l<3q5*DqrFgfaB-`U@9^w=AciHmEoI6jNUqL$CLb`HDR_JUYG5 zj&k#e`B1cNsy|U~pX%63HM`e9r5x!%I}TI!FedNN-x{6z%R7pTCyxjE5Lui?Em#v@ zhooGdYwJA_RU8Ekd;@PP>_wu4mk8-wipyhZMjT!x6XrMhZM6x1V`~m~CZ;dn2>HC| z)dy$~LYl$ikw;G3vH4jDUszDf3u;LGMu?0a3O`37u%3J^MNJxeGP6 zim#64w?>Y}5dob3o)>Y-|ElgZ5hIUewM9fnpEv#(GZ#!{ZDO5}B;{G3bThRKt1sF_ zDXuAIwyqM0Gn=P+8eI3eI!B$AF^nMUdiTkd&SKlv^P>!xUMdvgZ1Ob~U|M2X(-#1< z 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_040_side_vault_none_wrong_keys1_1040.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_040_side_vault_none_wrong_keys1_1040.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2fe075d4236cf4821d0ace7b6c24cd1300ed84 GIT binary patch literal 16168 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_041_sequential_chain_kd_dead_end_rooms2_1041.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_041_sequential_chain_kd_dead_end_rooms2_1041.png new file mode 100644 index 0000000000000000000000000000000000000000..481486f9ceab3f1523b575026f28ac7538ae6909 GIT binary patch literal 18050 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_042_multi_route_none_none_1042.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_042_multi_route_none_none_1042.png new file mode 100644 index 0000000000000000000000000000000000000000..5976f1ee32cdb97a29a9f51c097c1caca1224ce0 GIT binary patch literal 13836 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_043_dense_maze_sg_wrong_keys2_1043.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_043_dense_maze_sg_wrong_keys2_1043.png new file mode 100644 index 0000000000000000000000000000000000000000..4f06094dddc1e51ab928e1795921e2cfe0320474 GIT binary patch literal 21702 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𝔐9s6nv#LU(lzYLB%@I1Ti)zc+}rt z@B^&?L9vB^Ea^|=Fifdnx7`L!p7NT;Ji~fLuv)u0(^Om-yq86X?b6#JFu*?9tHm#h z4UCjvDa@-Bx@i_4R}@p^DvVeQRzfu1iE$1$H$R{OCihn(QrKbkbynk}w#%1V_jKzF z^M=Yjrdv^aT5MlaM#Pcp&>Z*KR2i!QExHHgP$(0TT;nq`7}dspdi)fpGQw!9qsxzp z%W?w_1uN+ir-tV(Ceub~I=O%#5D>F9hw6B7nPj#82Q}v$51k8HY2%FT`dPjP6(|3k<^2e;h@%m_-QI#`_bdCg`h${$r>W6mFACBpY$te0^c<0Sb+e(&; z*CUqprStsH{O@j2Fd>`OS)C(AGM!+>U%mPcy#LTIF?WtHp^wFk~cwKbak`JZGyq- z3$aCUO9F915Dk_F76S*y;yF@Fd+^sUkd-!MLfRAav(A=r(|`s)Faga@q9XOA$re{`)( zMV=~tZNzD68aKT%-w}R>4QtL7l@M+ddasi?*+dGvkPtR!g&Gg&Q}5wS1uf-8nk+~t zjTuFqLFDS&y@TWIx~1w1BIbWlUrW?OoZe0iRw(;g;6;1U{lGqeX*mL+(F#zV-0a($ z&Amt9-E1mVmn9d=mu{zK<1a4TGR%F*@!~t)i;_s~ra&6Xakim!>T@1G>lc$72Vmth z_p2&Q)IB8L7L0Tjl$OR+T=wX+dFt@PRf)))7YO5hvJKs~3c74q3Z~D@Y5<>C7wXz( z2`0#@`hu?Sfwn=ois2ETd zwH9Dyg*YImJpyioPN(~f`gEKnaoUC3p=)VB(Q-BzeS{cM_l~yp09DatF@V=&8{Ab2w7A82Y_iU+gxm zFPkavqJ7$()S`E7udDIduH1nPd6I>;du7>%5roFAPs;ekbhWT5i9q>J5UkG+j!lP7 zK?5;OQ@qsZOmDmbN7xF^wQjMXU~Vd1(#vl3M#UPbG9;UF-ZlUv-ysNWJh;Vn>G^#S z%-V-4oSfRWds<^jbX39cjX78M_oA-1eS^McOf|2On%~9e8txzpK#l>#e zRi=7wBxG_pditV=Dd60827_8v7ZUU9dV0jydRV&mT9|9xSxz3-vR`Qd=z7ysP z^1AC$m|N4#Wy)AQND$rG`EpgwLIm8MC(r&%pG=_PPG~ay4mjG&5^cwkn04PqnYpBt zlUomely$mS%C?0UH0!#pIG>#=dQKo@XNO6 zhOg(EZ$=#iLg`H#4|rLLh(Jr&+5=L1r=pA|Ao}tC8z8v@W(YA2EwyjyGm6Lu` z(^fN_Ne)-3;HaTVNSqW|3t7|(SjCfy;4~X2NV*0DhH_yWE&T1PYJ@XAp;L^YWpZHq z90`6J%A1HrJ)i=S<34+~#zeC$Hz66`yVa`GyY`XRcDGVGwYRgwc5!4GOj;RuN*%ll z9{VXsuX8@$Igm1;ZRm_EDX!jo6rdEhW3CuuyRS3vg7A==j!*9Je0WRfz*f zq9bh2$$42n3)`Gud6F3VJ?K%NhEh8OYe};oGCARJ551pMz$E=p2({U1uZ6w4!|Z5% zbb3G$Z1AZ|7xr&{uls%0FX(E2?av=$&I;#%3l$X?=K`gV`5i@o041uyWB;u5+}KPD z)D0EjRwY8^KR}@N-_I5N11a6V#Si|8gnwKuOowVBFk%di6#rhhln1J=y$KJ$o zD+%OLuOl8aI`bTsx3rwz5uG6d4HA2I+B~~h`oEj#1WMdqBJn#Qlf4G|IJzjzCj%5< z89JHwA+5UT5KzzqG~TyrUyYhJ7eU7%J-4e+T=d dF}|a=eZuHx&XjvRAcnwhYwBrWf3*MQe*vwuwjlrj literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_044_multi_route_none_dead_end_rooms2_1044.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_044_multi_route_none_dead_end_rooms2_1044.png new file mode 100644 index 0000000000000000000000000000000000000000..223a3bd2f7ea6a3b3fca08ea3ebafe635566b451 GIT binary patch literal 16355 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 BqjLZN literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_045_winding_corridor_sg_wrong_keys2_1045.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_045_winding_corridor_sg_wrong_keys2_1045.png new file mode 100644 index 0000000000000000000000000000000000000000..def3c1d395b24b8f1ecd334374da2f5b3527d084 GIT binary patch literal 25785 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 N9kAbDwD;7d{|6g;JyHMw literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_048_side_vault_kd_none_1048.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_048_side_vault_kd_none_1048.png new file mode 100644 index 0000000000000000000000000000000000000000..f51c33ea115a17b356b1e42b2c0ca9a4fbc8993f GIT binary patch literal 15609 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 jG(*A1@=}N= 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_052_side_vault_kd_wrong_keys2_1053.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_052_side_vault_kd_wrong_keys2_1053.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e583dd0c38689fc66807748dcb461ccaa0ef9e GIT binary patch literal 25804 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_053_winding_corridor_sg_none_1054.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_053_winding_corridor_sg_none_1054.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c86bf2aa147d0c0c00ab8a56b88dde61afe7b3 GIT binary patch literal 21486 zcmeHPdtB1@-lw%{t&3ZoveLA+HEWip=3Q{DR%>0XTwYS4GBs1dR3t&9)|Ts{ZZjoQ zBy(1ZN@`xYRhE`0bWza|&`eQ4P!W-vJYU+*IosLJ^E`XD^SsXMdHSQ5yv*N)AD{2% z^S*sKw|CF>1#ho-8v=nW*zwuc{Se4ZCkSND?6+ov-#GeC)4&gpgiiw!d{N;En8R^l zkllw9Vxv(B(UC`1C5FYtN1~8Ub`Bfu+}5u;mXHt|?_qBr^S8gSL&Zhd-wi@@z**+T zeij%HftW8c{hJX%ehRMTdvM3r&0n0%8xhP+eu>#^H2S!BR;icX9C$kWSi`B?Z_?t{ zeo}FD|JKqAYkTh&tR=4M()N$OvGv=XcV@mj@R&uIvH9NW{m3O>TrK!|=#waRb#d4J zgKKdK7@J%T6xNSAlIUvjea@y#^`Iu%YrJbyrlQrAoXi}i58_()(ga9z2;|g8>1@Uu z;Px2rfcO3J2M#kKkgbdU*vs|Li7fqq>Ao2ig*3!fajMC%!_t0GfBR6Y74q*ehAwVWs!HC{|l&rY*&O-ykuwG-## zkO(%R-$Jz34Ey*@OBgYvQ=?d5;c}_3uW#JiIA%@CVCmVc^~MPw;}`PSRL{IoSZ7&~ z{~phg+lz&8MSR8aRUye^4|eL;oyt6YdB)PRv-bvw2EUjHzOB0N=h`o&(reg8K zzKu?hfKbWdLuCC+8#Z}*n4E3n)i-ybrj{}C{d+3B0*4SQy>(UIw%&$k-h#O~l2pP} zDqCa_h|n;jnqX8faTg7*^GW(V!siJaK3N$j4H9X?30{ZL?>faUqEP9b{msUy4C7QC ze|khT9WyyKt}T&N94zzeu89c}Ps(j&^FkoKU71R1gQR499&2W>T=u%c$Yn&oQ$K9(53^$}w4UV56r={->mx8S1)bXvxWnE8_W-*yqIN~(n z?mYNjrm76pMr*BLv9#y0257q|2>QbjrJ*~kVDB29SR0;vs(4b&qWUu=2L_mG2C9Bw1FBmS(%E>$N_n~Y5;u9! z$tD;n$Byu8srpHjF)<=&n4?aaT-r_^98~-ljb}dryT$9YN zi5XEzd0b(ljxS>3RUQ6Z8dHH2={z!c1|ink!WAh?PNDGy<%YAa^uv=ip^ULKlq}h> z5L4H9qSjzqp0R(V}##yq>a-ns#ywzJmC`7By5o>mXvAPc8^ z#4t=xTs(n*BIx-1v~7h-4OoAktTS@1GbRtAD)Dbi7p=RI_cU-2v@4km->E3B?FdUp z8&tenuDdv|ySX$pkigU?F}OVXpz}OCg!nONWl&l&Ue>TsV1(BqLv&`wQ8V#MzTCjn z57?tb8V*LDER1%Eur_wpGXg~5rk8>9%7>Adn* zg>8A=HD$HjZ38dyt)4r)rZm)M=_j?AG@nGMR16a`ySTe`Xe z#P3|juH6+xB~LqfE1gK_GIpm5Cy>JZVX9&u^g>>s9r%z*jFm<`*Vxl-q5PgmKbnY_hITT7 zRHOOYrC+q4t%ck#`=|9fN%adI+o}M|Ug(fn{Il|21;$lwye00YBbL|XU zRcwJ)M;mLh@Wfe2lHQH)fQFgFPacjyHReNc9{m9PE%M~%0Pp(JQvgb{`T~Q!2p5N0eibqQyU|ZZYxGf*0_53yVDm~Qy04ZCq+7;+74T<&M$a_0wH54 z)alk_m(xs}3T$f%lv=0-9oJE(@=1QNnB<=(rKrVZ!t{w+p8xk!cjtJueEox0O=|I% z;)dQY=Xn@Ao0;P+wh=5LvepxaEU|$O?@%%w;fP_9q9?!TCT@mZ!_c)Pl(alZkn7+N zRbR_DJ~Px0;u<*(m?KAz{;;0tO7B}hB1kpwt3n+l6petg&!D9mvEB3}sPu7Qn4>1yCK1}8Rjarsx<-@FH{7|gymTq)rQc)+)$+; zQHJC60C1zwr$~g?u|i+LyaQ^hX*Ns0Q)8+Oj+zd-y;tAKcE;B##a4rbuX(p zUYDB2y^Mh2VG77a{t+a!pZMGCuRCMpShSg-M6&q0ho7?ew6D*{@bWFKcJ(j6=ZICY zw;q&80}F3SV5{?dpvk2cF{&Swn)Zi=L`lz0^Cd$M?%%(^&!(C@gx`Do()!!_PrM`2 zMv>p5Su7$sex0N*<^ZF&sSp5xaSn!AWoo*J*c`dOK@3%NyN?;SDtNw)ilh5x-nM$- zZ)P*XBw+B7Y;Glm@0x9Hfq!(s8{JP!W7kPMvS;LvV+X;!uN#5L6w8dBgO zk>uB&kQCprb6d(*g_BfyU&*`HPnb06lrY)H+VE6U4lp$7JsD zB&V)={$4?D+~FZopbNY55jvt@JB2e*|sz7QU*caKQP+Y zNP0L7%aLx|$zZ^trQ5i1mYvlB@rcz3+2S9v_9FtRlD<#SJxDp4;(t$)KXb3>QwGtY z)IZ4cJ9&(AtTc4NCzufP6;)WFpI~S8*+pg59wa6 zH^u*$6h2l850rOl4w&U0e7I_GI$0vDlv_mS58=}Xg?{SW?dlT;?F4E_3GS{$R1@kg z5!IGV^9|1{aF|!c;(Q2M+6uiNEqAw5eI>w_@4`3U!(R4<*1m+R8+hkSMI?E`jc%Jx zfhw2VqfGJpTuld!5S={e%RNv`>?j9J00Tp`WZr7X7c?@LVxK+2Ufy%Se!j!a z#W$o@=jCe}X=05fC0$&Rs$WSnEdmA|h0$bPX;v1qGO^1d@JhD))AwLgcg?I^S&}5E z>g%sG?Tp2$@1IaURnsZh6!y6kf;l4jgji(i)ub(f#A|Rk4OhO;z=zy=$6;pF$F9K= z+xr5w;If62D)?KhV*;ZkKXaH2gGu5>-1N_oFlXYS zoAG-a6e|!SayV11Di(iEAN|_it8Y95+g=zhR+^YZKa%>c@=J62p~;U<&SO}&#FgMO z_xvEAHIg6itPU>3qU*IH=c5vMu0}6Z7~p}sB^|nkCu1gh1+ezvQi1sz6TG)X^UuAA zkdLU2V-Kt(%0FE)C}cj~uKvVQC6e%$p8%<5&b*MfCkN-3nfP86bt}&%PO#-m z$;r;l@5od4Z4&LyFoIL2#RTT!OjQIGwJ@;%D6+SsnJ{3B2+UWNMy#w3UT~_RwkW@F zU*mP$ju$KDIG>k<Ux)J1JJ$cxxV!*wVx;S7+}@Bdz$zMvLb; z48t9$+eStDHc=~lQvrNARVZZKJ_)ToQq+zvLA?x6zuhKa?~>Vm5DQ6Hix$I&!eX9ZRJ3gas0i zy&r5Ea&4I5*JMx-jNPt3=!(hO;(ny@z76a|du}IQ;!F0BU@i9z?8Vn*M z9@ltwL6xW~hF`<6i0gbMr}V|8zBkTJrme|c3c&$X%)HNnF#=9-FS zL=5mSiEFLzol{F}L<8#4t|)~Kn&`?TPzoYgiFaq2TLQGQxE}%l8~!UkU|p3SX3#WvOUe324u6CICM~TBCsMuR zF&gbY(Kq7&i>topQLF_zl1}%$GK{^C-{C~owDxE7fk3hkwdkOzwTeTW2~R zJwpsKK6l)fHEugl$+oi?8dIWu9(oGL(mA-ocIaoSEE)DlydY}7x+?*34pHv^SlW>% zvDK^IsnH%s3v&Ie3*}`u%@a;eR*|8KqDUz`O+dq7;2q_-LlSIf<1A@k9NNqm>VR|i zc_07H97ghVZ_7`H*9wW8#c{ZN$nVy60Y!G-70qa~br zlSnc`Uw6E^2X_p6K)tmSx(@BLpOk^lI3&0bXf{m2U6$yUwP7O18lXm?0PGXLISsTK zB#Gs$ilDH0Nu#gSkW95ycr(kRb;(1QFD`^Xww)2{XxZXV&f~>9`#tll$)s8>^6RHI z?PF}bXDZ^&)J1nn4s+*!OqLv|Z}9h^;Fcb8?_jutF0{lrJ1NZNRL5tnkoBM7=crwQ z{5EhUsyqi8S#M?K>vNO|aAvrfNO?4~=s6985_LW4X|2X24fi&JM<+;OfJTXF2t@s&f&p(ULKvsw7GkyfEOrN5&w00X09fBQ38S z`*jU=PrC9mNcxB2kfjC8D4i!Dxtt;jl`;7|u0PE+aSz;7w;sf6WyG5#+`2w&SD<=P z^#wG*|F!Y=T+ejiQ*{96%CHCQi6QFIj(OJY^EL%z1Za{vxy1bRP4mHxna)&IXRJxTd;k7d z719&JWi(-}YiNXQ_L%xP-E=HR`2n9&VLS6OrrJhpQs{nt?cctm*T4PMhxEVkNETG{ zM-r*?eD>_g_M=qOqi)Zpk7rTW`v;%+G$$u#`9#V6z*;#$i)&6_IdE^Dz2$^tYotqV z5mH_g7#blAyVbVBGu|$Bq#6UHrHg54D!N_^v!d<%cO{&)_TkS{{AX% zn!i{0kk5h~Z^IpHi>5Uv$20Vw*ULhQ%RxB?n-;~xm&e2ZEPLRO8w{_{@VC!m#qnDH z2;4kBFK>OBUsMwB*n*Q!GxNXr@WT&VI(=)hSB84dW_au?&!bn$XeSWe_3;r&KumKT z>Nxi_+GVGpC#I^2LuVh#bxs@%UdWG9tVr9o+`>Ydq*39$5_9tN?RnIm zCM(#p87sb9xYFaOe8ZEWp_?%^+kaV1@4x>(euK!rRn}c~L-xFyLR}JY!3wD2MBvk8 z?ap<{>gavAiy~GWGHZwCf|3rd^NgvO+7Kv1`)O zDi5}QQxD`5=;}F;JF`Ifp4wF&4h+3NYHYne!{6%e4_btOeUd*EB+>+Obl;;#kDeZ{ z&c>v5o(iuDJbU)6hc)Hy=|-o47nDg3j<1P8+UDj`ZX`()NI5wU3Tz$*t&gs1Laxcd zG$G$<_3RJl3>@3EA}l((R6M{_D|>-R9CrM837HmbpOv}h1g62I**Gt?}-hx05&AmS#0(oag zE2!M>e)r2r!&QGs0RH(%qI+!b$L`%RLVErD1q&8nogt^J&MohCb3R&w6kwlbv;s?^ zC3`~%kjjYJ0gu;Y8lSjZN{>F5CQvJ?=79gcH?D5xzoY*su-lx(1BSHzjY2X=im1wXyy*QAe>a}L+F}ZkweMJWAps8%$UX(mB1eS zixcF|+;hthJ-|<$v3C3Ds2n4o*`gLI;bHhtd_DGf$*yFH@4!6&kYU%Eko5p0+sYB% z(-qxZ1&*c5GAcF@a6M|hcnJ}+&~qll?OlhNrFB5xZ%s)Vapq-Pl(U#Ul6GG}$vs5_ zS+JKu##1J!c{JlArtjNvr4u*aI)thshRNUa{NKw%drRf4>Myrz?9e zdJ@z!AU9SjbV9{CAjfjzG8FDN;`3Y0dW=1lcpAeIa_1g6C6*h(YAD$@bR|li4ZP>L z=PKVb@GQ5T%V~|NX2deJ8%wEqKqORcx-usl9dcGNerCW0<5m@{%c6J~1s=(D!9W~O zfVGgbDi8NJjmKvsMQc=I{kHB~hZ`$lE|A#qQJB-6^Fg9xmu#3X(*~Gkx}3@r?3#Y0 zcf#nQB!hIiR6jir(OWwclK1W98MBWlJ4XhZ$y24{K?G&SKrwYnIv&cJAhd)q)hS`e zjvbrCO&eKSwj&fe;`%0}b!Y2d7w5C=(FP;_jk&gwCr{$t4R#oNHLW*--A^{!3>5fG zsk-^VBGynT)X8}>AcJed*Gf})S)O?f-Jjh$0yFffFYSblrpHb7?rs*;9DZgDK6y2Y zU(;{4WhUfiFyvHvydwFaSVRpbT(!)Jv{-`la}AD1YesVsK|-b2-Zml+&yC}I%GX-B z#0)1JoQxA@RU%An6$d8&z6}BiIdV3=X|!Sds)D&Y2j=LDJYH7LcHp8lVl{DF)xK@p zeXLEOuBB_GTkKV@kt%Zx%-dLQzaiHpCa@E&X(@9hn(-*t1qoM!QyzI^VCmH-`mc}c zMYyp_m>ncG?p-HK=<2h)te8fMdZ@9j4PDf2X~%bQna%j+BQ*o`Ie9_(`b#%1 zc?yU3u(frNJC8mERgBcFyK!lb_r&2Mbh9E?J!$PJy;6tG=ETXqTzxp?)GYT_(D1%F%AFsZ*Ou!_1Y(Gw^!+Nu`EFRiYcUOEm5?P6Z#C?Z$chcyBk5HrhNKof^vkl<`@%Jjli6XD9nZ?`+Em z7)#Q7nVFeI9mh8)R+P3rzxZ z7#JvERX?nt_?*8Of(iw8c>~9~r{n5@bW`9Y2^F=;qNqF1ShLwJVdz^H2H)ywq;5>K zZKFFO2ZPhU`|dktw!$`CvbY7f^s4GNqMqEpzt!fAG*U&-a8fOJnw6o=>6I&F04UuE z@ityqU08U77-L}(R^7$G)v_?qarG-sP_`)^5QBSDQzuP8k;|s$_q%}^l>PDlY!dws z2iWVwe%H`H3no2{_qC0U%}z?kL80@(nOEAviyM)$i-OO&v{xC4WYe}qeO%SO9^Lh0V{$bG1OpZ< zw9H>;j;O{6`5f=~pzfYvD7CtM1RWmUwX?~?mgR*Gv(%^VH(T_#{qYCm{ z#MQ*1P0_pbm4HKkbRtn96eKw!W#i3A#a%!55v>L>fB8x%Bbwi}mJ%t`Go%JZ2>uD% zXbY;}QE`zEmH^fj27@Qcd%Bh56tUYvFm~7czL;f!DNqRJTsDVAiOhjpfpjLef_bB8 zS>4Pz3lm^|d`E^CnBxgZD8GtVDTpj*pEA$JB)x86a1!wO~ z8+7K?`p?%tV}}CzXCK^Vn$>@3yh`UV-YBI5#}0O3TF7HgR)=A+4W$TF2?TPh;pEwd z+0eeZJ^>Tzd~|1E7+?scK@m1q5D4W$#LcL08S5dCy!o=6g8tsSX9jkou)Z1^OGg{; z=BCt`!bIz9=>r=)tR>}XG_18x(}P7_RT**=@`HsoVBhpMxtoM7_U1w@`fq3coi#2J{4MIoQpPhK(F zfeeH>n|Gc01sD_J`^JJaehY>K+s}+MOviQSqc}M7GpCVmf@r+BI1C|4n+;~FNEZ#d1 z$evbRYw6(|d2ucKj35&Rhu%WZfSf8?29r9zH`r{P|{Z|$zrkf+BeY-ez;)8%G8eeG>whFjjdA$MxU z%NtktQxCZ~IzH9tn@}lL`iEvhDt#~megHP(Id&gh?Q;m-KlcNCg&ehr|Tj zcV7U=K{h_Y)s>eO9zPXcugD}-%!KT50X$_xP|YP9m@1N#QGdO>CnP*P+~ZweZ=e`d zkIFz*{dHA_FYt(a`S7Yg0Q*`{Xjg#&9kbnlp@p>UE_+{@VscRiUKKt9tcu;ikV6Zw zrifHKfp;v)NC2^&p-qErxolvb*4{*e>pxiJwE6g|gwVb&syYtg zs{XP0te3 zxMuN&D)k`>eZbdOX{WrH+JoPb@r;d~0ovRBT{q#A*on&4>uc;nQJ~e?e%kt#WZ)|; zJX`a$-QOfH=BgYZkgMi)rbhVRloWrj&P98MuD%$uD3mAaYHMu;2(4d4^GKOS9G3Zg z4<;7CYCPJu!hKCmO;~se-Z~@X`i&dx_VzElF%=)CrKcz6U*w%*ndY9OmzS3!CM~>h zQ?63v@>c4?l^=n8njP>BfK{=TL(_isv`giZ2tXFhB(?@c4w6ndiR1nX+}C50t;~7{bIH64aiBO}7S{ z4FcZyGqxH0w;%qWvZ>+!&((fyDI9aj1=7wSITaT#FVl8M3a5!qV9|vznGj z9@o0)7xXrX*G#9_!+<&a3YPutbU#C8Q>%YJGW)ZY@YhB9pS9B8+duyWK0zxDHb^pc zwoO0lZ2tvsc-<)fB%kQta&`Q=QJyqq>B>PSwen!=?Va^~*WU;FAZ2%B7_d3fU?qTrn8;gs22NU=Nkjx9duUYPOYwVxuB~{idN7ACd%Bz^T<#g_ z`qod=KO=(+bA^vxF7S3f3L7O7qL&eSw_E9K2SSO#;jMt?0AvYSl}X6~KYy24^}F4y z*J9xBf4-471;|=l$jP|4%G(Fa20{v*drgi)&gIK%Z$$GCHpv@8A5#{GjgQ;1({So6 zU_EAo4V7q9c>tNay-fh7cq?tbDX_vBxW$q7q=ApB!fBG`Z#xxDF|y?2szdA%HIF8%#1&z zYWzut%KxQ%_)QY-aO*yG4Tny-FN;`4V_ahx$Su*YP51s{({Gm39|mI!$@AZQHhKX=f6xLGDZnUunJ5^31t&bHSvdgG3MtWlB)KP*f*H zfJvDr-cjQp>OXs<;<(R5qx-8U@oRzO-x2x$HjR|rvM_!8ud=y+`}qGJgfw_f{S1pg zd9n|frLDA8KjwKs$^4YZC14)Q8-aB$p!A2H3*89dj0~IS+ElI{X#@7!Cxr2T2{Zhg!Kl{|<~3mYeH`~Sg!$8E`~Q=S#cK%j=X~+h z|8tL~Xd&&_+tEy4c=c2E@HYZo9Qr&!seual6Ad@{ewaBUu!|WPJcb7>+if;b9zl{O zDO83P2~E2(?u(*;{+)wy=VnGzo66@O5_aSdrN;l^9O-Ka^RE@LHnk&b`3yTRclW@9 zWu4>YPgXnz8-P|Oz5=tav_4_jk6?Ct;ghwYp`pO7Ws>KR|Govtv=L1PAguZQpVRPV zU{i!*;d4Al=23CzTBucUn{-*tZL!h>q7}KF(#n*4K`K-74POvY6tG&eR_0o! znQxVu87ihJAp&NlDGHh*Ap(}E2@1X;0s{XZozDN9XJ_l#&d&dN&aVHsF6+7qzyA1r z@9*bx-}mSKd1kMd$I`{-i$NgJ(l5W*wI2j}>lp~N@bIFAz`t0qzVZkDa!J^IFu^A# zECF{oJ`}X)a6)WUOhQ!nku})RcyxFS%GPG<78|F{YmOx(#G+lm;OPJR4x5;GB=~+H zh6AkfPV5){Xb@=S`^K+%$igSU&vIvdxogLP#Jn-lJFz#C;D!mrx-LdFn-jZCwXoQ6 zP1?Nc@rzEZc^toJVg2Xt9eA<#TIGiyY_R#@vw3EF4;=I&fB)bwCm!EPOnvK9kEf3g z9Xg!7Y2Mk;Rd0Xmx-I`pgN(0-T*@D7ktZPCMxt23zNIZF?nR;o!tF{@b$R2w6I}AW z=7B&*W?obPAOF@aClKhHGqE7hqUFFHcyC?fJkXl2znKsE{PH3bQ0f-5WgyVuk5_|0 zjc<5kTJ-oJm_+;f>#q}7QdPJ?Low9F>6-Ba7LunrgG5D;tVDn{WW$F_$ql`5^x-6E zbUU!{+8b`)le%)n2Z%B%k=!@zrrKz-Z1qPkcj!%^v-h_-I>J!c>fB2{Ue3jRlUdZw z8A)v+tx3cA)WLX$tXE3b=aC_6DtY`!gtm8i!IB{1sA%Ma)X0oPmW6oy+d(oy7m+0ODGU&+Ik>F#P<6}TGTgnLv}RX%TwmeT zd0c(b+-!znwt+feysQRxqtkoOKwJJ2JavVi+0xRoDgSxg9!ppJ-8qh8&P%1O=D3jS zrM{Hjdu0XZ_h+2o-!mu-dWBq~9Z!SSw?~==`EcGrZr1gi>JOgTyE*Td&j7vsLGhp_GknAqcyq&fP07A=H-;8VR! zP0BB{VEuD&R<3yZrpRX%iXaQbWkkSJCLRUaP3T`K@OWbI;{v=Nae6Dw#~NYp<#c zs_POV|0G>4bK&2c6-jg=)S>CAQ{a?q+Xpv#Z|v&o8tnG*9&_7`$gtDv6$YYOj$;XN zIUxoe2Wps;vv%rm>|8Qg;%o?!Nh3~(%s~*cIc?}ymFK;aU`2qngZ;di#$G;FH4qagOkKl z1$+?t(mDP{{fke) zBd8)ijf1Hxd7Brl>O*rGy~1(hwu#W!WSAMR^>s41A|QDB`bx}j4cx(G_Kb!Kz-jUl zC8bzPU=Htc9%TkDQ85$*kxZr&X>4c4gnXSo%#rRttfY{1O`*;B2NvQE zoq<}%E3b$bOces#5UQea2`*sb#97Gl<;z7B;FIA+&}8ToQ^kluMn{(`>hcLQ0t*s_ z$O}!T%ET%rZdkx2&NN}7(mZWwH?-&s21gtu<3F(0kCQj6YN?E|uWZYvBy$n~o9@H5 zh3YonEa99&1?(iF>zG}g#M&wLsy3#B4$mE)o6KgVgb?`*Ifl;OE|1F)&gLi;-E8T$ zW|xGQdxvdsGa64mM=IQm)zLj`Gyq64$Y>gh6m@e0=->%UGYV%(+1@&gJV$~Q*xQCwY9aWuC1*t!ENSF2F5^wE6j(f^@E=|ejMJhh{EQdPU@*H;HCFTAriIM za1u9J+{7JQxgjQr9q3>~nl7?tOsu)?=Hxt_hpxNe8#9I7ok$nS`=$z1eTnY@pk~~f zN{>ki8JMIH#v=1!EDcX2ydyBy!t}%nHrU1n)iw^G1g1LvHKU9dfmvqlmeNOJnFpH^ z$4@%yb+@@B{S@p9n$d30u`Dj!G>Rw(y>yRb*^tx>R1MwL7cz5zu*nCQ` zUyKJhCHR5+WJ&TRnYg0~3q|9o1K{ z#OB^rw2Cev3}8uGp@i8w$xY&*>#`-YO^))pM~J!Is^j~8N$w&yyy+F7V^FH(Ba0O6 z&ns{YSr$prfB&S21vC9(H5mt2VtFhWm1ZG&>7K6@DTw*T>K%wO$>l4pRQEhoOfrhC zBudRP5_jQdnysFu#(mPb%2T50q1JW!llFCgE~7pFZj(z%0Y1VpzF^`UG675)@kHQ@ zLuLD(X$%OUQRc;d!w=Q!eyH#mmkuiHB9EbFGE26H4%|v{J%K6nCTY4XjyoUwhELHD zpvsj<#vFiW!zDdQx4Rc|U7c#O{i*`oBgVwQzA^S!(dlwk{je)Pk!Ea5^dPu|I4@3| zG#tH}L2B^~jyG{a9JxfBQJgUsNdD zE@i4qy$QD!(OP3WNN=l4A@o;W1b)(@)e3)RyF6tWf-{KMTB{$EgKE{M4VVgae)`F` z85GUtFImX+^Kia+{+u`}8DWa=I9V}yXl2s{G;mjyDNpcT$CSrSQw|Lnj2Is)$Vdi| zU#-1M-F?zP^(7 zs|6M*Wf1Yic>)&>HB;tE#Yxwj1F4T5J=&x*;FqCXSqvOqL)hCf0POQNdwbtnwvi0T z3zc&(HJCjq0IqBlB!iYNG0emmuo9{}oeh`ox0*QZk-#Fc1I6)ug}&LWb;GiP#}NOh znI0;$MvEjc8jR%)F*u1AaS3vC20bMvuvC#aaS^J%2&1Ja#Ed~Tmqb))@#47>sBVM_ zEkS89>()P5UO4-ZDU5Sf&1qQ%trit2#L%V0{oI{UKZ5HH1^h4P8FIW;65&or{+9~3 zfrH9CHC|8R345?#xk~g`>K7bROo}CvvVsspfvUb_wM)XScl(Z7{*A%0qbkQ{CDh@I*s#c5r}RMKVx>u!2yL_H3a+U8vCK8#~b8z6^Y~gXqXp z#xAE2GV>$Z)5mfG0!#+$Z^s2lT(9ciuh0)b^+np}m6{_}bbxHEPszv8g(8jKkSm!R zvXGEufs)=?CiB>Bm4u-bNo(J|&Ghvr>=^Wu)h01+i%p2#h*pfBu6ql`+M&v_r>CcN zz1zeYxeBWEfnw6L$uc#`MD-QTpi_|gSSsKs99r8bUGkN-)Ra@jDLM|`swQ~8QM!m~)i z{Rr^1tTxEHp*vJ|wuOviX+^L)#i_VIH?9g~tQFW-MfNMjo!3{^Fghwcj^iiz^m_N< z3AcwwHYrd0LvxEF&>*6b-Om!qrovLznzXojWp6!-u}T>f-|~qFDuV<@*`FQLe18>x zpu#a%BVWPqKEtULb3%5Ol}OC`LU>8j$+ZK!dN5>VnWA+cCFJs8OhSnC$I`m(LAj@6oBUkg>OMPW&R4pkWyy>9PKw=MfNN!g$}eE)$}uP1z?I&V zUGZeZZJ26_>gcWEPCo!)j&w9cAoD9Ur<5@BUi#>Bkq4n$#}o0{Jd?28!f(B$62CKWa50_JSnQrKRiWBX$>q`-#R{k_d_`(|o-{kyD2M)V$Ib zxC7DXqcLtDgibl%P}Vo$Z4z}?Gc^Y=u0Kqzg-))$pd^D2$QB%q(P;!{(3_Hhik#D} zp7zOjm-uq0b#Io892dm3EeAA-{@FJ@)j0fPKWpq17uXPBgK1>OQ*W*DztT;EM)I49 zWiH$h@1-tSbvX*@x?dRRR%2-zxjqJ_=ssIV2ok0FrJoQ-T1c1JWKa<({h{kba00_c zxnR^+aq8~+>uys|wOh(}WTizeH{%?XEx-|)FKWKiwHqk6hh6xHMkU-+N;}6h*8c(K z7WvV<6BB5t3N2E|n!Wi&oMufM(#=P#pP^>o)x1?^%iUhB)ma-RtX1hv##SxFzdZpX zDPeRHKqnPrMEG*0$Xp6>KA>C>qT^iBQ2@<4i6g0SA_Z;|Zh===-KnqdBg6%ESSC_7w$l1Hv{xc6nl%RyO5D`)bX|>bW17U zP?gOnOV-Q7?1N;TW16h*>>nq`9EKIuHl+~OpEi##_aoCekYcx~Nh1N&>U;_&GbgX` z>u)A&z67^L-r&FIDrVt;DsK6?^d!}hrEa$X+m$Kq`hXRTM?=Q5Q587)V(hkXmm>O4 zGHykTgb(>4kT-UdsS75&x7RweN0H_m6DX=kMo0iY1W@1@HC0^|g7_l9yI9tK6(uw( zbLPZf2JlyW2%q~%<{g`o2+KIC9BxXO>X>S1tpOvbW2vk*^sHz?W3Q_$D34O^>r@a`bjsufnexHT+Nls(#;~-2h1( zX2oFT2_=x|AY}gFP)0eW@M$8(I*^nG={pRNerpJVB~3fPc>V#!>6y~J$4`j!7A?zA z-QTxfiv{F=hD@KY8NMSm+2;yqrZEl+N5B}!)>muPMKUd+qhrl^T|;g;^SmRs-TEO< z=z%xDp_irhl%)17!$L+*kB+7~!vJ{9$W2dAPeQh2P9?1kM0V3DQUcFAzuY?Z?E%h( z*e3DNTA?mD)}QO)8r%Q5N~;;Zs+i|`E^YgZKZ#WI3XeO|vm9xc*pb$=QvG>t=oa!!K3?df{OuaI$z zzb|7Me`Rk^Q6j@9&4KJOo|TnV=TRr?Y_BU&+MUD)>~U>`WuSVL;&A1diHuf{$(Ne2 zyQc&)e2?i_bqPsRBEQgH-n}+cDfmHS#Zi9dAPbD{@rjk1fOyFF-PA4KS%7c~52Xr# z!&;~;1=cou;bN%E?_S%YT!bOqEMbO*>(-QL6xeN&5Z$i&{srKd1v?SYUAM%@Zhzh? zH%(`T+-i{6xV)ePN7LL7G!kCAB6YvSx!7tcMf;VG=@xRJFu&A8D>G9NIe?;(o9t-^ zlo5ivU-G<$Ly@DE2PpUiCh@(FGfexBgDm!Rzb_fN1gc;}WOh51npN{kT;FPNiu?0w zr*J7fWmf0qnpq-_|2l%+GQZMJhOgT+p-kqh4=wjdjV#wNdl;%(<~k{a-hB{i#!xwjA@g6dg!gV+uOwZs z?xn^^z6`WJWas?8(NPS({LUME#Y2t^?^(d;g8_n#8WY|0upFTKRkgKY*rBjoi?|uz z>gx6}s~K3eXYQ3NpH^2_pERU$-WwVomJRRMy4+v2dGqGWB9JhhwvkSw1s~yl^Y?c1;#@9~r9>9m@TwMaF_$(})!HBe57(7#z zeaR>|LJ0&y2`m&Qs2(<0*?M_Lsz$_J7{kU1afQ!;P!@v zg)IywDz?CwwY7f0>sz&1Na@1a#>Pf3N>c>}u<(R(uf1em6>C{T-$EpIC@U=2mVURi zwDek*^{0*5+1c#AzP`PiwwwoqHl0*J6m_wu+oruJoQk+-&rb~|OVq*s0RdH_{HvO) z6t_dQtSf=vMRWR|M4`j79iUKFXTroHq?3JvL28W%KgaLzAx=87)z)s3dQd8yyTtZi z@YMeR${R-xzvlK-p7AQ_T9xn&(9KU!R4OjLso`Sb+>5Hp%DrAJ`A8@}3=e>de=l~T zagw1(p|o*0S!j+k@>e3ReBmIl<)ji=2;UzLuK~c~M-C-frqY&jM%zAXcR*speSCa& zeg-}84Hyj0rqO8E{0^;lmF~;<6fh1q8ts==3q1IcL5nn)HW)jgE6HqeT^_n32tQIh zILQWsfp%R>Uw)u4snqoH7-cByNUkl_PM9YsZs&4wh53>Ti;!E8g#@fK(64g}tkQk< zEkktL#OM+YNIT-Q3S_2EYaY6ydzLxgxa8EIL6x$k!|Q(g@aNa;#4j5s{eQ7y?n|Hm z?pPTd6tsB^o1Dx)_O4xS`?jrHJ9Xv@vMv3=!@&vn6rsp`8Y{17b$W9I#s`i-P}`T@ zYv-v2i1yDOIUrHtwa(R^k#^>xKmqI@R4qdfMn*=40f{m+T0O06?%ZQExpKLgj# zHgC?HZ?Y_NWMpL9Vk5jvOqHZ9yomgLGm6N}eU*3bb`$!yeTo+DX+w?EXoVJY#0s~> z2}on#{@2A40n}KNV4@wz76eM&`tiRqZ~Wf?NK}kwu>fuZcMWiV6zb9ANnib08s(T` z`u3zB;~d3|W+rCJcDObG&kw$*RBSfM#_Pdoxr9{V#0v_4}| z37NU}k$0bbooFh~Lz$4e#4R~I+|Hty=Mn<6SN^IR0guXDU5pdYOSLoOTyi|!;u>l= z&D`A=-tJl~$lI({*<TNM8$i6Z zh_cnr(b2Jc@wuW?r%uUFuB^7DzHq?xHyq#Q>I!$i|7=t5VE;9}X@6k3ZL6M;zHKoe zj{3MuAM5gH#e$(Wn`k1D3G}OF^>fFz4=(|MLU#Si+5LaQhW#Eu^$V`?pLxdT)q>5K z(J&;cB^q_)$aSs#;vWOg*}U0AN~~itQ3%UaE$#kgVSgI{5A$^QoSd9hiE74!Aa!qV z0HC{84SAd^1{ei)=tId+L@FP#zvwFbd=^k&nA!GM(w{`lur^0yFg&Kq8WsBI8SaN4 zepqK3+{WqqLD+YEzDeu!bi%3yKqbpQnWllJ#?){&0LQ*{!@+=nc&OvwS5m9h+aM6g z_+-&U9vB2VXZDMNA%B4D-$r78Or8E&KV4}LD-CgkpgmFOR}=Jov4RWAc=_%$fK2w} zXxZWIolb6hRb5IYMk@sYMWo57g~GCXj@h*WMXrIZupDaT1M>^uwFP=)b4@_`HfLvl zFIQ!Ee()uDCleBEg3CFasNV1SKC{$SSl2uAr(t z2j1J=-MyD>`oS}xNQRzZz$U4s6wBVaCs-~j5QNbTcb|^fzKWt9c^G|G@+Rw&=&VMM3VkvkT-La z@_lD5Hh~c&b_;Ot{4sTKpnJkR&=&JkSD1Ohv@h{S2Cxy~oZ#&Alw@M+YJhIH+U4E-1fHV)jag(eM783jxFuc29zJ_(D~EeLb+Vo2WGNong4=Xf)Ju7GNGjSx5iTqL6{7U+cyHo`4_CwK$SX z{%47pEf5HfXIrOFy$b>zI(PcFMgIO{&e!ju2K?w69Xdx6Tu$25-@A9PcWh>+qVuC; z4!NN}#}6`i(wjzpkZTc}OP;F!N9*Ygl^d1Hhn(BjVdKGm@#3h2Z9L2lT0~ZDU0s9` z9>!$=9{SqBvbVSIp4_>6c5*U4CpXt3VnI`9W8+``Y9kcb6!njPFcv?)*I?pP-m@yy zz;s`=z-UF#{!~lTqzd#AsExJGXwPb6&7Ye~$;r>ROjLI|ae?q_)9GIxBK-qV|1Y@0 zIw0+f>^QY@I>dkowO5FOz2`O)b4 zC^Uu$_^h6H+H(T07@P0UGg98taeUg=#l3^aa`N&8-S!{=!(^^iNK-Te zToHsl%E(LZe8$Yq#|-J?1JHI>WZoVOfgo~l?00|-BT4qu6~fnYw!HILCLnx{XGW=RQqgHy_G`s(f7hWiJ|7jFC-8akK>Gu~i=!&Bn3# zyTHL?7#Zd{&8S!O*IA5<=idQsaWnG5G=rw_LQV%C>=p!=8tnT!HyJ$-&MhtqAel7Y zQtwSFX8Zjo?+t*?%}XmtwZtVbe3*$X#e+KwSw~;9%PrfO@h_{YunE9mXFkZw1@Ns> z`tUBGbB$&bY+=!q%iAC)|6NX^l@EDSaq~cr#~Z({lP-CVFPYz6bO8j)+x~H0h35PU zXdFE^f!l1!>zZdXJ6c@a8I|cLJ7-iU$nG$hL=&GWPBH;K+2sTiuUV(c)UDNg7*}Gi z$_ztS0ixm+mu*`Ha%Ugw`49vOI{Oa?_Ziec%T@dN+|Oi*lZp1#f2)^>a{IgK`1Q&Uq_Rkf`x z<0DTX?6DdMoNoq$jdo@ojfZ$SnCn`^5ey3%iKB^iI3l@-XU4qXi92Va+4d z*FLUq>Ucdz`@?1USD&T%9|6@b0sc=ihweMM`Ls`{v@>VU$oU)Y{TO)1R$JfFjsVaj zU_gKw5P~{s3whIoB1@1Hn37AL7yNUksaBfW$9*GpcqYCmmbvmj{(<@KFm)lqT=%+U~W1X3QqP{0}qG6+#lgfGGpMxyNXapCrs67 z&W5#skyMulq`x2xbNY8$XCM{;#6tM@?fzQm`kxe!S|+yaZ~Z3&)pvf%;ltNP7b0wm zhJnc{4uL!IcR$SGpXJcL^lL!h2d*X*i>=iTV^oE~VZ=i&SO#76e8I{r#cKVld;qHe zFicNwrQXlUe>IeinIooqI91ZSL55})anKk>n7EjsZJ&JRoyP*KnTDG0SBAays~)xc zPu;=aEgXMxSR{Sg>7o!z^>=mWS(YG!PQJ&%~cV z=jP|zQ|D2gwPaecwgGUAKB;f#EwgIc>(O{z^lY@6E4OON&&?GA{++LM$y28m0P2Sh)F72TFiV^!)Br9|6q;U=F-i%&N&^t`E&BH|a{uvM z_ZN)demo`lB}C_c2U0&@ccRcm?fC{j=Z^-07=>`CZ)FB zSbbE}7j!l6+EIJ&KZy1EH~cn$Kalbpk@82c_`}J4EehTcDXFD(h9T@BuXv~Zn+A|T z0$wnLoo9?ozpf)jD^xY#W#{F>LW)NxA;14!z^`dTrH%oK00|$+hCEU6fRPT+TngN( zSXsx1{2+-Rao+jkVE@L0{qrs07xR?Yy`m5&P6|y*N;2j~`+x_zZGhnCD|%>#{0B?` w0e2v@L$@_%b@H5m=R^J-Qgeg9!SwEX_larODl_`}Am6@ptDvF8%H8wewN}G{; zo0^$Ynj!*HT3X^#DWW1^k&-Oph6o6J4^8tf|19r2%lCiZ{Qn$>9v*r;!oz)^_jRA= zd7bxjW|x=8f)AH{2m*l?Y}@L-2Lzh&3Iv*cXwGclFDCTu`+*;hv0v|t^+6nsjXx9< z0@`^fHtIMc_ITLgPf#H-$S?$agU!0NHukGOITjlmg>zA1QuM;~-zt&sr;bm&u45UAeW9t1k|OBbs8VOklC(b>6o z+?VdH>VT*_^4Rq5bFk^xgIc;&RfkBXEV--k@5EhFB9IG3Gowa;*G#*hbk}@to48Fe zh|mmR)mw4HR(WHrmPH$`5Xlgt z7?@1Zm(|+ZI+iPNE>3=Jg*{Ae#|(EI-^{s!*Sy8scw@&dF_cQ>N4&)~%gkKfE;v!@ zR?1u@)oP^lakV{J;3Dlg&Q7AslPo5RMznE`c`@Sd`-8mMHj`LiiNA zijpIZ*vLAs#cQYVW1jR0&jA8XL146N#O+sz)6GPxxIIB0kCVTIlk{zpNbyM|M!Cvc zJK;T0=_;yh&f!fD4$|@FE(g5wo%h4Z16RhnNOe`yGMF|_@f1J(G)6fwbX{s`iu%-a z(rrN>nEGl#u)`JE)_v;3$7vXow%td-+%WMGVZHEN!gmaJysFp6~ERQlLsE7$wZZ`}-6S;%%<#62q* zKMSSaNSBE+^#Rj`2{;S0ndQUGDDi_6B=2@g|DEnLLezXCtTZ)RWVd zufjjA*E^WztW~rlzKN43xt4c+J8y9_38x}~d9Zj++<*W(EI?ghcI+1J9$6-rZH-eW z5wWsTc^q40e7Xsu8Qpn;W%-Ie89_%;RC~O)DXtkRuMN&yk%z3$+A7n#R_Cq~heA{a z3?bu|dfXf$K)MPH7!(eCydpf13%QX<1|JQYE_#-Os3RvU2)M-Y^~bf&twiM=VtCN1 zx?J=v^*s8>yd0#psAN7X0J#&nx3rF$HKE7;mY>p!3{b0Yo|6%HcU>UkPnEiPg&6A zLi?`B^5{`B-l*BmgY);mmf>Dr%HKOUIM_VOZ^|LO6`+n zKzfrpR0BC3=M3Joso5ug?DCkN#fV<3y3`}gLU!9DldfjdX$&b#F)m;LD8z3>P7KG> zlaSkYy;spVOW_-oTyFdD8}Er13t1Yy2(M3@FWf$2Fo>Nt7~& z=ruJ7sUbW$hR0f63X=nC8_j03N&cF}xY5O}6%>vHPGiF7~Y!Ac{+n zp8b;mZkuRHeSGs)xs`Xm*vthT8``4=?w_lBN5eiYv~Dc3RU*^E)k~W)%p&UOQjC!isvb^WYW%%xV&?D4#*<;a*MI$PNe-!6LS-W8Q3)7Gs6Qvoj*K0-y|Pj!E?l6TTeBP&iz&`kY`gXab=vw8ex;dn1UEbwqyr z>&IvELS)rJvOCZP0XWDoOINw%uCFa!4~MEb$f69%yr7Y9PKsbPQP<@Qcq0o)ImkH9 z(9lqx77J7xEtjql(IQN5=2t!u$~NM00sf zlby&_`2x=!uU#AFZf`vF5i#NG@h?ZsrK9GpGsSRx!edL+r=^-iema;7SIDtaId}Og z;>LQOn!}^XmlljJrLpK5S!)GQ`BxZ-W*!aHJb_I=iSO=`$z*wvSp@}BwS=dM9M_6a zEPGsmJh32e>#|MtBBkBox^X9Z<(WQVo-{dB8s?qU+tzNj=nLDV9tP?POP{B?^qum} z8({c@jQ7i2rO;FHz?d~9w={{J=PGr$=d!tz)p-NjQ48&hq+w(MyARLN3`;d|t9+5t z+S=MFcuKbbT8*=6?{*ALY}&NRMj?eZh;%z*yheQoOdHxsG7+E)B62Z91Z)^0GO}#H zU+~+(90Yg2AjT-LV9BHuw&0e=n6@k-Za>XJ9Ysq}qn*@G@19g%Bv5Z<1v7P<3HPSC z>~>!NG>xaCIrX7%6rq}`+xq+u91!L~aM)0DE?QJZJ0#%(#cd|!UgB2=n&__2Fs%_m z9qz|*`9W0gVV3$1NzIk2xinyN;B}K>h=c|cw1wh=1sO@_jb_C69a0xN53Fn*OX8`x zG=a0gq1CwXjwa0!qV&%G_~Va4?|VYGbZ_M?Z=o8f z9j^n|dqs7B7q#Lg4geVV#eR#`;n!q&PVwdO(^I1>V(Mi6^s4=uV8~=J$)9BY(J{+t3)LMLWi zM^^N?BrUL)N9NCG$wbD4l(Z40d;cEdm}K&i#q^_Ao=OZ55vSE`%wsK3{#0#l-)Nwi z%p=cBx5(t7z#B{rL&#++Kg^5=DrS|3>)3@>Uh1~N+^7|MTnZlK8y`>ua2{>bYIEp{ zoWbNiyy7Z8jN2JII;L#XpzDHVa|=f1Ce?AI%5rIVd2-bK_UV@PPzytm zNy#0wT?!gL^2B_)U*FI<9%CzXV5-O6ZL1=IML|+&Wu|>-Y?2ncKzZ$&a&}oyPfrCb zXsUkkCS2F}O%W?Ip~;E6TUUSVcsMo*g6Wq!F8>2-5Rw~R0@^Q zm<&-+`H}l<223+H*sjE$v{hBuQX0n4Y;TOv$Cix6m3LYPB{vr*H=A8yF&?|9hrAJW zL_w>T57F=+7WfFTW|t`S#`z`0Irt zlh|4E!*R~DX}$Lek+eQkS7}Tqdr62|SH!3s-ACnSA|zwrH%k7uf8S?{lQJmJ~^(q z{-Gb|N4@FTN45 zfN+GeY`6hCME}sQVN^@U3oBqrbt_! z1%bkj6j32qRel<3aB!avXBKOf_XGL0K^sUxn`;^qAzuN%5?Gdjc3pD*1m3zz_1&8R z^Sx5Bp1gb)>_9oNy=zLBk|=1l(37v$m(iS~q~;CEGbafzVSWWyCD^5|CG;|aNu{#x zl=9BQfi8NV`fjn0j77J`CrFD^s4&^yOAU+8$y`2VieOr0p4Gy|rNl)OuxEFQZ%B%* z6$|q4=pNeS5L$wp<8JO-?VC%L3Y7Lkd zD4fF$lr*@C8&IxMA@R4xeof=AeNt?Kv@!BZ^AZWMAiL?N<5LwABD>LscTzpS6a5^A z*olcTzv*#^cDzlVf}OqNL!&l#k$ybw z^)qXjqM5Cx-^mvRSez31dSU@ae@%fiOzLj1Q8d=5{qTRoa0M7{Th3MCZh@QOG1<-Q z9j;R;keYxbNmZ*HGO-!5aqTkL*hPX^Wb~Lgb(VNc^KQ!@6m9SH9=!{Vxh=H%+`th! zsr!7*I!X=ZK_>6x*XR%EZYT%B>gvh{HwE6U>nX!t94t(Jv^e=uTXH$#GwQzdPUT>& z#;8NHyCXXOyu1`!8_D5`>R9v{jKWUnsmbw68&Y@k=5TQB?i^cNzlNzMthfnhBn3u#OQEOS%AxL2{I82|=@L8QV1Ju@#PJPC*&k82P3Q)xaOG;_} zC!P2QQrMNUpp1Lk71fUUwh52sHA8VSD43AaXA5vXSl_A5G--jlr-0)w8@5^@n=Fvs z4V6$wONpl=7NnrJJz4ff?b*$|UA7KJoV9y%d4AIYlHyt?G{}{|!S$v>v&|d5Cs8wA zz{|zHG#pWwN%`h)=<~+tbu#>PgTAGcWuRa zStyGkXEHvSWG4F9vi29u>a;49sdh6}eu6ly2w<3kwhD9)ox`wk?G5lQ6ye?S*syUs zSmpQ@K04b6^OX+~^gtz*_%+F&d1GUc50c~;w6$;!PvyNxlyihg*C?It;s9=R88O|6 z=p)C5NK}hB-OW%HBf#v5cS-3G8lpq%>2w%N4X6cTAi(e zve>&D!jT?^Di663kYxN>O&(8?=al>gtsXhAp6*t9k}DyFHDV@fH>dA z)(5F4nw4suj+mU>tafkbXphP^5#I!hMEZ4|-V%{EPt(*U9S9cL3S#)l_ZgVON7a`f zr2=|cr%+<#Oi{*{SA2B+sOj9$ z*AmwXzzrhEk~=j{8c{(*&`k6qeDWL198nQRySt^DLx?$Twh8#24xHhksIk^1^f%LhXl?^rPoC`NPSDiIoR1 zGb7ZW)#-TSz+CTydWlU5)Z4p6i?bD)@Ps)Khka^qeBU|chtF>9hrxK`))3i(A|gf- zA+3m<(da#B>~W&hkJjs^?d^iz2XTUpt!WLE!W9eOl-7? zM4_rzuUfW@4$gO1)h=!eDFOg^|<)-Rd8eE6sEO%DQQ9)j%=&RLZ%ku#l(=? z(WPe29~R#P{RZFmKQ?&(y6_kMZ(w+QXhB41>N^y8f;LS01r2htJA!985A z>)V|UdoxTGbU_*ti5yUhh>*9f4tskgs1i!8nh8uMzqKx0+(K!%$qdg_C=}OO5Xa_p zz#hm1OpV>x$L@FZ>ZsJ@=Q+{GI4E}HAjdq;(M%;;n8qGS%Zv8hAV>@B6^q4NMfgRp z0H-P>Iy(B+f~)R;P25@_uMxO3_f7Y?A=<7-cQo%D2$Uv6_Xh^rNhfc+4wZUel@J@( zJjvYv4;#$A?+I84yxZaR?VHk|Z?_eU#SJt=r6Pw#jHvHyB!CyG~ zcR2bF8ZP%rf`}{=)Iert=1U1m9)E7dL*s&}#}!m+z;JYX(q*!OoWjlB%rDB!X{K-$ zforZr-&mDH~Yzauj` zN>oO=qVsg`mX~M8C+&qLmi!ok;X!$j^K(M&Suh+XD=TXy63LHV)!ayiCn_Rl({GG^ zVCWL)Wgd|ky^F5`S{Hx22zq#3ke>DX+E{;~^EadO_#Ku=b~-RIB&0Bw!clW>%zX|g zy=w^C8MNi|Y`}fgbx}QWto+qhz5LODGB2h?5{ZOAb$~Xt17O_K;=sRhv~4NnfnTZb zpg@osq<#AZxUQo$(q~{C9NK4axGgbl$?)iP z*XYsiaPh?!%B$6D)?|MB?YGNWC@-K#`Z&GmSse(p*6rUmO#c@kEu#o=zG0xNbzVq7 zt_wY|cHpZXdzK5ZPsOHjm`?B}|BivT5BMuVsp)eB6xi%3wH6*A$OUV@4DH7!z zT2rGoiPhtY3o$V}Y>}uNm|G9n9RqLfcYS|lnhA&>;v6v#1S&uLA5`66(+~e|ncg2W z3=}1>sHiC0wmblLXBmmM0R?TZ$phvRUXvKyUm+@Y+3)oLpVrzPi9jT!EqOh9JtMEF z3%INS_zJ5!5Q4>GpH_J~I8J02UM?#utEj7UZN^{Sn&(xV3&GXhEh{qvmQ-zYso{>s z*6z;*eLz*u*1sM7V$I^_iHV7aA!Vr22kaC=VI&-mPFoVwmU!GOZwW4BAEoWE* ze=+MAiCt(wxxWEE*f%9D_3`m(W!2axVJUr419kvF zT4_|mmX;k^IXTw+!~6hJuH%NOeve{gZLV|ID*nN^IA-wUh0dE`!&q1Ia3x7rYllJY*P24G)7QWQyL$TiR(oWau7fw)I10i~u=M4+jWwHRk@BFo>?PbV2(>U+u$e60|8D@&DZ9?Ck=^yJ zB*tI<)l!epb_4;?1e@C84ADLYX2J2YGT%Ga-7Z#7wa2556Leqag* z-!p}0d;gg!B@%f;?$m#D%5dR^Cch=bP(x* zrTbrW2<>~>;t)*O3@(&|3mQfljO7r zO$$PFXF~n_wv*T#-kNL>V5#odxzi5D?-wg1F%7LIGYNt5l4mhDT+G{v3oC(C0alkYi`~?1O(+NUmIWJzzHQKC4&*BI>+vxU7jXB`9R(sAUQqQ zcOF@uQ2;=s@ahi`Df26BX>T{AXLT5Ia-+q zII0kx9VqNJbBNJ#5hT2&2kK!$L0@wt%x8U`4VMCfi1Edivm;eiRTVWg_Ah7exG^v= zu>QRYvVX6Fu75o6Bc1HZ$#D+4}E{Kg8u%c@v9Fg{ZcLZdDieGQ{?T-uZ{;=2aS;l z0AXKB`acEWh5Jh>Kqn(`{SiXvXh&>P$Gcuy^3tvs*IBCzkN=~83#h+=X~lR*WTXU8 zf6vqX)gK({OUnaHDlxGE&(>M1Uo87c1HxwMA#PYL4e+|w++4DxBP5kyu~C{AbeIANMTI1pHZ6+W#`-{88x6(VfXV1P$81e*X>HAn zz8_ug@0GVS`C(ay!}r;fd$qN9JWs!g=R{q(a;3SxzW#iKlNFE$eBH=*w*i5!e)7Be zZNK9@_P-4NFCEYp@)IuC(SjcW$>x1;?M`6j%5K$|F-lxSxk z^G2KDqbn&QAme`xEZ8-g1fPn|$<7Y1Ykbl(&K@|O1DHJ zB5n^X_22Tl-F6QN1VSYko%v)6=nT0b8n0K7$vtUoAdaUKnVcFXh`4*B4UqTA%Fj2i zxeJ76P)Q>dDNCFJ*P8~e|A{8k?Z#agT}Ry?C~;qn3tYUpH(PKI1H>ppN+!5(FPA)8 zzTz{{i>UHGp)lO|VxwdP&wg(^>5+c0okGO1&!T`Ypi-jDVSFP4QyaU7IPKzmj4sof z+{~w!Q_}H`~ekZQIo6LrGcek^`$9|O4J%;bfaaBmZm%X;`)huoGA{v>(88Z;Odj;9>DaT~t7&M>7Hfg3Qfkb(8k9fdo_|{JX^9zSBIGxvINq z(tP5Yeh*Y`4+mV=#>l4*p*TDEkn36?$vwB7-23R}lA*2kQT74A69-yL{eZZEK5b=c z^LW18nLqnsVEtbq?Ef+O_0z_zqxhYp`F)O`+|Zy2|MxkkIo;6oJcsy%Zdm%e`2I1- zHSjk;vj@G1!!mC=n3&kpyb1I@27`3XgPV*1dQy54}HP f0(VttEL6S76R&ng?*<+?1={wtmwWkF2fz6*5cZQ; literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_056_dense_maze_sk_none_1057.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_056_dense_maze_sk_none_1057.png new file mode 100644 index 0000000000000000000000000000000000000000..27a52adf789b93eb7dbcf2209e705595f40fefaa GIT binary patch literal 21294 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 G+y4i^^;+lv literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_057_side_vault_sg_none_1058.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_057_side_vault_sg_none_1058.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd768116ff41eeff49ae04eaa6f753ed95eb019 GIT binary patch literal 14277 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 DlbfLs literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_058_winding_corridor_none_wrong_keys1_1059.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_058_winding_corridor_none_wrong_keys1_1059.png new file mode 100644 index 0000000000000000000000000000000000000000..abf7eca544c9fb3c6ca30e9885bdab12d2d2d119 GIT binary patch literal 18200 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_059_multi_route_none_none_1060.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_059_multi_route_none_none_1060.png new file mode 100644 index 0000000000000000000000000000000000000000..0165239fa139ccb196b37ca4f2485a8fa363110d GIT binary patch literal 12542 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_060_dense_maze_sg_wrong_keys1_1061.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_060_dense_maze_sg_wrong_keys1_1061.png new file mode 100644 index 0000000000000000000000000000000000000000..fa319956fb4defd0f8ae2743b8bd640b41408570 GIT binary patch literal 21235 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 G`~Lz=R%#9a literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_061_winding_corridor_none_dead_end_rooms1_1062.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_061_winding_corridor_none_dead_end_rooms1_1062.png new file mode 100644 index 0000000000000000000000000000000000000000..6be646de8b230603a83070a6ae6dd7eb10e3a44c GIT binary patch literal 17827 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_062_multi_route_none_none_1063.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_062_multi_route_none_none_1063.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb20dd3eed259bd3130f20f1766b39791d77cae GIT binary patch literal 17752 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 z zuV4h(B|bI4-~XvG+qwoeYO;c$ssU4{0vi=--WbMD2M_$BDyzi^mUd~nsKhK}>PEac z10EFusp`D8(}ZPTmg_%+Ht~-e3iip*tgZ;$Ksa#BlCNP$yLMoQfgR~uYM5cAU!FWG z7h)CZc7EW9%GC8-btc;*MK6>E50njyo zt-Rxz$yZ;}mcAK2-@_oRn(GE~u92$vn_`b?z<|48@==8Ysg~t3IvonAveJ6wVe4x^ zkm@3JI)+6sVC}%xi<7Gdz-V3=7@bX+E_F$4>_p77N;?~YKbJ`4I||Yl7>ZhPCg=H% zs=P<8x*opC@=iAyh|x0-uIA@&pSJ63`LfF#f-Al(G09RdT~W`UQ}|=_ksq4{g(kZV ze5_YZCJ>jQ$t>Xa<32OtzW>~W>jWw{fFmYvEhxTh%w3Z+$z;AAH+fQlr7m~vkwxJ6 luiLTy@0>wb%aE_r1fn zZ+&ZHvF=mFPazP(Mo&8!y`*wJTg`E#I(bf+5KSyWvK6>bzlNWNPU#&}ZiFExiBlXm!eAyL9U%g|fG@>D3gG*Sk_l7;! zoc4ZL?acW48_fg!*$w+r=TCh5b@zAQFj6n?ak{s8^O`S8E?Rwjue!z1!O78eBss3U z`0Ju?Mgmg&Ju7)RQf4PC`<%gI*YSwCGM+F;mvD4qR|;LiF%V=&bJpr9#vl0$nBMDe z0+1hWfIlER@@2oP9&J#Uy?=8+wl-fUCdv-_?8~LkKK|sN{b;rTE`9<(zGB6SNmJ6e zsR=4xq519M7C(mcFOV0|tD7K3oz{l0Qc?U<=<1uAVl-l*4;xp{P*S3dHb+w|;0wL8 ze&jj7$+6qoHiX;=rwuE3rMX1*t4Mlo#QT?--6rgks&MvT7`IK0paz?{HJQta@$%JE zyhp8Lmo>&wFLb)Aq}Uj}xf&*(X(do>;pXO|;T{{ZsF6$?#Ir3>42yKBvMq|6LPKgn zs{BG}J&=pA)#^m_BAXJ$%8l&LvnEZ`NTowboziJ+VlpfFmbwy!0AHM(oh87Vi>dQd zUhr((Tos|fJbG>uoKA|3&cfqu@eBQgI2v9m#1qz|=bscgm6k0iQe8r=8{R!A?tA?B zzzi>dR#RY|ZBQVc$4K`CMk$Gh@r%PRL~V~ksb#LNiB5x+vfLW?hhFY8q>o3ppp+CLOIQX(b-NfSmn(vGSsR3i10F zO>>XO#?B%;oJW&Mf@pHB(dO6p*2j7WYhLY%eII(mg}f8dxD%nf6QTVk)z0QAV7ZM&UO5)FBjRKo6P%rKf7QM@xh(=uE~$ z>A+g5G)`@Oa4#RI0OG;|6*=w`fFEgzCc+-kOBT$~oSTH%H_AS!!c81|9?vF{Nk+)~X-}wcWYIo*$IDE0 zdZEn3h#YWcSB>=)|sqWZI;e$Tox`AwKeEQF7+c?TM`6JKKbbG|@S*zQEz2Xl`2L ztSii9jDUJau#a_f%QoJ`T+JIGqN-Q#2LWwJQG*NHX2%rBMy?m$Tx+3@d2^@G^Ec3S zbs2v0H{|4%_t-49SL{My&sA^b)uKhUElElss>yDhnq-z(zlZv1{rd)X-~9Z1$d3-T zk)u&8ZbXLm`w^>zJ;EQbQ|?gF&`tr963HFuMvbYV?iUM^$q0sb3iTvxVVB~uk6t@` zb^_uMD%@zql^+w)rIIk|qCmkkUw9uYM7-qnAS7HY0WX=vYsvTaP)|KKbrDi|@}8rY zqzhECTaH%wAh-8(p(RF^g|tz)6*dxKyEE*7XDL%vgDW2ev)+kF`GVuXvQv0iUtd3l z;PGrw@|%q_7>-O@mm%H7MQqSBsNRNHW;}&Vb7xLgvW(H(b!kH+0AzR4QM%NpK?~==md3qQ(j$Dx44(}v+NgxaW?+qYYrUa!=4;Om@1#D>pgw8G{p z;sf=`^1^g-S!qsaw{goN)-_^yCz%w<8GY8KhIe@x*|rN?74x1pI#+M0- zs!O}AO{%MtUS6YRG)5wrG1XgQW%=KJk>?uRvbn__$1m~HA3QL+Dq&9I-1TNOn&Zk3 z28FAOJ3hf;VbO~M6i1MbUbGHE+PR-TeRqClZkl%6nMblJ=&J+aZXdfSD|jvAD!hzV zWv=->;o`)j8fVDcbk(I`PR)%mbs^P!1Ji?xDxji@uxH!6ltIcoti~hvaYmaPwMkCG z5w+4Xk0d1v*nqlhot#l4R-{5J5;01r$E}0$w8e`53#JDCYM?1aZ zUJK6Vs_$z(;C8UsRbzYu=E9*F`V)9XVN}EMg#E?2UnEl}?Qq=GgDU7cF{_O#=fe_6 zM4;M@k%eE>3H3?`JkyBUsZ6_3E;TIADXM}Vv$qGaIDpvBZQhAcc&jbtYTssm#`NoC z_&rk&WOe7Z6rC~-TztJ=a=K^K6jH(%$9&`vdhp=E;!$c-;yYiAW7NHY3I1kDZ3o`F z--@*Rke%dQ<^Ut_gguNfKqxLrYf7PQGVl8m?PNzB9Dd{XgE1wqE0lTs6l&ebVsogn zw|=qmR-}2cO^H}{LZD-2CceuFW`^2J=2vQ8cocHlNnNfqhTb^JFB{vK$lYMnl~>8# zU<^_l^$YaEdPs@F&Xo|WLK@}=S6dBR^EQGzQ+2)3LJ9Y~Q^L#59<^V^FxG4%ZaI;q zVB9Srnpt^yl(ggbRcFP7b+@aY&pJ~9mcX!i(z+$dLU_5UbRttqYtn|kdYDwJ25E0A zGKctEcA=R;xFda5B-~@^pz8NrwXqUUW~>IjlKU1nFflmYY429cbjW>JnV!Wn9x*#L zN*?Jw@Tzk!`r)?;t2}DCDaeGmHj^$<);Ia;2DPWvcrz^~tm94X zgawKvH9$|RLWP#|J#vum0Pa@mJF1pjB@X_vxJ}{V)FDzL^NnekN1|=7v5=8+8_J@n z*r(WDdTwLPOg(7B_UWGT4mBO=%nCIg@#ltHJs9wv8ILdDD2k;EVmt0J0DL*n(aKO& z=C&$8r=4K0T-K^L?~IdAW+ibtwCWkjsu5RtMe@UPun(71aoNOynd^p4X9nnKW|4An*TnodMmu5a za}>`ItqahB3cn|8ex*aSCL*J@zLGRTm}5j45WPa?k2mU=m}KF^3^fI~go%(a<;)em zo4wMg2;Ro4T(txGn9m$1BT=l#IEpWKQcpYP%^FOd^sqLvmrH<_HsQM4e~f&x&TtbP zwLrn64mFvMXre!LNSD&Y)n0JXaO?TMKt5wU4VtJ+%0uVP!>K<6K|;0 zU}EB8yF+nyVk1O}E;^NaX@y)Io(_nG&)KtMH!*L`&7SIE45C=3^!j(-sSB%ld_AtZ z27qsY3*&If_(9kz0WSKz`T-lsVuDA;+e7llx-KS1zUEo54Yb8s+F1)VwauE%W1ES4 zP&m~=V^&V+akLa5R=QT1YBJ_}8~y+fAmg`*lrk>=2v>{)tVD%Bo=;1HFYZMLWYtbY zBukq#(2F1Z63+?Uvv}%9g%v#)p6SNf`m}RRkgcYpNp8F>>Lz#(6!G$%U80+?{nQp( z08gj^A2X89XZFN+1_$Jd!=tAC5YfjaO_1}Q`jFG{IRNZL**4BJP@4k>T5}>sd|KSg z$dZNcp(&i6T2Lov5)t%jzf*Z9iuTdTfCxQH*L049ViFPz0_)yfXNu&pXtJ0s6u@1Y z-GXw$2OT?l%qR0x;#!$B84zN&x*{hFS{8-mSMBJUfl>CGz=p}fXP>C$l#4+`!AW)c zXw=v(HG@Esa3Z}YH#^(UY-|I@0p*XQfB0~IX8hj0dt=q7vLok`u}zG`D9oKZn?i@{ zLs>g9A~6e2H{x~bVxf&bltNi8jd?EWtX-p3cel6nIrWVV zgB$^Xzv25v4oMY00{e1%@iLUOYcdt5v8?gG--V!1`tc z*?F;=kk=094}p|1NCD(?47pZ_sNnJ8-0I!jR>Fj;4wsxtZ2I71%02AJ)3?-WoO(E> zs48q&FMM1i9DIkEjMl_ABocKhLRsBo6kG0wmGy=IEvc^J#>&8sGt3Yj<`3JvS2~=9 zzn_c&IM4qjl3m(CuqfG$Z%D$to`27gydPr;`*Y2(F&{s%5;imPoVh+aLZ@x(qn;n^ zixs>&)zlMHdWQuQ)K8B15j7Ly)UOm1NhYz}6#Tw~p*H;e6mqxlYyk_8Mm5NAaw}Xi zlZSd5TuZfTv&e4}b_LnkBKuO}R1>)09Tv`Jn6*NsGf-PjR8MrDKGh|qeFrox1vA*d zZP&O>N#R;pvFsXfAFirxB2bv@W@W&bi(%5K${sBo9%JO=cF`cH(JMFHzCi}}ZVyZZ zC_>tOcTiLLsEsn+L+KL0C*XA%Bs%Z{H3n!TLnASF5bGfe_L4n7fgsgQV}d2G<=`0$ zuQ~wuo+SyIiKVP2erb>wu?8p6^~rz%2Tn1c}#k^n@^2T{>j$^u-FzF(T! z2WUENZVF%~Dz>u2uke*4v-%T=vJ$LX4xDhu^A^vK!29wfF78;G#STkL+5c95zBE7N z%uH+TDAF%0H+Ons*FyUw0gv0FpwQLXSyGu?5s-z|w};gn)2-}oZ>#a~9CS1uHlP`P z^;Pn-)>hLCo>oP@*V@|Jj-WoN9a>vhSlC(8#Xsvg9fSZW&2Q0sSW&mqO^l|S=<2dd za?q_c0a=;hH4@sr0Nw2=nM_=-I$;h>1@g}eLg354t-|!@fd9Hm_y1YL74b*%l1%i> z&2xb!K(OVQ4*2RbgR?U;9le-mX?ogzB{8Gi^xAwtnshZaHA@A~!}|>a76!?f_=JSQ zT+_%h0d4rR7^$HwsQj}%2iE{KDn33weD-D6EAg}2w{QCd29{-G-)dAlfjI6o(b!2V zjB<2mrl_{}_xB^o@#}nmt|mckVTjNoZ~*d=35e6J+qO;4*SlUz9UdOm)6wbeIyRdo zR(Pz814oophWxY_#>dB7(6#t-^Z11LrFlfya%=?jXmnO)=1gS#4!V@)6c z%wRCMbVH;f*lB|&683QBhiL1JUrXKQABNF1Ycn@PN^}&mWtrip&G`S=r+*1G9*8gd~zFf7|J$mYqDC+tN7 zgOBMwvR$J_^Yqf~ke&{bngyOa_htBl;>52^O|y6J-rW#&iF`MBSZ7JBr>C1=m!cni*bDFaAQ5%GD2W6kzu=N?$ZyB4GF+F>pZjse`c1l~f|sF- zXx-;E!!TX2_sY9XvNIQXbH{CLwpawunE{)ircYTALO!mRy>Ec`mNmXXbTs zCSM&Oh8^c^VqiH+kSvSBsbcK7qT?(M9QI)c_u5LH@eBl_Wv~YFS)%s7A+sD)>9H>% zFYo~JT)ZfrTx%QK|0FJStmA@_V0$e*aqj@&ls2w^a~XvJy6C5|jq5Pgk1*BdAqPgIW5Xp3SFoGnY1hSG;*; zvs`*#S>uHBXk_oUgFepTc0QgpRaNJtP3xA+Vu6jnjjMx;%kj|A&{s`|5JdyNErwT= zPu_HNaIgfbvt?yv<&nW>CLNb3og*}ZE^vC;1o+P$X$66^!KNOAl2rMnICn}gT(l1gQxfNaki z`w|^p_Dc3rQGFPYE)A;tzy{b~D1ow?ohSkIqMfnvK74o>uzKQ;8KP#2?F}ly`TV=ZfR3is3P*|Oh z4Q6EWFNe$OCEz_>CG@#$kc$uk6*K&In4rjwhHd6?KT;J-fRjXFTDd|K-X=!RYdIgkKni*)3S3S1+*YMVIsb+7l;_!=izm(%-!wYWr=fP9s0rvSt*%FCB7GT7o< z?KIQ11MR-U^URq?ChXI>Am{sQI=U~@d7w_5qv=(mXh9DMR{+Q^XU3-a?)tvCl*85+ zSx+l%+jcbf-QN7p?(V`{w{8Wx-6tNmwk~+{=8c|-NrMc;0_jH}Mzmm-s=xcf~*ytl&S5=u*u%kp-ElgH3{UN_;Yt`>5FaAc| zWWSF~{x!L5-P*OA49{}8E>2DlyGLBSq5}T`te8`Auxfmt6%<83?6tNaU?4;}`!u;I z_9wwikMm~gTPJ@X!TxJ0ZJn&g^xccu*{}yx zb}p=$bFz3qZ~y*pU*2r%2=(!4Gw}<}W!B4b^{?dAk?7Ov(+z$kW~@T4PHN5f9l`#W z0bcojZ zAHQfS4=a%nIp4#aV5n*6`{CF7e^H>jG-@WVBuP5~O_VQ60 zO3ykw?}QINl5y>SKwHETm@_ z_7yqbYCFn{bgR89z-+T~a*hM*WxE+ge<@)dyR&4S=b#GD7Y{rrZ3p0T z=cc6uR90rDd60{6@>@izr6(Vxoh+>(1(|z#N}J48RaJ}Ze(t9OV^hz}Ea!-Y#gZYZ ztE<~$_$~O&E-~}RE)PhNne7h)0;e*6;R-k|4V#jZ;u8~N7Jgs3b?4vk;AKVhygzuV z1KhMf1PB^Yj@NGaSnkl@Go3!rKH4`mHH9Rn zt<$em29_Myd)#u@EJtl{H}v(>3@&RIgbddPAx4^`1+u=GM}nV_Bc#^UdU|KcSyob-)y<%dT<~g4nq)~>30RoILxH@SXL5OB?Y(e-+$~OG0 z2PY#Z$3-GKVtepY$d69#8<_4KRO3!LmkW~}eVX|Ct`g7-T0gW8#KLd&Kp`0FPXpwC zuKD<@=r8K!QU^=@kU>|6q6WT0n`{Oi5-Zqvy@pUx2?`5nj-fmh-dk#4|FQ!zcDVzREKNS9Gbi z&pt6(AMGEo1pJ!v_!HlE4r3e6%#uPECJBU=mcvWYd2Ts6G1GlN1@v++$dU;M uWTMdsR@wm+U`*rqw5;AK5ph>R`D&5#T(Kqlaw{l^r;J`9A<-Hl_an literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_064_winding_corridor_kd_none_1065.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_064_winding_corridor_kd_none_1065.png new file mode 100644 index 0000000000000000000000000000000000000000..197a61377bb2a96aa5b6c72d6b45157e84b9df6f GIT binary patch literal 21813 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 Ydov?+OPp&sERFh$y|Z2MHlIWP0)dBTEC2ui literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_066_winding_corridor_kd_dead_end_rooms1_1067.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_066_winding_corridor_kd_dead_end_rooms1_1067.png new file mode 100644 index 0000000000000000000000000000000000000000..24a16d164a2cc10fde9b9a3d052527838d534a39 GIT binary patch literal 22804 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 z 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≪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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_068_side_vault_sg_none_1069.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_068_side_vault_sg_none_1069.png new file mode 100644 index 0000000000000000000000000000000000000000..80a83fac3e2bed998861e39710e69dfca6730232 GIT binary patch literal 19512 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 EKYMzP;{X5v literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_069_side_vault_sg_none_1070.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_069_side_vault_sg_none_1070.png new file mode 100644 index 0000000000000000000000000000000000000000..430f27eaa8a2ecbae15715c24be507efd6376314 GIT binary patch literal 15688 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⪚%Lsp105 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_071_sequential_chain_ks_none_1072.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_071_sequential_chain_ks_none_1072.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3b3b738c52d13cf36018e896b851fa31ed44b8 GIT binary patch literal 25317 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_072_side_vault_sg_none_1073.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_072_side_vault_sg_none_1073.png new file mode 100644 index 0000000000000000000000000000000000000000..738d6b2d7fdb493c3d64a1e2615d2589efe2d149 GIT binary patch literal 17407 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 Jy36~A{{j{Zq~QPn literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_075_side_vault_none_none_1076.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_075_side_vault_none_none_1076.png new file mode 100644 index 0000000000000000000000000000000000000000..cb53fc6a8ba66164032612d61daed8cb075b8a74 GIT binary patch literal 15670 zcmeHOd03NI_Kwm@U74yCtqR&!aV07Wf`n*ssUlE8MP!MJfXFHkwva@NORFqxQ6mHr z1!a*X0YCY&s}!Soc7@~2m~^7_h;MPAdq(qUy<)k0q>lh_tYMIvy0wwDB3+dAUgJFq(8*@ zXmmtKcyvh6u_ZD7kx@b6VOEyw*I8~}v*bi{bVQUL6dL-E->?ji420hILbigdOpW-= zGYSGRoo)D<6i9pq{*Hal?(N(5$7PAwCK0b=ee@%);;?E~ZtS^ZJmO63vl-`(-FvS< zv+Lc9)8@~;bMbQOl7i$VJLsdNf*tSf-zmu7x^LUI_ji7U-RiU>qB!TXyyU0v?Y(s3 zixrL2=J^$#)0$2B~pI zg{jvVetK`E;T3&nmmwruKl^Nw;k~I7Z!TT>F8IfiPi}%&$l0@V!RzU-zn%=f{cSdQ z7zpIkPk-q{5lwL&MZO2}^75Me%%s=Kya{e%Bnh?2Dsj+@b8->nUa8^A7CUAhka0PB zEyp=}FLmq|^a@;=4qr)1xI9vUaq*sv`J4}7{i=&9@%SOhtE^lEExbSoe z8a7^DLG&rD8*QTUCqpdSsObrzkccg+Op-D)lB4dc-s|d$m%gLQASyHXQEYC$xb{K6 zcEntNs&@RU#xLyi}x}u)9HKo|}b!oIuZaDI$BgQ|i72Yn&OiR$xWL~t6zkltQ zjZqEoEMsdKQ%P#9UV&ve+pya;%B3dppE0G2Y$I>l3v8Jy!%;mwReDjg6*DA^Nq3N! z@pGr-PPeQ%QXrWFnc|-|7vi!28h3ws6CJJ_8KuzF6fSk;x-xMBi*nV%VdN{GKNRH| zub^<)EPuGH(Dh0_Tsz==H*Wl)xi9!{*UM0>lF_n@&A64o@al8(RghV1VL3Cd!K%q{ zQ^aAvfPg$(i49h2V}rsiBDD={d_RBZWwL2AzHcmV`K$JbNNI}=j+w}}Y6;?~N;r1I ziI5|Qe8$L@{Bp>bqp)z39Sc zRzzj<85$h2dBM;(lkXj>mu5>s2rv?K>WRw3Ezq!viV9w%D<)DYL+E9E&wk9Td1_Pa zh$-(>8p=BgCd1K;9fr^FDoNG zc4G?l(=<%9dj9(i2E)Q$QbCXv^AkDpP)^JxEQyxf>DeC08?@5MmVF@OnR13_az6Lf zjpA@jtWLVcH&7AG;<^sqY^^5bV^X$jA8EUA@%HkvwE9P7>&~Mym}S-Z;<91B4Xrk@ z%?9l*g_+yO-AQCrCpyKedpH<8%U#i0K%ZF{T*3~sAr5j(O-;k4sKJJ>;F^bU01nT< z?2h6TV_5$-o(ERu!RYMlJj6P{>Z?Z?Q$uF1VEbLyJWkU*j@fS8c?;)D*3QmWZOFm2 z%PYbzE*=BHnRQfu6?bCK}Y&D`YHGe*W?BjH3< zdwvxY+wG6rq?h;af|CU@q^kteJCYhZG}Kc~Qc82pWCg9@k0d-`(6pj(Nmk7BpdK6v z>!2NLtJY(NU)*n1_bI41Xc8$CPOGKj>RvC~LJ*u^7}nqWa#rk#Rz+tuRW>i5EhQ*= zsm^MJM3RN<^vo_SEEHiWbeQ<5a-0tDlO|9E$`{7)8ZN6;S|})#+WRVkX}q=J-MVUX z{fN1w7vxtrRcuJ@77oSS1T&oUurX^~UZ>$fCHB0Pu0c9)J;G$MUGycr!~jqjlt!iY z#Wz?H%Ft98O1`nW3?tU{oHO<9vW>AXGKh% zHutc{mH|w*pPrdeJKD6mnyF6HkEd-RNI-E#L=hxvs^n6*qYqQ2F24Af3r(%O6UZctX0qz?ys=stZ}{cImWo%%w2KN*;99oC zw8M;N%XkoWQg)}`n)W~?ZTu0`nwiCddFfu7>u%J&oEhFVG72&X+dVYNjrf7Skf|=St zN)qT>`krRR64Z6)%H&r2}1Oz2NXxhpcwSl6)_*0$?pU(bIGO*7FNr$LH#`u)ci{{OGvNf zPC^*udfPx9e-kN)5RcJt&CQwI?Wmi*dYyvfAOZaLvmWf3xA!#zS!g@&zZD zD?4eR3-+b34=##9sU=7>bnV(lh=mXrYt&81x_N9av^@|vSRs2@K>tu_2o0Ypo4*tZ z#c?}~{Q9_NivD;dO^K%k$&VL=lj_D3^*0`=PQphkB~KfYot_j7o0jR%d;t7!xbQo!C;oL?@PH z!u3x~v`K^vsZJm0iP4APT4mXoe)!j@?l_A5wqB%gaLi#F= zPnQ)Ke_lfC?Mxy8grTpDqPknoho5^eyil#tS+m)!D ze9?uE*&u@#(^|jzcvmJShF(aD+H*-6cvhmbkzy3iS3T5ppq@9Lzmxh2LqrBLi`tiDg8?c?);4GZImd1Zk) zww?1XM1uuv%WoeiG*9=@7^o&R4ajMQbI?lFP()Ev8;)M zl!9o)@>4koNLnn5(uZ6_yM}b!jjqOtLkGnvqt}gL1@X9VxgEAh?8*{}+kRp;T$iEt z<7^YeZMwG~nRX?+9d?*{IGWWETHjoVN>FGl9@cbrTu(*k6Z|;$1##@QR=8d>?hlhK zL&|(rLH08_e)Nf9q3g~AGp(_ikOVkG+%cNz-OJKfe3g@<&V-8N`cEbca{%{MX zMK$}nA4w1=gAmNsUG%0UWLj4$ih0pDI9Ep#&;8Os-Px}Wt+HSkZq#h#%Uze-T;cUf z=@k#(ZmIpIX-F2GYpx&fNp@!&_4_7{JgQ#cV5X>{hw7EvgYTf8FQL0nKApbpvq?wR z2pRiaZmOsIkhq_WB`l{o)*LAvT|{K4Y= z+CCuzPe$cLEA|$mQlcH7jkMZJoB2@+9-OYOC8}%ZQ1OjM=HvH7u@wV69A*F)Ce;U6 zu#;*#*R5YET)#=Uey`AMGbz3$IDsG#V08k#q}J@oU4ZNbEb@nZUI1I7pBWzK$Q*9Z zJ_;l3Ml0E0)yYc2Lw)=9v!Z6MtmY9EbpkoXQ#%UPM>3aqa1IQl6E(-B0t?u{?w7Gs zAQm{VFo)`1ybE37idD7Y5&dbfdx7lS95bt1sNSz7npR12DQU`OVUoG#$eg9*r#E$z zeMlrsz1YjroTSU~VY=8+Tk)|6Rja0e0yZtInH2IKrb9y~uoKWQV zq#d`zuxYQwAu!6+s6B`e-8c&ds%9OsTP3Sm2u*xB9S_&Pg6fV*VX=;`TFpg|x|}*7 z>w^BCP{CE*L~Zx-g7)ecr8jcSlJajGTbAZ` z^gKs1`o(?D_3iJuas3Z)G86KRV2Ww+vg?g9cAYS$mmPIm-Pvy7zP%bPRZ$;q&~0p% zH{`|50m!}i-qBBY$OibLG^^Ilxlw>pjLg%^zuaY?6ZLSWO$dTt&ae#DX$^dyIhfeZ z@Qt~|;0(CL3f~aekIj{jzay|vOUsy9X7)8`<-wwkS_7xB1$$c9sd_^cc4t4*Xf$g} z^@}BO^i+WsJZG0J&_R5TD18Nnrg+g zuc(NX^oeK)kYm{;B_(tE&MRnoZI1vup%6t_P?0*iX;}T*Dz0B3Qd}#DDXo`3rONvSsUK5YnYfmv|P~ zQ42<6^w7xXLJ_9Polwq=AME?cT=nEa(}X$$#I-2CdwVw9;2rSUiDcA_p_>FfV8-E5 z*Pq)d?9vm4E|N|6!pvHnd`G`MLrYUtHOrRmksVrSJZsSj`N;x$drgT^eP5qYG2R+W zt?15u`IT$pu?o5iTIsI!*86fWWHWpo^{zm^t`xbcKr)^xSph^Jua=1pt7s7V`XD9g zWS`CjouSgI)YxaR$06*B+Z@~rdr^>UFckxP4+)#KhaHutGw-aA5mqI(Y+{Abj!%O$ z9KGFnxh&D&V3)Wj1G@hYr{wg6c@hyR+S14}hER6G#{Cr{Pj`UBT}`%vEcY0EzJsi= zWm}|rpUGtPoeQwyA?wZ$AbYKW5i?~B+*fHLz`tm4!>%+l_7$n_fhqNgqBwPtty|2; zgVP|(@v))_`^L7*VD0>ZnUnlVlt!xMXBrf5^MRpN3UKWvK0hxbBLiuDGz8E0PjNQu zxs~A=nBG_w6wujyygXDMo{&IpW-?788r}8;z6aJYJK+O|@&#+wuFdcy4nAsDaj4DB z&0!Mt@!;m>og+~kJ1eWfkPYU3J=QJFb_?|}CwkUc_y<%5&S-K%{WB=PaGSr~a{`xr z`=Q_M*!>C7J8`>hAiC-FRUD4d(9m$*l!JUOiYeq;TUk}KF25AoR##lsC{?j&)WlbF zh%3CjynwTnpA19kI8r}@v-7Q!E?XnuZjR8#E)-54(50@Owz~dM8m#fb!AK>wL z|IpCTYeiiL0s;a60E;W89`D%*4GtM?|FZn<-Hl@WsXgR@JiNWb^jf`yn32)F;!t3K z^|ZFOHX}q#!Pg)M4$qr6?|kh=pIZ(~ieEN@YuMq}R5?q_8ERV+;NuX zF&FW;4JIuAj-eWKm8L{54OZ*-iz zQd?Vl#*z|#4O&-Q>j~^X18)5T0vaYzyY&rfJ!Tr2*Q;{5)CKvMWin(M^HZ^29T)&W z->h6Ms++~7rB~0LJ9o77m`5SAxMTP@NT6)zc|CdYo_^^9zzf%)tZ=ITMI9_NP8aiHAEEsNC$TQKEDST@_ATfCOve~Gtg z>Sif0qbCCRS&>}MOOPxj}x4P2hI77E3sq@-+vQU~w$ zh}`I*KdimAJ}%DAo6OT+G<@vEYZ{yds_qw2CRdF_BXFAo=6)feq48NyjTL$=0QSOn z2Lb>1wL3!;rTG0@4%Z0pEaaW&ro@Ib+YXBk234bo)_VpA2U|kzLGy-=c6V8T3;?x% z{RB%(4vo5#(P1&9#SriWf@RW&KiWAAsW7kVH>JX!IfUi@0r`_BvK>%5V|)gOsjjH0 zIm8zT7)u&x=Bq$>@2&jw4{S#N%zFKD2m9@ZKm>l0;{0Jdu`?3v1Ph*wjz)s!?EJA; z6c-BH64^UZu8)^}SFU;O?fa$cr-s>=A1JL8M=;wgH!F_VJ~7irxw9`sr*EimKQjTq zj1YWMO9eZ{6Kju@lK4x~&1J`l9<`5g*jLjd6FL*+G^ym@bg7ACG7Joc3iearY9W%^d zWPS8MQcwRk^Yf2pM`4-;5vzu+u4BI=NWj67Us)Ow7Iw9=veH2RLH4|<^S3#4%S!O8x;_e@y>H8j=C{7BjY;_uzK}sGrX+vjiQd>GEcjoAx_eId3&#s zN~K2L&(=>+$YWgWHYiAex7)+No4@*hy?gx{->BCzKQAvcZFdCso03Q#@&bwwbHCP@ zaYjB)#NSR^UsY9Q-`bz_MwW^ih?DXs!;Ms|la)=qy}etdeIDoU{Jew)M9Jj(VA8zYtyV$FLX34sKvQQvVs43_izbl7~4GYSIm^213xgH zKYzZ?qpS$fn`;@s^q=#%D#*99>v$M$Q%<{aTl$gQMQc$Cu_*p<5qp&=M$)!32#sa~ z_5JS*)wjrh>-7GXk>P))=U-VSn+1-2$5P(Z=4%9k*?2kN{~aA2<#+C^GgwZ*+I5cG z@WU=guO*m4+#e7a$oOP)qI9RNTGi)j*3z8iK1&>a<&>AF=SWxakBz5Sua0F9iRS&~ zT#m^HAT%%LF8!UO*#C^{ZIZ!xqva%9fPEvdM_Z~cW(B675{a@M!1`o)XJT$Iw zG$`K9JKmg6_z#aF{P#e4;>5+hM#Gta-*y_~uN;E6$Tu|1ej54zl?(oRj}-ltLHxU( z=~p2Cb-Z>EftWbPv%9QgC2zXTVp05a&wR;RR9@5HuVrVi#d$|I)`T~#ysxEwKe3bh z4b^P!e$12ef&YylL}-V?MWT-HKc_uGruiMjlxHYkI{d z?*;#u+E~HioJ0rdiv|ATx^6?$`oSojv=-rz=;#S(&7qH9|4@9av9t_>_stIis;&ms z@nvL(L<6QI>~%S&my6(|`zj`%?#W1MF-Y9MP&eyOZ5q8bIe(@FY;QPK#Q?m*_NTA~ zxG~f)(OMJU`n#ZCbp8wg+|yH>WcMbOicAk&`ooUe(S(GA;pwsG4TV_|F!Fxuk)WW) zW|cQIpi?gg0~awU4%Evp!1^LlYw8-7b{eE5E@ z>wUf7@9X+_W{;bz!F$HbJa0rWFZ$Zi&AL&GjNwpZ_q^-|$mU^# zniI3GzSZ>kyOnQ!Gs|PMrPYFWz7F>|`FwBNhab#xkLuX6VE(+Tcc0IC@8;5ji%y;V zHt_8a_Z(RAc5;6HuCS*%R2QzevI^pgg|rVxI2YdPI7}W#)@%BQ>x5YK2$|`S?^X-~ z-Ca4-C4CD7`gFxC(09D$^FUv2+x`~lgN48|*mima2()n7KX<8-G+Nt=DNn`Y5%pqa z!(^*&rd2}5)j`!&P>EJ2pGuQ2R-xL0G=Uw$9U4Kz!!eNK$#ZWXV3xSM1nE@V?4aq) zpf8jZF0JXogKZPr6f`*oo|B)y4on-~%|evN<;R}&@4o6J_DEm7C@5)kUUp)4pBWkJ zUp%guZpCSjv2?wL+TI&kDOE?6zBJ^fQ^t6g+UCfpDy?Q!tqeir2a%bg8F=}0f&2>_8=LFx!xzJx`j!;aW`Z>A zpfcBfqkU9UUFqDw=p zB-s45Z=px0I+@O-)b#YAkufq|QDzZHPRC9ZiO}^*G*zhUZq;-j6su z_nv}rI*pK9+_#%_c zxlX;aifI;AS~^ViG&{?D>ZJK9ZoO7Pt!Mf7jAei2RiZ_ue& z?K9l0+}yLBW76PIkg~vZbt{Tf)s%qYCLrWN0{_V$=0a{J4Q(}dkSHZXZAGH5tWX{a zX`D+XRw7ONBAVp)=16 z<<8pPQt@41AXJ^Mdlq*}rBYii!~Cxt!XgD3^^W zup}6>0D`6ng%dZxBXz*i0_&y6iD-d@qSIxO>qNlE1N+aXNnuKg_u#iyNe9CsB1+W= zeL$$;atAp^j!y9M_Ewkkzg+~Y(Z(qVmV9cEvThLK*qSt8!v%t*=K1$)C|vYRrgoLz@ogOn;{hHx6iGpZ3qjswr$XbVi0{(BP91 zI8Ln)Ng}z3A&s&;km`VYF&FnFAp*@+>r*=4U#Q{;RSrMFH?5rs9 z&W%IxMn^{#IywNK?bF?Z&RlyFyOw*Nngs>giDF`_+z1j{KO?dt1_@a~+Oc+6x)MNZ z35%vx5QP((sk8M{XMq(9JvQ-AuLx__FHmM)WzyX{M}U9e0-e|jy<_&CLb%hiw*OeR zjsw?lZ0`@nZyi%{>#>9P46)IJ8HF>4m6e&9nNhtRP?ciL6{>3E`fx=ekphuZP$1KX zw^*yA^w_S4$DH*qg%7o#D`jyFMr{g4Q=@L~7Xk?F(3;p1$03r1E|Yj5I#r_dr2ggH ztu=Ed*91*BMXl;kC*9amDTqptA<5LTl$rUk7vHpa)5kIuEIs-oVWZ!B$IF>6=9(c_ z?(Ex^^|x=|c1{L1gHN@FS%p{oH(lq+lJF#61t zH7!q{?p0P&HrLOLvAEgxzVC7@z%;ctc#LMT#&)kbM1h@nE}0TZMkcnDxOfRVx%OU| z0h_{Mr=iV;e(5(7=;Qg^nvot9Tb-DZ+kMRj4CdOSCWcf_bz@Cy982)&C;2^-B!R_# z#EitK+7LI@AoxJi+}>xN5hlj6`Sj^#cuyjq-$TOIThb<;wgk#iT!mVrAmTK}EU3h{ zRSd%xnFwx=vK98>bRg{z4JBF+!uhti{zvCq><9DO1$&@+=zwXTFRGt9 z#^TW86gntSaQX4uIU(xEBjSRKs6^U`@lF!}VBP(Mj(*A&OXYp$x+&C(>&turBB61b zxMDa0!wS_s%453vIbXtCpK4?Y_2JT5!Et`r>J>p6u{UvUgJaKVT02bk&3wxtOK&bY z=>5Q?(T5VWN6^I8MfyDgw^($ssz&J?YsVa;Zx3TGL{~-=$rvS7h|z?l1!;G~QSGV_ z&7_oF%bs6JNsw=o?B80G)|k`bPc&Yy8HmBFjYi5GJe35-G{a&RMA5h%Zm1hYcZvII z(_AqTSZT1i1TEA*a%ABXwkSLa9$m7cX7j=LPSy%vSB=)|tn)mPE1! z0CM$dmU7^0jD^fl_rfr!Z%jZ<$R2c70$47Ixdv=7Qw?*^S0i?{Br~DfQOsZrVgC-uc7m)@+$MT}0@9EGe>$n|Be3>Rd0TCPceW89HJdlef$ zRqWni;ZMd(_AA_u1%Tg2l&VT%d<~nRMqWa-X5!DG_V7*Ae%oY2MP~(YBWL}Mv0HIP@x187*|u<=l%o}**5>4Dw(9ufLyF}vgPb_ z?_6k&iERD*TP{@HBD+>3AJS~)qKhM~9-}IJgw6c{bi3JYEwk$Q=k zBw8a87D`V)XBK`mwX2NFKuGW&tsi>_v}wrnzRAPEF*n>!V_)>%Q&g15FGB)zO&d_q z^z<_YSoG60Z)TAYHrQM$Y2;MV{cCy{pR#ajGEU9LI@cD4#g&_ykG=d3!16Uh0gedZ zmu$(0ZWH^hh$!?3>1(-j!7&IbyD(xGN}NG}k}={Kp}4dc*B#vEoI{ywuLzlGIxDvuJfFTh0Bkn`ZzCmoMRf>MwQk9{ch5(i6Wl-2zeYmtf zK;QG3T~Xj!RuEi1CltQ5Yd!;&DCpaBYJ6AS#UzTIY>5Le`Pn`beAN}@*gj3o9fzne zv_R}iR5)W}ZLG|rmNuvw%`Bc$OPynX@WHm`V{uFI)>g~Q- z;8;F>9O0A>ecU@Gaz{cXW>r07d{I>zc?_#aTU0jQx6fk0{2f{_Mv{BPZK9_8_?W_T zWLc?sVy9!r^2ChY^5(A<)}3;L!_jv0cC=7n8#xJw>Lr14N|%lxuD}7gDBP{l1Asu6 z03?d$G#t6f#A;CczRmXhX9ni2p?gZ^wBU=G?; zS>tfzBe7Xp4=l~Iq>vP+mn&+FW?Kf9nWh0soa;0|dL=TY|8zwpK(3%XO~TQmM>Wm! zn7FI%ng_W?(-35704p@}X6uO6c6i+zewm^qr3kX*Q3V1ru; zeYVm=*v)ZFu5q?Z_b!~G0h|G*^XH(8XG&mMdg|mUi%Ca62=luMzu5J-qB(lyyTBJW zK4bfdq#)VYNFnM%8DGGo4)WAfq=V+>zV4rU1|<_sDkgUT(qt&{WxV-4-@)CG zkG%|dst4l3=IrAXF@`WsQ7Qn=6|AWQ@?A&k3SrjU-!#i=H#y}%#*Hq*#bDA8K@MMa zNyLmlW)wP}cOcQc9WT(%BdlWNA06yD+>o`niMN_Js(*l`g{zd$0B&Q;=sRUT)5~@? zF2laZ9CcHk?zd=H=cvY+YHGcj8lF@a1lc^6GxOa8BYU<=FJQ)0BE`063QsGP#rFDE zjI3RAF-N7*$Z@)soITLQus(UI@_bsc>bnQ1y%N>JBwFDx=E1X2=g&qDyVtO8rvR06yMpo{|5mp)O{0WqS`0zNjxTV1; zf2l4)NK`G%QiR!IFNU~7c-pE$jg)|iID(mB8_w&TvOc46yHU`&Y0yo9xH{TBb#OL~ zxm{i_X;cO&Zh7a&LQsW6o`VPKGaeN-6`3h+Dl(oZozJ|R+-SBV`B0x30}H=e!VFU^ zSWnd57<_l>gW2X&cV*KbNP14IT)t6#*rjK@WBnG;+JM-`&x?~1#SypAAW6(VMRy9K z^{C(!Qae4Ep!|db0pj9nNA{)G)2Q#WDaA$f2$+(=p*>RAiD4AgKuIxFGb~A27O_t` zu+GvFsocb&?Lt5#JF^s@t0-aBvXEO68e3d~5m!Va^2Lo+l8O-E<#`plXXe@~)Rf`F z;xA&wFo_=bjW5k{;WL2h;Aj1&ROC<$$4q8M(2Ly$1 zKPc#fxzF`-_X@(n!^W59<&FY!jELTK6ykx>s9KJDqzG4SwL;h^kp# z+9g7~Dv}Rdt%jrde55cCd&7D4LXcaE{#JlyL+hD02LjovdHf7@4ukRBt9g*BCs3l% zbleQv&D%3bT&}~}h;x^SO;DYFH1|YaYERf&`3e?`mD@8rNVsw0JRn(0%Z#Mk8tnUQ z)}KT5H1yOOy1QbSi3TmrL-}*l%c^-ozT19iV@OqSby#ab70LOw=SvswL2e`n^c`UG zfIi#uA?U<+=iUZ=`kCJ2(_c!)nKhoZqSvflx6UB;W5=guQ3ygMg>p=qnrjb!?&O8f zwn(g~STQVct zU8@K8!n)@C?1NtO+5frpY8UkOYC~}PA23;8S+Pqb@ecVBZF@iYh{ZH!X4LpP8BQA~Hw_z_rRr$n7{*?F5_6SQjQu<=@VUt8Hv- zJkC40CHCmilE*DA3-l2LM2S)uM?^>ETrTJmvw3!w{xzjZ5)aVPvTl?407$Wb8~b3;TczwSDY$YI9-g>xh9Wpgbb$?23RKQK4;7axts>`L2qD0 zzj{W0*unlk`G@B#+=|;9KUo)Y@Zgm@{E_%kQ;FVL&M7Rk8iXmkH`qd|*@UXd08+H? zGzU!I9~v6kq_V6>>AM=I5 z%=%X&?-+lTU8lQH2E#{&g@in;<6rY4h(?XqN7)C5btgCHv39$;F<1*ey0CNS&JZLL zd5+L|-fZ+c*NcHvWF}y_7N>p_9G*XxxpfW3irPk(TpSGy4*4h`QIsjVMJRt2VE~!= zRfI|CUEqmxE8?DgyD00-nKK(~ZH=wM%^jXv!d1~a2n&iBoE;)8a9Q$>?Wa~$=?3e! zLCf#|9&o-1czpo0Qr=I8{LzNW|Jrc;HF#Za4qakmBEjOnX>jE>eU)u4M)Teo99e_T zEgDTKa${Fl+s0Yu#UW;#V0ixROL0Kad0ZP%)V8Xez(Jk;T+-c@17}yoOx&tS7eBUv6cvdEWau#T6iaXGOK! zG;vM&TDf}SW8k)T7pzz@tNa~j+>2;m2#Lfd%#yC(azSS8r4U&kK+ALLZb2NF8)rM7 zI(H5I0~W$~4|Kq$j+b1H`T;8!RZzlagL?O!UJeE=#5z1 zd%;}ep_TP}&hfCXs<14?~>FeXOY6R&Rn8ZA0mm8vQXFMF1?B3r;N@U2o zY@$-q%QMefLOYa|^IQ1dlXeOC$DL(mWjvR+`6&)aQdw@8G#2ktw9DPyl_fLlMY8^m z)&Mx~Pcwt~Wo2dQ^F&a?hL$s$I}PGmM!KpA)RV>^kHnS&?L{T6v@POdXq7IcfmB&} z$Yf!QJ)e_W@e`OMPB}X|IzHMj-9A1(E&zd%jOIKO4O0xXcXKXZUS0J3$$2CXcUxyP z1Ndf0Xy{5m_|CICp)`IYB9zX!9yMvU` zQj-%`r1LR-iO=8v3ZE-*KWOp({{G_$Q5g~Du?$P@k&R6g6Y+PXvRP5&((>{wpl7qW z{E+LhYQLBF;`dkhEw7CF!R0IJ(lvd3eHg3ojV9N5QXKDgS!wB%n+@Xjqt@l^(@n=_b9e){}qf(kf3+&yamffnu&UoW#8)JZ8E|J-M-Il}|vx z9sIkU&i$!@QBhIlj~_qY#!6#^e+mLcIR07+{glvO0%H&BohILC_~E~GYyQ~@jK9hv zUW-uI7f>r~0G>Dm^0q}^d@PiYG8lKtj3(INN^?|rgp zQRMQsNQU;odbzR&n9^vgEE+X_7X;#`{X$Ux6h(j6*nibaZ>~E3dWfeeO z001i0YmO!0U~q@M_bZr^Xf;E{KbAUwYowms-Kz-!&?Po@0}T1Yxd1=E)m2qhrve_P zZG=LDR=$j<4liO8sS+TDf*(x4!Q_m=?kmejDs=~R7B9*;CjrV)l-ktEb2-dUp`2on z*qsLL-Q58|=k-jMDW3Z!2-J!EBhy!ZX6_@y&c;Mmqaw-z*v?)qZNKJ;sr<|}MblGn zBUdil;jQlUOB5CpR~15!*DUpyr1sxT8fK;Fi8&7!o%na!^}&UB_IEP?H{56px_dM( zb%h|iN>Z>LbfOt}CH>4&c6Qatb{l$lXfUKViCkd+c5)DkV1)PHj0-7l0hLAg;xS7TxiitEV-l!3iU#WK}E) za{jK@!V7u(@Q*NPiMaA-ICXEG%`Je;)f-sF|E{7A{b66)_Ms^FWy zrKm)}h*1d8N70*3Ewz+`dPQ|9uEp+tjX?(B^5o^EW}B{BA#pkSqp%0;L)I$_*!zkC ze)Dq*Xb--dM{rmDTXC-#<&J4|Id#TKd@fAo@*@=zm2h z=?8BYo1tHs!vAh;`PX|2!N8nx#yY>I`}emTCG&@$J9<^|)&>U$3y2=kQ$v2WLt|S3 zTd%hc69SLhSOD)Rp^!+SE#JnKr~Se&4*$ul29f=NVLjH^*x0Au70avr%A&S$c0k|j z68S7KH#Fi&NlM@>U z=Uj^WwYm6;4_^NKe=;BZvjXm4p|AdfNN+fu|7Y^UHz_rLs*fO=WxVx z$AKwwo_IeGDeeReH5T9)UumgTJ$Pt$Xq-Ry7Y^Fb+9Ch2)ExrTT|>G_MnFe}bg1Q} zurL;q${10X1_lP2fcD%S>5;n7d7!(b<^Q@;^RLM1UvB;31kz&1hnZ`bO)q8L9acr` z(025XK5kEpW3e?1na;NWMHnn=+@Tr4%_twGKFOvh-2@EDY|Y$kfcgJO?SUSVC=1-} zFH4kYt}k14a@qLCPY#$kk~m-J5Dzm&m_qs?g7-U}Cr_`qTYY!X(9Dv+EMGZ390L___CU`Onp;~FW_Nck z0mns6m=lbQjP!>&Qojd!8zH)TTK8W6vLD-kK(m^(aMnxrskym16VT&Fcx}fG-UgkB zbp1c#4E|gBXet8Gv!o+m%%4C1x*)3ftlS4Ue$sL9r`|zlr;jpx-_rjQTTAhp*$Q}f zSJ&nGxZK0)b2i9Ymm-fF#l=M-35LVz%w- z*Rn=o?TL}CEuA7@{-rNu?t6{buV3HrpI*kB9u53!Ak_bXUWT4|z1cv~FN^S-odEr_ zxB1WLi@cU9zUpNhK{xJ%?FCLuxo3J*a=s9Sdz(toJcE`cR#ZmQc72a?5$yOg{T$Un z^#Lhq%ijkUYM-&$?8>@2Cw+Ic%nRUvKxHzyxzHZ4k4a}+Gu!mX1$k}}-~1K|AsY7m zSkLY>KYkpqqsi!Ttcir(kqU9dn)%r`_p zeY1j&FuH<L_4^AP*V6YKY}nbuYOKSgL~D;qZ*$^-w5W z`b}bR_ZahX1&cAVF#Y(pL14f+zdq((ClFqX9n;xYoRKs6YeqZS1v?GyxPI8%CA~l2 zN-Eo(o1ZUusbyF^#)5K99q%t^mjCMwt>0-P|KWi6NB8=f)&G;O{(Vr=58@4UPd*#H z{M(M%IzS~pu8q7K%_c0M7XLHTG5@ol{J(wm8#u%94!o<^*REZA5lPLrqzBvPHt$Ulyet-X z5=)I8f1y$X#FEwfLc@@k?VX5k{z4+2D8ck zp%QOU7+!Lqi*LOgQ~2)hSq*g5)&heF4TeApA}y^VXa9fBNMC%Q co4sRi%i7(ZOgZpRNW5dZ)H literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_077_winding_corridor_none_dead_end_rooms2_1078.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_077_winding_corridor_none_dead_end_rooms2_1078.png new file mode 100644 index 0000000000000000000000000000000000000000..40218fbd2d1313c85329901a79f3ddf63d45e41c GIT binary patch literal 19532 zcmeHvd010t+J3B7Y!#{Xvn~i|X{B`m6#*eav{k6Jf{3z{pcGILqAUp{BvEOhDvMSY zktHfs&_JR@h!B#fSWuQkWC;P16agby*+L{C$?pwqXY7pAX*>PC`R4oi2N%}`hr`J^ z&wD@j^1SEN9(On6x0k&Qfk2FReztut1oFlJ1Y$IM&TQ}#_jf9Hfp1Q6JAC83kYRD? z12LhH-3Q{19zn((Iec&hDl{hcFf!WKdc%6_&1+X2iittgS^_L^8kul*m_X6VC z;4E(){md^G0$Kd7;cG@X@d@}}yYB4VzHMJZfsFrF+?R<#dIi!c$gZs}j_N2i%epu_ z^sRRm?U~p;dwa_9(iQop`FHQxmL4x_^z@$LfI4eQdVkyYC4pOKELz{Z_2z-2DHdlT z^LJT3ZvK`WCnhkjW)rSK`EA!52ZB13TSNnKVXGbD#~v}R`|xY_+qDkGIlT#ieA9KV z+8+YB^e*_!?|krZ24ux&XJk8p$ytsN$gH!GZCzBDY7XmXx}(2Du-^gd(c1^6PJ2dQIqNf9POg`Vk# zk;f7P1mo8njHjH7RJEdb7^N?;SO@+fBC#nzuvajWfzI+_j%E+~5R^Wd{^aQMT!uV8 zQ^Q~>%aPf2sV3-|bXVOuv86+1VspsnbiQ1tVi!W2$U*eR?-wHi+0Lq7d4mM5su=~> zNs|f~*h|EPu7#EZH@}XMc3OU-4C%U0Gha!PC_VJ!9z*;4^zFhO+QN3B@$$nB8D@NF z6igKh^MMbaT$}}akqql%8GJxN(9qSRxTkH6E^;$#z|tgyYF+3(FU-T0elX} zNm4d?!-o+etH5lco15udEwrtpMExX@PtiPdbE&uNj#d^x?^!RLN|!8#;W8&P|6q=FXPsjSXp>D zUs0c7y*M+7;nLx%xYYdKfmMS$JurJG)m#?7cQ6C|z4|7KA&o}U15_*tXRHmTZ5vFp zWj}{EWKKQIjLW>;VHw!qg-lQ!%fx0y2KFx-9B=cmp)r-^O=sZaSL9_GwHf7mIIwbu zXUane-1aN%TjW^dbfHcrl-Jk0GKasm$!dV7Tp7{FyJlw}}>OSYRPO*9CB*U}Md;nKe@^y@o~CcM6AY6@3N|_l_ED z4*oJeIL&!zr-!(mAB;jxlr|OVr$lHQk_DGJQ3)lHNIrL_iY>HKz> z#rKt=Vvz**{8I~mx-{8hDp&-blmgELHNghUl50)BXB_=_veAcG(WhqWwF(6sp@@{I zHY?k`=tP8G%~jNbtMjExKSL(ATM#H| z;Dr-$?J z)1EaAW})WFQnzv(M{TF9sA)bofBELe)v_og9aR{gqZE;dT*YKKVIsUCh#CDUt#)u7 zH;2Lv;$Bt>p(yF|DZ>&?p~`T=+}eQ;3-bZ~@j3Y|&$^Ws)lo=Sg<7cYq@mbb#+v1# zczj7As=GT>S>rN%!sN)EDetL3!c+sHw^}PhvZ|)kQP#|WS_uN7!Ba3DB=-bom#IDz z$~x6E2UcPoC9!WVBH^k;J)8=w#ZDS(Y#}pxv)@}W_1$!Vk}NmAUrCNHm#51x0J5FA zCrLW2Zc>Ek8x?98Lg?!C9-AIg5?dls=EKL0;#^eKoOqi6I9#4`kTFu03wydCb8|#c zZca{TXD9|!Gd7Y*sMY8t815ccYkKtU_rB21P7GqsZfOIE89nT6SZGiVeuBznDqL@k zR?!$yve8s$>48Y}M`E*VZtXKW{tq``W8QBj0`%_%4I_~L=|1EXYa|_67NqN-;48<( zKCBu|Y?%qcaqV$bLU3dCULNWHinm%O=P8iVX~2l`IySbQVL2**sY+bDS9?!b*{)XF)zD@POx9+S?#Y_j* zWD6bbE}4>;2|SXXF63X5MU}Y8&j%=DJ0wi7D7q5Cr7XKc6Rq@_cDA;$?KMdBSyk9EdJkWI2Z63%8Xm_Yn-^^M z%uE`vgB9-4^k{BvCN$6)K;^L<@p9MwV&cmw`s)^?x3Xb!k1^c&^H?} z<48tN?=yQo1v{K3$>)5IqLPv|Z@xCG5! z8D7>g<{@$XuEPlS;$Ed*e=8GLhSkZ<05ZuJUdgCUN=!_YWxpi{Rf$w%h$Cs?afoew zp8@njse~B*Vt7Jdx1M6=Mf_@ihtG~u(YqEyIRI}`L^ViPXCpcqK6I-y>cD}%xAm+d zY5*ryp$#-;eC&x^lyd$0^@{x%5v6nNx}@P$DaCpOT-GJcq=6RXw7ElNr4$3A1(=Ut zGKz;0dU^z?X2t$o*ts#RgA-b{z1`};e&ytwtnpo}xb{J14N+MZZWcQ!s2W`e8(BD5 zf)|%$)YLMkdSi>m3gjZ?77ZuqnXM_FSR>=+1uhb=IeO%_88^0r@H`cNs4gmsgeTV! z+s8UH_YnzuSSnX;5C=-}$SSiP(za~g>)gO}L0l3?MSiTDnu;ivB{2kp3<_%_5+@00 zx|$2`)+QBO#gcu9KAxOV3TLQPe10pI(^^U`6J>C7-DhpNzOcq)z-i+hERowJUf2*( z+Uc{h)ZzUOmbQl#PxSRBeuGMd_8w^Ssx{zhpPmK!)Xj-W8cQpyGw^0VIJgS4!!HMTu#ds6+DuNLAiSm|<;6=RyiY50&X4#72pn;zqupcd~S0*H@;^w*MPkqC+4vR`1JG=-pLwCBcv{xQ`c*Le$9%&7-VIE^7#AYayN zH-Vv~wa)E@$8jy8jCZ6#@R_%n{`bPnB)ivl8g;6dOo3i}YhrQ)E=($R5Otka`m>@L zOO@^1|B^E<-X96OwV%?2|KaY5N?yB9^=8lf!UI~z%(RN4^bD!_b#_Rx+ctYDxgmg~ z7Mm-bX8SQgai}Q@k*Ibxtk|e#89cglR|lWpT&oy%opv@DZ6J9%RQM14=ihp9E+v~tk9~+ zCE)rQ7B1QcRxYiK6E|$=-iXFB)gH+?w^povBDSXSk=WNQ#!ZRI5N&t&Svv5c zB<1@@!?s7V1;rtD8}*7wp9XDLb7Tr)5ynkTk%sQW=28f8a$hk$V!}N(v8&D;)l0!W z+68~2r7@EtaJ=@ALUjkUu-P#5> z#=GGCm@AzY*S83arP=%!@I~T8+J5K7x7o5Aa9U)L#GhXro$tIZSUZn3noU_gCc)%( zKo2Wx-o;2TwRs()4FLEKA}9N`1YKN)HnoPpWve5aZvhl#U{*JB@TkI*El^tTCrf@==P%& zSWu|eu|!$A#~EE~{^+_%I5!n;AR$Qs&wPjjooDI<>ZmWZiNift(M55EI}16k;stf; z_jm!9Q(_dxJ9HCBJ<3bMgMK}b;MOlrEZ>iN3b&b}^<-+hGUN5-9^Xg`Rrv3mIF=q3 zPBGJ;V@@=3Qr4Yels#3A5w&q;{f&YZkxRyl=6Z5?E}i&l-R`sYm~W*R1rQaT?tL{C zR<+e92QfGp5ndf{Rbq7MTVi&q_$dDV;)(SLyjf?r5iH z=f&jHZJWgBFWpeT*JaAsxXt-}B^%9*?I94Ar-B%0G4|eE_{{@bJ82DqM$0pd6$wI( zfUDiSK*|495lhs>!6=HycUr3}4eG85p;sc%FoJ>o?!^Oz&eR}r@Aew_ow4xpZDz9Q z*3^BQsr%g%fyA#8zFStN4BClx+lzJcN(~wn-B8>JP^oGZO8BEeU$NzmAvCefc+x&kZ;Tg>>n^Rv~1=B z-v0RTzC^%_x_2=;tdPngh>yq*`Ou(rQHX;vq;{+1j&Dj~8o=y-hz_Q(&hMq@Lv65r zswAN@;z4JzKpDC$vOooYk1{*jSfhUTw4GR7Cyg)k5?gLGNw_<+h6qSNrVRxri=>y# z8-JfM8=L+lM9Y+XfuVe`SMjhT_lCrI=dGe;du$YpBjLCY(>%|CLbh+kUVo%!SWG^2 zLm~Wcl|(xzKin!YJBcx>#JiNLsU5N!)d*jKN6RXJ?$uY{4|Q{StFkDXo4<`;MI8Rh zs?4m9T=Gc=)IquPq6A>2_y{(WS@^JZL=1%JlkNrT8cGMtm=SdcuJAt_UAs?kL~=D292#W^ITwU_WBLuIE-{~Uvy?FE~V^Lr+x;V}9TQNR6J z(s%s~FOfkAv&%s%tdx{drHqA!)Yq<3ctUeY-^HA*|P6Vw5dsWhk^=YXwjvfzlZ-^Nv6Dz{BIzL!+JSiaFn)%}C z?v^**T{F(s>HP=~u*Fu9ont;&k1ucNCp632l1nMRdk`LUbN&qvUy?~WLRG_EXJEfg zlOiJFstFX4EnYB$DLRakNiiR=%#BGD@}5jMw>X56n@lRnIP$gn2}+sNhjID>7kA0! zh9{-i+>Y$=1lQeGRE5H{VwBHEby^MG?XJX=Q&Xhe_Z3FG+xZD16Jsvfzp}~;x3dl- zM+TLsSJ^8Idcgtdhjo1xy35!HV+rD2GdtZpb;Bn5o0^J3|XRJ=9sVig(mVsa*Frmu2U6%{(r9nzbl+S9|PD$(r_kB?U2` zs{-ZA1{j-x7(ohfb{F~?GDk?7<+k}pP8qb`pkbA%LRU&m@$FVM9agMPG$iS9viUyq zu?r1>eW7ac$7_{(q$}=8Anxf$ehhSZZ<_kyqdUMI>mCPY+oS8sQyF&?ctvQt8SWTm zJQYhR#Jw+G^Pr4S!d%#jH4Ck<*I-S3l)z|m0 zn7*&i_>w1n=t|pAoH{7sz=6xRdt~K7#T$kzav5bwx-p^+Fre~El*2M9H7q>e)GXb#_zMpY6=RCMjhqx3dUfr(b;hIX>i4FP zOioUYN2J|uvZgmz(RP-5H@Wm!Q6)rPUeHMyd%Awww>Fvl*8r%rP!tMvY0(ll;3M)0 z9xU}xsBoM)E>6puyV!cIP%l?C0n~}Y=I>L?>V!U?;I-J&b$Nxn54+^eQS_FUmU1P( z%E&SK`UYJiOTRFr_p1hdJHR{(M`1JM`1us8_&5G&Q1H5DUaFZt9JnkjbT4UB+y_3< zRem&5wk-WbgR}ftC?3x&z$@FDm_xXsj-?+jwhr`V>iLRX04t-w{9X0?O3vT7X$%&F z$Jn_(86B;NLZ0_8&%srBgmGb1Tl%b?!s;j*Q0XUfEIxX;c=6&UsZ_dk&H4;;_2bkW zGbk!6h>prWa5SOPi+Sv5VqFuNs>#||9dc#fnO)Y^-vy$0p`m)6wu-U)MrLFCt7b;oKN?=|%d%7|Sr&SfC(@C6l`cGsov**&nS9sb1gEl9zp ze~81caqjm;_x1fqhQda256#<@-!h#GE}5Nc?!Qh1k2_k|#CD2B zJC-|cQT2$Q)zs8P&?T{S(ioLel zM${@wK_B|jXy3*!tetQBcMl$QOh|+>R$Dem-32^Z#1}b*=QAjfwAI_#$F#B%mi@kk zH7_JaO#=g8I`-e)i`nm*!7Hq#=J#&!j82lZH3mgvTo2EQJ$|nL?Av$0f!20^tXJgc zW|`=@4sE12wpz?`yu0&hlackhHK{&rq#1Wty%kd5$rUr0zw$Ak3l40&MF&V;iWXnLl{@S;pmye6jdO&uJIr8u3&w8?3ZjElLVV!H0&1 zn7Km7yYac%+1VAhZ*O`?Te7R%o3z|1u5_)n^);W+55j$r1MIqpgi$+)z24&->5qgY z8?-QHu0>IU-3;)Y{^>Zv@4liTLf@=PS6qrU`|djwrf<;Z!|5@`>OGA}tfm)5k@$lhhilL*;500dbF zZV~i&+9F&`Kr0|OG?_inUtwWkYB)Z@oI4A0e8aywAM?5(|25is=@cNmL+HM*zyA73 zG>wKzuir}Lt&Nw4g`=wIt-NrnRjX<&>VA0gDQU3x%>3vCo?p1!y2LJ3_68c%KX$S&F%WnO^?z&*>vf&| zYjyV0;M*$DXG?@%FMjVmFt#P=wp%u{C5+mBE5Fd-*n|@c4J~(G@-CC|oLC#DJAI+y zh1K+e&gDfR>y$`Ct7V~aM}LBo&O@6T$H(J@O^W3MjXvJqjZdCDSs^^Qw$gvybUXY; zMzyP#q))9slv@`HCL`*ambJJZws&BzJ&>5l6VhF(%bx?C--F7(cyZaG$rC4&jvc$z z%x2HO{YL*GAo{Rw_0yH>q>=uplr)X&Hzy?03yuZ%C$B8;{7ENiR0?!JtJTlQ`x0S2 zw);Pdu>LnutA95Mc%^pQ+YpTk3#XeF;!p< zS@FPQ(g~FJeu9%<5l@YPwi{+60BvWFj>hnAg{1QG_*F>sUrLbAT4`$F(!Aam741?0 zn}mP^s4!aLkyx#v0E35SB>znTN`GvvHb66k169xe2=s1Kkxc$~)b2u%Tpc|zJ411Jh) ziTlX{^0Iz|RJt%5a@Rg~z9YYFpZMG{pm&HXO0et~>xtLiD7f&*Y+g|1)o^2{K0j~=D`2_wS)W3B0x?6m2@ zgYBx2C4qmdi-voVk|=WBM!M%g;I4Pey?uN@S56G@6p4No_J3ulGsyI^va+nJSFdhk ze(xJm>CeAZW~zH7YFED`pJ;SU9azLPeotY~+ti-uDg*EJ^75Lw4z}kk*K~r%GK!h+P4T&&> zJZZ@D1cewcsX92;OeTbdNB5Nf)t!8pP5EWxT|yzOPuT`I*ZK43P2rt~>_4YgkA%L} z)YQa}=l{rV-G3383Ts_-0-&QZdCF;1arf@s#)|3y4XNu^JYP|9=D2r5}%u2)T&h(GJ;gbawEvy zss#gacB{}?Slz?;rpCUG7(Z+RBEA14CupxhDpyVbn|h!&g8SvX;kEp6s-@#Xdyr^Hll?Qh zYtAjsMGzF+?h0>-q8o5{!q{o%h5USy8y9yZW;S36VO$X^1f^9Vfxml-#RbF@3`@CN z@esR&RMPG(bAZr&J%I9i_UFE?g@0*#^PheD{$oZ1esg>LRku7DNDL6ceeV+atE6r^ z%vk^+1k5)c0vPe5-!1)V9x{`x=^B^^G;0f)BdeFHg+kz(y-T1(p{MOp_X<`HGu$UX z;T`tMKeB`U^&|e%l9TD8c_m-D9^x~)N zG*haCK(Gal)fA(OKRuV=^hoEgE((fzx@~jnZ-2AJYh3tqapAAd%_hT(NVL|qH*fCg zmQ8e$TbCTN&%c_%pN=x8$D!$_>n8ku!;Hu~FTshycM29>vOQj1U5$z3|Hcve`M>Ec zC$DSazpECe=WAYRD*ZfGvaUuVq0?dM%9r5;3@P7ZZVQKiyj%IaCUZAC z7>^f7)xFWpWWBaU+H5_d>PAh^kqmvHi5$YBDo+{pE&mS~1^nw$`ae3J^lDq%2{k=5 zap>ktD)Jw@7(dSRd}7#L@iUx&=q(wS%!YvES=<_Lkza6cYO0o}tma<`(rfa;bnjC| zCGf)mV{O|x!F{5VMl3YB@AzlDCh0YR{A&R6bFcB>gJ9oHmCw~%r^8W!%_-~2; literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_078_dense_maze_kk_wrong_keys1_1079.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_078_dense_maze_kk_wrong_keys1_1079.png new file mode 100644 index 0000000000000000000000000000000000000000..fc232c1730ab666685450969c0c623694a86362a GIT binary patch literal 25421 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_080_sequential_chain_sg_wrong_keys1_1081.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_080_sequential_chain_sg_wrong_keys1_1081.png new file mode 100644 index 0000000000000000000000000000000000000000..b4549771526d4ff85fa3fae2b16d48e24a6718d4 GIT binary patch literal 22221 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_081_multi_route_none_wrong_keys1_1082.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_081_multi_route_none_wrong_keys1_1082.png new file mode 100644 index 0000000000000000000000000000000000000000..51bab8db0d758ffd0671491cd4b51642ef7c2740 GIT binary patch literal 16539 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 EA0k|kb^rhX literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_084_dense_maze_sk_wrong_keys1_1085.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_084_dense_maze_sk_wrong_keys1_1085.png new file mode 100644 index 0000000000000000000000000000000000000000..94609f76e314acd091995b19f6a058ac343b4d48 GIT binary patch literal 22212 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

mA3RoDx$QA%}Cf>(y^@4hN3 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_085_dense_maze_kk_wrong_keys2_1086.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_085_dense_maze_kk_wrong_keys2_1086.png new file mode 100644 index 0000000000000000000000000000000000000000..19ee33244b3fab02e735a33dee0f141b0e6c945a GIT binary patch literal 29522 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_086_multi_route_none_none_1087.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_086_multi_route_none_none_1087.png new file mode 100644 index 0000000000000000000000000000000000000000..f18e39d0cf35422a4f267a34c6f0d601972db0b2 GIT binary patch literal 15380 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 May|IuFMi+rFSijP1poj5 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_087_dense_maze_kk_distractor_chain2_1089.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_087_dense_maze_kk_distractor_chain2_1089.png new file mode 100644 index 0000000000000000000000000000000000000000..96cb3ffb7aa4306fe5ac0559d4d5a63b2ea861b7 GIT binary patch literal 24732 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_088_side_vault_kd_wrong_keys2_1089.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_088_side_vault_kd_wrong_keys2_1089.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f9f2d3eeb144446faa71e31f7f697e19f2a149 GIT binary patch literal 23311 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

fS%k4Xd6AFlBm^`Xeg0Dg*GiPEw#e~ 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 CPvlqt literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_089_sequential_chain_kd_dead_end_rooms2_1090.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_089_sequential_chain_kd_dead_end_rooms2_1090.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf95bc14fe02466b20ec63c31b773ed14591aed GIT binary patch literal 21245 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 X%P$M>>Kz5Qha5ZX@J;DKzsvt0%+_)I literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_090_side_vault_none_wrong_keys2_1091.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_090_side_vault_none_wrong_keys2_1091.png new file mode 100644 index 0000000000000000000000000000000000000000..cfbf1d24ff22ccc38e83fbd7a80fcd1d40cb289e GIT binary patch literal 15004 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 UIA+f12HL^k>FVdQ&MBb@0Qu$fH2?qr literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_092_side_vault_sg_wrong_keys2_1093.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_092_side_vault_sg_wrong_keys2_1093.png new file mode 100644 index 0000000000000000000000000000000000000000..b6981854268ac0aea063a9c2005aef4aec7b68da GIT binary patch literal 23454 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 R0k?;pG`Buh^8NX%{|}ucdrJTS literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_093_dense_maze_kk_distractor_chain2_1098.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_093_dense_maze_kk_distractor_chain2_1098.png new file mode 100644 index 0000000000000000000000000000000000000000..b916dcca086de92aa4c4da0cabb05b40e5ceef2c GIT binary patch literal 27629 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 R_0jZqZQr-8V2k_t9|3w9yQlyF literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_094_multi_route_none_none_1095.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_094_multi_route_none_none_1095.png new file mode 100644 index 0000000000000000000000000000000000000000..19c153a37aa54070f32627490789497a7e9ee82b GIT binary patch literal 12428 zcmeHtc~q0<)^F4g?NO1oR#6b}bkI`~s3M?Dai*36S|*thjv~Y`2pLFBqEeigv?z!O z(NdX05&@F{A$bubsUjc}2qq*!nTI3_P&1H+rxOZ*=h&`Vtnk&!{0z4D>i^n`+FPz6obi zP^ZqHhIpMyNj#U3axOM%EAsUDGeJhg?)LlybS-tg>l{c zHyD5T{t=^{TLa!+tH3-#A9#pa%q=`=*SaP=JBoCF;|Fsmjr`UH95Iszd{pt#k2K~-5jX1zjj~9 zg{HQ3DvTx5#-d~%5z_R0`;LoYlck06anR`%&{yfJ^qp7Tl@H@XCpd`>8W~e4*X!gA zE8SbG`25iG$6Vx%vkhNRglF(na9l5@)V;f*y32JfElT2SmcBJ1ps_D}i(lh)qXhOG zhBfG}Vryiu1Wb3Kz!d-1l%AvQ%Yj?X?y~B3AJ28K2*Zp&l8WSbb&{3FC}P^kBSMa0 zU~D7heL%MzWB`3akp`Vllg9dB1xbv97n-+UILJ8ePmtXyFHicsIcl$VI6`+?^PSzo zcVqi>6I5L#uFDj6f;pJ&(x7*rtg00}JakpS6wgs)s!2dMDP`a%8G^pPz7>{Oei({Y zP*9-qASgXV1i6qwwQxm0#?7}_#RD_ez-zpek0*yAdi

>_L}ojhW@l&8sO;)Xf}C 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 S1i^~JfxR~06n%Z_;(q{d?T_;S literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_096_dense_maze_none_none_1097.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_096_dense_maze_none_none_1097.png new file mode 100644 index 0000000000000000000000000000000000000000..52ae634fee9a70defda202e519277b2b8afd822f GIT binary patch literal 17299 zcmeHv30RY7)^?OuYOPvp6$La^s)z^?S;G=+)uOB_3N)-5w-6w*h9x9Y>IMQ;_BALX zB1=T}HMl@zM*?9JqJ$7xLL^}e+5RVJXTDBnzHjFH=ew@CI+N?-eFDCD-}iZ*bIyIA z``4uW7LFn@fIvmwgRkFwZ}op^5dm2z%=2-wv*_`ts2q zeIXEquVgyRKyJ zxyo}>w^_UXdwA#OBS?ciN8z7Q6I9iBnWy%c7kqkRh3Dy?aw69B-TQRYu97c@XkB)h ztK$-?%vTG4vAiQ7apz10p5?{W$pVi9+R43>X=y`kqt;$^f?*?VZtX(*!CDuxDtJ7| zC7N6Hnw8+qmHJP>@nDh)SO^H@vkm{`;hj1=&DUCS%a%P7aG&Te!d64B6#57`o` zzc$@o<$!*uDM@E`Culf!wdpgQ@c1bdRDGJMW)swGlF-Ir_n~4; zMytdNL@5r5MDG2`KH3%Xc!R-DvPs{Gnd+|#4GEt1C8Z9}MC0z8E@hdzqXk59FVTvf zj&s?N*lxhQrDJ52N&u6-Z^W(9P7j%`Z0H@m5+8HNuyeRJgr-drwC>bospLqO$WlY` zJ2O*rsgNRde37l3!Fy#TAf#?~O`F7-x|U`E2JV%ywP?jdQA%+${; zArQa#HJTOQw6(T=ZMNDu@a@%cv`q-oqJ=UOh20nZ<k;?12qb)&y(e!2&`ZH{j$ zOnpMuVwE^_R0VpBAsW-Smq=>ZCNR%|S)#m{botrpaa+>TDMQI3GxB9z%unv8 z5ld><$;!zDK_an|#afZ+xY`opVL)1Zq1v?(9CdVbPNfy{7OAEP=Yan6xh`aAK)+Pf zA+;pqS?aWR?=E?_#b?DJ45Ol=vKgW_#y)EddN=7ptm{66pvgv45<1souV8l2W3Wua zbGQbc?$>p!;ni2dd5+P$1@Y8HQ^%TL+F(Dc$D1o|-)_A=r0;o`cE-%DStAPHXq+fv z6H_$x_4N~nf#v0pB;zFOg<5WCq-_xIHWWsfiHyuLpihjv6CCl8WCY>4z9iw-E8YxX z$j*W#(aNPe7MjOmf?81#q+P@znCKbo>)sdeBp6Z9(y&HC5>}GbUFz9I)!>rp8Sj5q zy}tmKs^P@9ZKK|w=*0YxvnLs7BqqWPw7Q5fVDXx5v3G zK2zAv8#o-L)$FT_l^5K|tZ^P?SPfhAxI89Qx|ret<=jy2iDh;s*3D**aIt~Ul}=VV z)lqwE1Z`Ls!4TIJTTBsFQ`9A`rYOWu69c(VxiI|^z!A$iwlviqLHQkizH`}i8Lrvwg~F3 zsiweFk>pc*)uo8(3g$$wGj7NvA!O2#fqYG9R?F#T2!|IoGxUkC!Kf+m*e8w4G0v{5 zs0fT({Ow;;@Om)x-XW z8v~@?7*QzgffY_j5HReW{ZEH7>O$u(8Z);xuz8C^lP(KYgB^Ohx;?WY$_A?hxN<3b zyWpi6om;_-4%w%#rFFt|z7Ms2$-Dc6*`^jKQ8csQFfUulW{yBb8rqVep)PGVWn45B z_NyGYCJ?fPHKTVdCO{x#Mp6=6Sk>Y}K6gq5DmY4G5rJQKlSHGc49-I68|9GaO2eIg z{l@xyj)K$W@5GfIq0`M=Okm)m7fO^+Uc<_qWK7R{e~SleV>nv&m|_8|^;pB&Gf5p)m~wWlD`UQ_yx=hDLfAO31qMTqT&G<9ULBd^hH^vHVTXOcl-XM3pl@e# zYAQxCi5JRNc!MSIQ|;>(z@DA1xrEK{4V!s02zI48a=w=$nVaJh7OK_DS#y#R1&RZ4 zF3&YIW{>ZnXL%3w{T2DITTHk?9qL}L4i0;~T40Z0HSeG8{AP4eRaNylYVd}+;9~2F zvGvmT>nB6zr_{WvXBw3zmz``73LNHZ6cJcPIe`^#zj-q5xvLAsy%dRWlZBE83}$}^ zAwV3VUg)q@xQ`fP6FOl#cimLqthJU*zlI8Pr_W4^JX4$OlXKB+6GD z#NyNSbR2is8IOqRg^9ah1+7KviHpzW*IEifpuVkIb23;`r%?L)`_E4CIYGu=RpSpr z_Cfm*bff(&K_W#H3%$;(pqdmeR*8!B*I0H0(~H+td92HgnhTN&8I%bUGrzbUDKMED zs>b!StT+h!G6~Z6B`>m6S(g`Co>)6|-ioptn%fz8qJrqQ^maY5;;W2+slHc!{m6o{ zuTE&zEsi`0QzMR2^kY?y*NH)d9~eTA!p$Y3o2nUoT^)m;eGUt1vRJpIE4Yf4q{P}F zDhc;j(w;`wRIm~prvtvVT!)gcTAIkS_v$#2wTU5U$3L0rY2R^e|`D6iI)__Cs#&IkS|S3!b_yo z90-tiWc+ZYN-E|OV*+1&W+`B%UD-z@&sQ8&t(+~&F$9FT(3fN* z<}K|Aa?4~b1t4+lqUaEGsdJ~E9)FM`9=vYiK6MbT$Ihx#T%ionQ|xtH>2_%GH5*ax zlYS4lk%kpz%nBQ9>n)CxW8rQ#bN9~y;0$JsP~@8x1Sb4eZTrH+Zp*su)^%eR+EJKF zOB)*ohc8e(6opaa4A&YJ{7{!bQ#BPdjc^4iN929!KVIBK9K#hfV><}n-nw<`eqzn& zu7yQ>Dbl$z!?NyLSBGS(W0;BI>0ab*(N((sys39^z=vJ{DW#RS!f^IRK0M37S z2>p6^ap@Yq;PI3rV~O4z5b);p(i?fx3LY0<#O-;xPhD)1s4exGnXe{Rfy}gnz$2*S?3UU)TmEnw79|S(7JpX8brq6OB@Ia4bPj*uIlc5dp9~s z?uyIU*Ko*^3u0tf%MP}bf_S^bl;@ZVJtnx3jW2m2V^j}{I}p`@A+z{%ZKv&><6Y*T zByP&t&AN2?&63_TsyiJ{u?p3%es?c2qN3z{OM>4_gMtEV%D1(z6k}f{o*#^iX?&$G zUAX4k=Iqn7tHCS)&~=5JpLJ3nm~!4dU_1%8d}E zXL8%$UrBH|HBI&&uu-+)G?`hACe0Sbgzg*iqggee-2i}vL|}g45YN#hlhqrn&D>w+ zH0TzR<^VY>tf14vazHaSL4ZA31kf2Kyl_G zVeI0%N(7(J9|y>HcxD0rXz2a>%kS87SG;!ZU-5XyC`RsladGiDMKVcAAz0OI!PZ@C z4pTI%93AA9p04^1v1uX-i$@tsMf^x2m-uQ7AC-k)a!82r8TgFH)o3xp=*GrGH1*;P zlSDt6LeIoL{|?bSx{Vu1-9d3>;xe*MGrO~0k{IxSQOs%G*zjX2ncJrf9XRhAIn3i3 zlGz-xD3lt#4SP1uW=vGNtRKH>&DymQYx@%ioV~DW+|=PMLLkcA?|pKFR^9n zq~haft*xy)xXk)UJzQ4fkqX~EhJ8km?Ur>v9IqqT5^!YEPf{DnsLi_I9lUG!qN&D) zH~bSeQISEo$t`1%2^Znt=vtQ>9%l}1&$qZ7@{Rm)?*%)E4m8{XrH3plQ~RqoUf zmw=mL&rqSRPLuhYTmgvDWaJ`Vg=H7w&Bec!;Ab~NJWegoW}TLTOW>KA1?4R~w4Gqd zBuXXG$1fO=(bF}@5yvI3x#D4NLE57^z}B?IGW2S`y;IO3T89)gxFgbcyFwO^Hif;L zrP{%9v zS>2D$Nw*ULtgb6I7|HTpI#H*0IvO3cFU8ps9%D-=FEI`flvGg!sT4J9b>lSrcawlq zmMrouT$fI6*jiY(G*R7f1CKlb=4}n{nRqdOo2%WyX{1WHhDl_bGO1_VPS4>&UiIcNw`8Uh^JSs( z=YWaX=TJb->Uy(XFu6{at9}#8izU?ze)@*5h65B(%cvvPzK$1vq|Z3cm`JW1OBvxt zyR3A};%oW<8Y_5K-RnvW-QdVu^8#PQ#-FoXXBkyq*umYGAlDtnYbfP|G#J5)>=50i z=uvcoTnN(lmn*VR$j}|>HcWI{bL^oXB`;wQmCPbW%Sj#B)H(_?+DKFU+*EYPP)0H^ z&(r+rKQ^4OhOZh`crB#R25uXtoG%!C9A_if3VY{!wCSxXG&dggy~@MT`C^iW=HnU) zzM1ad>ufJFk#7J*N|4Dwfi!en-Br-sOpzJ<<`cVPoY(CRO5+*PS(wq$th@8;6@t=? zG@z?v!_BvcD<|`A+Y1c86WqAl=+xBvg(0_wAHBHX!sVzy;}c=|L#<(yNK*;Z)EcNM z?L&w}a%3FSjj&LzypL}-tjEK<-|CTJ`iNii1zzqAxZMRfon?EH-_gG);4SLk8@&4= zQ*_O+5Bg$-o61JOCHMQdHE~}g#O!}*mNtqDYc_j!D<($4Z2hRpIu~H!P(Oj_nKASj zAIJ;BBU3NUprZ<0xWTEso{^(>*~V=6c(<*M$=S)YUNu*&8YQ!BGBx}dVMAIBy~!+m zw9jX{lC5X5bJz78(L5WT#L9}Vn=d7AGP^XY@LVuU#+zgrZ-xavU30R$C1)=Sv!j;d ziB%stfG$HUlOQ4&(W44P0Ytftm5h zhK5%bf*a|ggt_zt6dKXIS6b(LxXp|``eg#_S$cRg#)Y4v8(Lm(?E&3D4s1}5@HB<` z$7MMo9>H8i#^j3`w%3szHEk@?Btt4@M0y?|eV=SoYs8APjqsdbZ4>zH(TI25C1OI% z6Qer{F7j8rbdGb`3qzj*A?ce|-M^-ldEdrD-fa|Yt1qk=iAYFj;x;baQ>eYvM$hdX zjU;rmx0jVz64+IubphhtuK1eM_#oD*LmJDtnct)3 zghWoX?C|hUgIpONa~@sR>ActOmW|(o5B<$S@5tu5>8i=D)>cc8wM#FaZ=Zi$Qc-cK z=2kMCe#9fOu|;`Ov+Nk^LbN}0Fni_zwJOrHE3lyS_U+p`2*mL4v$-oxO-;ddYoOPm z;kmhL%$^Y^tqYBqf(4DSB-!bcTCerct*u4v*z08$%=6Lygz91|MRNC3c!H5lb=ppO z@MH&Xe9#yFGyI#a#7mjfTweWtcGmAvk9(2syNwF2c<-e~{kq!;iHSzFdreT6-%FR+ zKv-BG|kO@42mlq!o#CuKMn&5ry9-Fhn#PT%Gc+t{i+iTGfz3WMh+ znekFNmvV<%VD;UF$K6trlaFoOxbb%NJ0&KQ*+4Rb`uZtuQ{v1{%>JC3gS9rTnlwYR z+tbJT_l{nH8yh<*&ooSoR>n(vTa&huOV37w!-eRrFyH*@zU7I84&L{Al>!_oo={X6 zc9YJkn0?z3`m(d&Szg9Wil114tZxVWq?6?|sszR>Ujl{v4>|l|Rn)Lz9o8ES=M-r8 z4;|ZXRu58Bz9kdkDBLR__b`(YRmeRTn&vJ z47N&ps0w3)L>A(Pjxq>TC)qv^7WP|{&29F({AO$KYfZA@c8bbJsSGS8xa;QN$saFG zSnzf}zTo4uG?rdneL!;s1Y%}QXeW_`>|V&MYS?OrV%iArwgm`V(wF2FJj{xvnEFrh zZ{pi_nSqlJ5}U{?s%Dn*@=bobN!*?C`PCOmqIy4amiacQKndHI-W>1q$gUh0d^-52 znFANb92Sb46+c?VkEU%!Lwt+zM`Q+lyeBjAGt2s_7H{+=-%6$mrSw43-uP*UL>IT^ zI34<5{oqx{zid$bSVm&YY8`)<`9eM{VY~My8^H%4I{4RUkAwZqfTXf#@`U0wq{ z(D-9B2xX_mm%24&4CvtWA1Uu_O7N$Xr8!qu>TZ1^q+u-y3`E#^i ziBa?~se|?wg8{nhJ9{SPbxJDJ3^h75ghli*2Z_z6!cbJ1U8@$Vj1CUVaDSeQU@zc_ zsFbv{eeFAu3-vE1(uop*bFs>$sV^iWj8w`ZamL2KBT|}*t?Q5c5p2ynpLA0-P|k#0 z$=JOgcn;*to&OpBO_t!madPh@N7LBEBprzEfJ`3#+unwa33Atj!BSCq=c1EQlUh_> z0GfgYG;#V&wT{b}1FpzQv6v9-Jg&=XJf)dP>+5rHZ1IY~GaDKjK=D(lGP3SOfn8+! z!QmZ#;YcKKvD|S_mO1?N-ZreG4G=!Y9M-fJ&5t<@uPgKD?`rH4tH$)cd6PNg?%nG1 z3*Vt~Nu1=_6;PQlMZMLJ)TRz7X~)FZ3ep&u<|y>JbN4yt4~3yGT-a@8X?b}19@f&z zD*Nr*w>pM~DOFEj*C7YW@`9A}?aFiRwz0a=M!0DmD$*^wRG-QV_bvBG9BL0N)xWS^ zJp^Y;U-N5hZklgwMV-eY?1HT-wXCeIAAq=2mcS7O9S3d#nbr9%TKwUDTSj(dc?cm_ z{hDXTGoMG<**fK9`uOSb)k6pu$L8#k+)=3&1d_S&lihAZ&U15vRcE`g6qIJXd3K3s zuSbr3wyK{nFn*PM*UZ9TN`~J^*{RJb5Qv+zfb0U%`#GBxECXy>ss2#^_~{jpD|ISB z>AL$`Mg*LY)3fdXuU$7JUD2)HZjCs<+R*!3+AtF5#9jk|EL~m3?;;l7L>X*_9zsE| zif&og=fjN4#-EZwl~OD?BUxnaVq-GiHxg_x6xiGqr9WjYv$(uL8Be`C*oavWo$Req z*#S1w2(Sd~u=gLUU7J@a7b`bK^-oYSmoIk`@;{wN)ruYZ*YK2!xvnNcF@0|sM>mEOcb>lT%Qi6n6C@&YecPi@H%O?sw!=9G0?Fk zKw`W{W*fmN^~-HH|5j=7Kg<#TfXUD=VZpU7Slrw3@o^xfoyByjf(%C19)+lSnsJp? z!c3@qP@W#}?Dzn393RqZ>l+l*uZ%ep&C)8iD$LNrM2Q_Hr>Map(Q_+(fq@ANv@aCI zB#Ip{;E%ZIAb>yd%QTiwf0DYB5$Nr$)z;qr1Hd`i-Bf?UeKwStkZ=+-0|h%)p0tiP z=MU0pA`!kQ+Of=IeD=}o&&Dp{;o*%fNd@D|#ZXLWtFhhuH0nHTKNU$rWjK}~sK%5_ zo;6dlUxEMdi=NoK*rvD^Y~8x`80Yg(A0#Iy>u70h03fcVs~dmq`gK_&&%`QUp*u*^ z#=IXRhcZC0w9VnXt}O2J4rod8H)5V|UGj{cYbF2;OHvY5GGB9uXStKa_+J)cj>}H8&xl3osNJ zTyBA(=vd!;$NAHMkJlgGXdfyrE8LPe$W5}yKB?w8s5>Y_U$BkIC;*N*21nL`1^Tl) z<=S|vC7wiI&ZOn7xcq_@>NrdV$Tex^Hes7;9zMP(^yC0kRrU^IBrJGCAoWW#nm(aZ z$5g%4B{lxN86_o7+}R1p&oNHT-nm6sIS7OvQ{PQ(&VD-E9UE;GY0-kl76^x@g^fx9 zIX>BGk9s)iF7X*4qy3T6QG`dPsU(8k)Ba?4gu=N)&Vhza^k%n5r_5y;FfFfZ+!lrvW-1x^Uv-|1Q-3McRK#BuDSJL@8n#7LPkc0HOMQ=R)yXJ8dz9Z*hqK} z+R_Sjp@tp-2M1KN1`HOG@3bo>eymT%X;V?jY!r}U1M{bb#C?AmI7Bo1#_T7XSw4zN zN*GjAoL=^o-;itC2dI?!dv_A+%Ace$PE;~LuSRv#Gwn7RKc))=LB9D7@G$|1E<#5r z`RUW|ghiYCV&*_V(9i(9ynD6`?C#$9vGM{{exARIib}5Y-TFA!MVmiy>rGni%gRp3 z2W2O8a1>N46}N5UfP3FcH^K!Y=qr~I`M)40kc7I*oZHqLaP|E?+cU(H5?9!AN+M%8srS70(~sN8DZ7hil0&9^3a71h*C368AsZRHoy%Pmm! zfx!Nl(ndl)j{Ofi4(Osa{|J<~1OkDMfx)HLTfHgmMarQZsvVV(Ukkrr3U0tsZ51?W z=RvhQU>>oUCe-=KnD}{AL5CJuJ;XPm@i$h`Q}uiG87SK5z(9kj=;#0- zCpEUG8%1u*(b9Ioz^PMIyN(aH0-@oKEIy#yp$_Sd-8!Jmr@`(6X`8rjFYp$9 z>H(n^vlM8E%u>3sU0EY48&0?J^#IBKfOm@%ZP422%pT7IKS|(b;bZzo2HJQ>&C`6v z?^8H8e~__#gdnYRd1)v>IL90!eOn10bAVS~G^H;ow@AIu1JQ^c0Sr4R-y<|SNHVaL z6ojCslGQP2H6R>3D34cXoyygrc$)NIFZDWi?%PuJuakHi>%n&ffNmR=o13d+Y@GIk znb~r!NmjA}x{;QzM?o@btS`8=NCdUdaNJT{nuf{%;Q+)2c9J+rYcf&X_dx{`tWf<` zN^L{r`^Uz{qVf2es9nzC%L;d9JLzlLn}ar>m=0e58hqjpOO*bVCidTuwx$mWn>Lkx z3r<%Q0&_C~LZzlj`Th$aa2rFH<$*sL+F#*q^Jfaw6I;+89{EwbYzN|2ZvJzX6A;9J zl|k3*Ct5o?Qh^Pp9H1gmru1QD@D&GHtW`IHnXL8H%(3Ph^jCojsI04?@lN5> zW#!{I+a^Nx=8u@ffwT?eTL<+WosiZc7>it`-_|48{K^vP8k`pe3upSDajc9U!N9#6$h%OuaxXUkBo_Xh1Pc)9D!+;SztW4|E9 zVkj7?tmKHk{0+$Q3~LqrKFBW08)S9Rfm3%Bmu_R03pZ~;XPT3&Fna48=_^?bTY6b+ zLvX9=Ju&3{Iqfer&{V2AX*2s}wq&{XGkaS(QI^K*_aV1h#+xtX+ko1dpSJ1`vb6lS zb)j#T@6`#9mQ5A%&EfxXIJkU9rmyk`JNXw>$bR425O2O~?FYJ3_8d83l?i#+{?`+w3k92*b)4 z?`YWYj2YNpT_14PkBtw%r=Bu>)nQ#7XcqcdM+6+89dH0pP%IiwM}1Ux zO98SE(L{YQ=S}xmt8yq=Tw|89QVvg-yc_ISH*OY17hK?jYTJFtViCjl9ysL zz&BDJ@HFH5G-hT*s3*@W_oo8fJ^kY&7sHifzMo!ly z?_w(wRf7aaC=8%m3{YC~*aC-1W9a0N*g->MQ%Clnu~VChjAeFpcXum__4EpBLl)c> z@^lUyxHGWnb4zV)ZS>i*J3;kAh5HGRLL+^eC#Hbz8F*Pw)<%~k6L6Bj!34PD@-0GS zIqI-7`D4K$d<78BfG7s{5BE|mcJXQLe1)Fc&^UGZ0k#G{q`Q!HHUq7Yr~M(fqgBbv zS^?ccL4#4Hsop_eI_Nz`Vq}LHc$rMu>Dvp^!eQl>WxQ!n#VH!F<~u3o*WqpeK?%b%;&vVxW* z>*q82(9f4Xm063KSpl28pMK6X;MFXxJMCz7(69yc8EhqQW=F^*oLZt5Ro0E@9P{==|1H6&rcl^o3yWC~f3c?~<(N7`*=5X5hcpDE#4XhScRN z|2<`t4}})L=>MbtEC9^mKWX$ovIHM7^?%>xT_;)YMuGg__Z3DgN+CfA&f|lZs;|k6 P_1F>X!-e0w{q+9;NZdPL literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_097_multi_route_none_dead_end_rooms2_1098.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_097_multi_route_none_dead_end_rooms2_1098.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad8233da064630d878458c9dcac3fb366499652 GIT binary patch literal 18018 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

xsAn51}#*eD=j=Gk1aB4Sd8*2*x6xmIX7 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 E0s2%g00000 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_102_sequential_chain_kk_dead_end_rooms2_1103.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_102_sequential_chain_kk_dead_end_rooms2_1103.png new file mode 100644 index 0000000000000000000000000000000000000000..ff04cc69ed5cf5ff04ebc31072bda7124414de81 GIT binary patch literal 23140 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 W)#jhyQU^S^6h^|BThCp)wFB)cVR z3&yJrA+;w5r42Y{Hj-C3bzkVQ?~c_7YkN#SsI>8Q@p|crr_78i-!G1PfCTmJO0y@y zP5Q8&bd^8hMfv*C%(S1PB%y+=brX{@(lBNh&A{OC{dCg4n;gIWR9E^ygd7mFWPthx z<9pM+YTh_z7eYzgo+{`ScVlY33$;A=e|G-J5Zm6R+W5qLEB#b#N9M>zOh6i}2J*JS zQeGMP5j!W4{(igPl7{-Gh}+@H#Nw4`j0N>_FsYU)%5NQ3qk&pG2+p(owimr!Ycz_Op>$920alo1xiXUsC&qHQ{?yx8ksMGuh<8+*RL(afp-;t!o;pp3PAW-|T z6U}4u`I6GZc8zp=KnDUwZ0oTgChqbEsRT0{5?Yn9-nFOVNOr&QE`WIcO&kEen6sN( zw3N$mlz;QE_hyG*DcS*$b)xbTC|xJ+YApTzMW|goV{q--HPC*#wJi-{2T#s=22|eZ ztjf{qMY4@%A>lzbi)m3XvLCmM=QsFDT;w5bQ5vw0jiL1zjrxz zK0ZHR?%0==I$Rtp{tybOllP%G|92!df2h0pr~2Vx3^(OyK3C!S4 zAhgxX1`oSY)z#H4F4UC=Py5oZ-;*x=ucWjI*nA!wi1aCn$JgS*C+5E29c*xli7Lg*SskyI;9zZHqWLoVEc|yh~CVmq|-Thm-+vKob|CI^< zrEs8ec4qf9$v2Pi3|O$UEiNqVrd8hh5o)yOsrn2a1GV1p2khYgR15H*QK9`)?S?-V z;{Ct31b-?m{M$nD{RJkN&%FVUdP7f1eEMW~lcC;~oP=_8ecI6fS68p?)$gEx1+HE& zxR&4h`Yv_Yjl1_G5di%Kw+h36-!Qki*{cYGB({5JT-XLEeJbcgAGUvcNid%+mi;xCcIQB+5?$){*$p9#ZuE zmkBbb572oDU<{C)~1@eiA2FtbyZeM*BY>@q{P)>>RoNtsnS#-#?p*JWNY#y+4-MHRRt{fIJUaDnWYT86-) zuPFW?(IL<<3!Eyl)nNGjFE`=;i6-@_B8?};_{;m@zQGOfNig*r MI@e3CT0i{%0CVh9tN;K2 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_103_side_vault_kd_dead_end_rooms1_1104.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_103_side_vault_kd_dead_end_rooms1_1104.png new file mode 100644 index 0000000000000000000000000000000000000000..21bd5047e9d8fa9f50017f4980af4b2ef3865bff GIT binary patch literal 17694 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 z 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_105_sequential_chain_ks_dead_end_rooms1_1106.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_105_sequential_chain_ks_dead_end_rooms1_1106.png new file mode 100644 index 0000000000000000000000000000000000000000..a55b13e769ee63f266a4cf026b2da10659e82a2d GIT binary patch literal 21250 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 CeXm>q literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_106_multi_route_none_dead_end_rooms2_1107.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_106_multi_route_none_dead_end_rooms2_1107.png new file mode 100644 index 0000000000000000000000000000000000000000..b06763af641f6c0058193817a80448de07957ebe GIT binary patch literal 17270 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_107_multi_route_none_wrong_keys2_1108.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_107_multi_route_none_wrong_keys2_1108.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3758e2d6f6bfbc5af2127ccf4f3e0518634be1 GIT binary patch literal 15773 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_108_sequential_chain_none_dead_end_rooms1_1109.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_108_sequential_chain_none_dead_end_rooms1_1109.png new file mode 100644 index 0000000000000000000000000000000000000000..d0977cd7e3f279db1ba7a0c96c20e63ff24fb2d9 GIT binary patch literal 20239 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_109_sequential_chain_kd_wrong_keys1_1110.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_109_sequential_chain_kd_wrong_keys1_1110.png new file mode 100644 index 0000000000000000000000000000000000000000..760a3f35f1808fdea93db649c193f3eb8cecb807 GIT binary patch literal 22391 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_110_multi_route_none_none_1111.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_110_multi_route_none_none_1111.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a04b62144dbdecc4c830fe426216a76e68e5e8 GIT binary patch literal 15248 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%0AwUzg9wa+(}S2!j&;nB)c;0KP^HYl?i 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 G^8WzgGhs3S literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_114_side_vault_kd_none_1115.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_114_side_vault_kd_none_1115.png new file mode 100644 index 0000000000000000000000000000000000000000..37038e384be91a5b077f22d5bf69b26c231b3c1d GIT binary patch literal 14917 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 e0(~vIatyF literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_115_dense_maze_ks_wrong_keys1_1119.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_115_dense_maze_ks_wrong_keys1_1119.png new file mode 100644 index 0000000000000000000000000000000000000000..5f89940f8fe6c3d0295572f97a306effe79f94c2 GIT binary patch literal 20134 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_116_sequential_chain_sk_none_1117.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_116_sequential_chain_sk_none_1117.png new file mode 100644 index 0000000000000000000000000000000000000000..e47dc49c09a4a94b14aa91d99a964ea84308e9f2 GIT binary patch literal 23399 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 AQUCw| literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_118_winding_corridor_sg_wrong_keys1_1119.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_118_winding_corridor_sg_wrong_keys1_1119.png new file mode 100644 index 0000000000000000000000000000000000000000..c053f08946bb3dce00d1c1f824ff143d5f17c7fb GIT binary patch literal 21764 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_119_dense_maze_kk_none_1122.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_119_dense_maze_kk_none_1122.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9bfc66aea5263f3e7b884b8b884ef23feb421e GIT binary patch literal 20593 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_122_side_vault_kd_wrong_keys1_1123.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_122_side_vault_kd_wrong_keys1_1123.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9251d2ff90588551b3038b466dc998db0008ea GIT binary patch literal 20687 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 Uc^}|iAdqusEKisH;CA=_05vis7XSbN literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_123_winding_corridor_kd_wrong_keys2_1124.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_123_winding_corridor_kd_wrong_keys2_1124.png new file mode 100644 index 0000000000000000000000000000000000000000..540a2d94d607f91ed60870099165266d4f60bc7c GIT binary patch literal 24911 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 VtH8E!@YaxTce(E@|N6+8{{!~#$1VT> literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_125_side_vault_none_none_1126.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_125_side_vault_none_none_1126.png new file mode 100644 index 0000000000000000000000000000000000000000..8b49039c700a2d4c222bb540541ea819f8093362 GIT binary patch literal 13035 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 bh|<5mt@q*SS#fY3h~YW2A4

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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_128_sequential_chain_sg_none_1129.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_128_sequential_chain_sg_none_1129.png new file mode 100644 index 0000000000000000000000000000000000000000..d48799098e7ef76b8d3ab21e22499dbe4bb85fb3 GIT binary patch literal 22077 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_130_winding_corridor_sg_none_1132.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_130_winding_corridor_sg_none_1132.png new file mode 100644 index 0000000000000000000000000000000000000000..79266fead7555c2a9228a294bc9c947eaa84e161 GIT binary patch literal 20140 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_131_dense_maze_kd_none_1132.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_131_dense_maze_kd_none_1132.png new file mode 100644 index 0000000000000000000000000000000000000000..c51b0f674f04799f137e96a88e96e19e49f2ae08 GIT binary patch literal 19791 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 NB?Hs*72mkr{(p|;=>-4) literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_133_winding_corridor_sg_none_1134.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_133_winding_corridor_sg_none_1134.png new file mode 100644 index 0000000000000000000000000000000000000000..1215884a805e25264a6d0d23f85eac0eb012e01d GIT binary patch literal 20482 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_134_dense_maze_ks_none_1135.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_134_dense_maze_ks_none_1135.png new file mode 100644 index 0000000000000000000000000000000000000000..622b7b4c6ba21c3c1bf5e4bac9d13b50d2085653 GIT binary patch literal 20300 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_135_winding_corridor_none_dead_end_rooms2_1136.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_135_winding_corridor_none_dead_end_rooms2_1136.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d8ef87afaa6f3614f8880f0f7f86f849d65773 GIT binary patch literal 17487 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_141_winding_corridor_none_dead_end_rooms2_1142.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_141_winding_corridor_none_dead_end_rooms2_1142.png new file mode 100644 index 0000000000000000000000000000000000000000..7c697f5595044d0fd75b89a473aca17672de5611 GIT binary patch literal 18030 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 z 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 nz;pcR|9$$ol0dP%_T7L=+YMNyCvkS;Z} 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 I=akR{0N0DhtpET3 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_144_multi_route_none_wrong_keys2_1145.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_144_multi_route_none_wrong_keys2_1145.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ba68f80164036da00067180ed718145cfc98b2 GIT binary patch literal 16230 zcmeHO3sh6*mJZbm?Ny}K_EJTO)mE#Bpa>BmL`6kwB_aay3`haxksxmZNf29YMWj_k zkw>ajBk~9jF$D4eDWW_K$|FKvDuzHp5+H=UbLPZ#=g!QUxp&R1b??k|7OcgewX$;l z^Pm0i{q67H`#V1!_4cy-SX6#w+^MTqzc_HMt zjIaKbzwzj){fCaX1$|b8E-8y2Pxt6}+QN&b6c6Q8v@b z>A6IS{R6nT52iR$OYk%2%yRJYA-{k8_Zwqw3A8nW%_~-{5cV*pdd?eH2~;=%8(5`8 zLUI~^_|W`A1w%zA>$xmL2%=Df0%je67sSK#I@lW5q~B z4D9x%$BRT-1fW0&r5Hk%W`t-MnSHwvLCv1ACd|xm3L2Q%V=(;K3|Vob%YA$+G^3@e zN2}HLb3WL;NoQ%c)*+W*6cHHi+UErxQXl>*h^kd!&=T(MODsG5)%U8qOaq5$FPJ+b z*fA#+%s-@DlLJP%;CaIRnQUnjds#}!B8z2(if3-}LN@zj^YDyypXb=q-+tvVi3)dc z1@wv@E|)vgqaXtM*-9iXmP28(=`ufCZU2RNjIQniyqd5t^Mq1ooG37!qISV$&k2r` z>!F$_57DYJfu`))AY|vceU6Ys|BS&3TR)?OX_PF3wra&y6r4_O;LCZ>MQsR4AZs&V z5CEZg@L4NpGx->9+Tult(V5CKwSW2Xy!-=dX42OUqS>HX|9l&UakB={% zmkbi*1LgA%X1_wseq~57&ora?PNVtC_b~iIisFYuD}fvwS7)fEp8l*%mgvmNvFV{xwRK zilRhvj#tPUiH3OKUZ|fa<@Qw~QKKRNDq%1~7~Bmy7SooPVEIBTz~B`nIt1IAsqPg1 z;E)|La)^bWZ|sQ+Q`~I82pGmGbgT5CagjYMi?8TbvQa3!jzY-l;SBjENzU!?3(Zmr zd_}r)6^%rw^x7m*L|CoamC`LYG+d`w>wib;_W^R{yjOv(J&c>^i71q?rb6XdcF}T8 z3}HUTpyul{hf@PoS4|EkLy1+jUf&RBF2xi!cG^?8$MA2x@V^1!9nS2KF;^PIa_pdE z+mB(oQTBYrggqwnFv3x?{E_wpxbk3tK`!!8QH2(SX$#$1C5fOV86Y)K@|mM!5`=LK z(Ty~|MV8MHJ>lO37Su6b{lQ@ZP?=)SNFZiZdfjC`!0v1GSbG#{Y3Pmd7_g$Q+A|~; zi)SFli)8i1*|S#JzapxznSf3pAl$0m)kSg_ZW0QNQbAgLiTK>d7@Q=y08l+muJj6m z;byNAw;-`Eu4>zZi4HBz%`XAi;E%Olm4xva{9WidWlT^<5@~RnoQ&1_<3xmf$P~1$D2YR9W2^vT(E2zp_w4Cz@v-+pwO@fAIUHnPZ_BLi?Pqje8JQ z+bU~u3k5(((W#Xt-;_VL!O#XoG^3J?z#E=dcoh)z`yH@8z?d?tv^z_n4gq*!ZT0X*`N9MTnNjQ z#|X8-nJ+tRhndEUcD2nNT?MOMU$nl;U7}@&f?*WQpZ6nUhi1sk=H_N$P~~;4s>WSe ziIk#%?>D-?_GZInX9^@J)gx=hbRobHxrCAUzr`U;vjQhpptH+svs2BLTH$~8N19NEJY4|263 zZP;DkDc1;Q)(Ed0-bx)14X(fF2j5kcR7mn*r&kR`$6*Eseyp-1(;9%y^o>=lFKXF- zpkot`KCbalDNS*#BM97`Gwe!8^TX@!k+91Yj$X44O#Q4qxymcJ>du`zZrQZ*+ceEy z9}<>B!tO{@B-FV82^*^<8H%O3SBENQgK={0>N)K9RNK=YLkY-IKe*GIsii zFgxZvC(g4P8c1VmtC-jxmg@|aRKoItb8u2NURnetv#fYaAA&aih(yD|uW7FnG}m>k z)@n*6i(-47scU7r8P^>}X1`fMNiD&S%Ac~f*&Yb>Bw?SEP0nOMAn{Re`+P6O?IwyJ za9g~gs^+e10v%o8CfxK?x&Ntn3Bz)h4!m(N-UecD?X}ogU1j`v4DRM`L-DZnHBMD+ zi}=2Aa$HH}pcKw1r@_;MpmCkaBp%yhNWAJ^90O0(Zj)OtbzHrCspIVd`i=haJdZMQ zvUj%6J?&nfkGwx~Rk{|Ii0wWnegj{X{U+h@%68{Omju;^7@XhqnVQC{?Edj@kucVZ z80;HXc)vUp^#!gfaOgu@Rdt#t{E9)#W-<^xD19f2J3~gHjxan}G!IIPN8K^hcVt^v z^YBEFQ`C<>rQBLcS%GBNkm}ghTi?tz-uG&ka7|OgOst+xtRh&$l^sypC;#;tvaQc7@g!3nmmB%c=%qLX4o^>b*5znCi#tz(zh>R zu((X^F2wGropcc;w`7)Q7`)3b(p;;we;igG7d3|BY%xkx)+W5wzdek*qquLRYU&Z1 ztB4U{jro%=!5d8I6)c3YXb))?Mo_>!aZ>GV_>c&te&{Mb-B%(H4iT&yPa&0|%Wbi5 zD*H>E+<07XSYscx6z!sPEmp$ORrHS?QA$5ls(TV*zP=zq5%#Kuq)%72D(a_lW(o_R#CL;PAc1T2k5&}%0%OebY%JD*U{0@-I2D68%6;^Ou~z| z7Ce&AS0C_$?sVndVbuBg0bKnF9CB&}h7h0_$*w(vyVZEXWA0Xr8nrla{*!iy<=hi5 zkA{%!nN9}3ZW#_Ko&`~}}3i5-cp zfg5KE5Yk|8%iD}@tYIWR%tduoD~HdFZA8SR5Bx;*btn;wi0YX#{BkmkF_Uiy$gYhO z{cinr6$?(_aQMThIAvzrP*2!=gIg&T(w5_$!3u|%PlHd@;(tsI=9lN25TZAE4l=?s z8~*fpU%WS+5ysc?Rs7du?69l^@=)v=rtww#IXXz!=Kv2Ur-7`25`K!lL`mmoiq-)7WEPx4 z7}3j3+d)?`0Yfl9Ej6_%9ZaD*wP;uaax*1>pXk43WP1$Js$x78#pyRxb8{(#tpTB_ zLu)+bCY~k-XOz#dcoYmuo(q!Qj*e7m%xa_p`+lI4Yp=A@_?*2c{{*8%{h*HCjBfR^Rce06O;zg2SMN`ztfU`pl*yVgYJ8*Lsee1s-Rbgb5PPz~Dfagqfg7I4l0; zNsRm0N}*N)QipHEm9%kZ@+8z1H+>Gu1?1S4DFigo&9N zq_nqJ4tJZleo~(^d#>OBti1#@|&&9Y5 z`aY4I)+(u^%7dAqIu>@gF)hp2Y@YU0(4$uRa`4#fxC}f2Kp-D`{<|>}Kw}_~EKgkP zZS9}7o?{FR1PipoS7cNc4xOne5xDm!glW11Yzcz5U#8|;YKKEp^M{(uA)GIA&0ZF1 z%Uet2+gd}F2K**NfM!ifn$i%lV#wKPqS{4ZwF>gEqsr5C#|{wbA&?)zYyQh|+l$~Y zLkR|D6!<54xSFhCAzWTW=Yd<{Jc-H&GpI2$?Y&0Om97r zA082LD}ecZ&wNZ>bMqCHfX35%*lo=kB;l(RyRcptQ!h$7B@ZA>2Bd3OilF0 zUby^dvj6W~M)>;{B^GA;8y2`Rp~TW7Fti5`j<@h+&(O~UYkBDFyONTfoZ@OSr-wHOXAr!_Pj12dY}XwDAhG9>O*+q>&+P1g@_xgh|nm6)#D?&Rh)ET;$X zno}Y*+!&95qU+ZUgcJy#V)?B1d?b3@W$Th9OS%BWu6eM`cffa%8Za^gY{p#l#El-U z*%K{R#h*de&pbM@;KJ{#1^yc@91xZn6&Mn-B^@D`MMbAYR|~SpEoUYl&r(_0wY`0P z*Wzla(G*w=Yr3_s7eu+nf@QTsvDZdMMz&WQJOvGfAb^JX2LyO&J~^|i%)7X>bPJet zpP@0`<@FCA`p-)_G1227ycXh8b~uYYQg|2ACP=?T07gSpY-}tA7RjnJq2{n2_rP}T zfFB12hld{6c5E@Zy1G!K(fs1F_6Tl}X)MT!eq3SXG|^~W!uP$s=8@=gPK~c`a1vz% zKnEK)V?^4}XQ3C^4{5R`R=k>TWhGx9NtD!3=40l6^m2a$tS}FUu6Y+m=ZPh?t9lBz$K83YQvb`^qgli=uBApmEXcbh!R@(!}nn9cSHMLZ%iwTmp;3yO%Cs z`reI~46SrC$nIobOIr1g&R;5Q?gU@H)6&+?uB)C6Qw#k12#iVRmTo2|<=%NbB# zC8$-8dquuPj}WlD*Yg9VS~h=oYSTCfVxyuXpjE8}ig1lq7j`1(rTbqT)Vq_`D;!~UnYIg zW8}MU_ij^WCP98~Go^5Y^~DkQBXzc4ndLNI1832a3$<#CY#$&q=?MJD^!WmAP>|Gr zGG*(i^vH;BZ(r{*b`UO)vVr~x-Unv=9Dp9_NF}e1od~|LI$mxko&U}?kz54Xb)nGK2nyvdBT>9tl@3?{nq#0ZF|nFgO?m0 z{7ZzCQ1kPeqS0Uqa!!E4lTs=|vIbt;lUwJmcnZU_P?6&g>+5e-nfL$o^#;65j4&?qTI}a`ok%zEYtbzw-r~hPa-2)c1ii?X!!0mJb^HWXJ7vP5e-0cw? z9di?0_SngqViO%Z(n`!y&!ef+MKxA0Q+HWk^Rx)M^AVT5h6@IAaY>0?N9l=Qcqwkr!e z9DU|Y{kLE*0`z1azYrdonK=??{I%1~!uS6S7T9L$C3o;MPM@w!Y2}siZa0Rs z^0tC)U&9iP@AZktkIy%`{2o-*X!5q==$c|qGw5<4KMEd@iELe4d}`^F(?#r1?9*FG zb-YVsXJwMV$+rM&Ps3O3^VKyqfpMO-&R}5VpZkxv$+7S1e*5-q5xZ%$<^>vq<26&s zZq25n?Zsc#Wkf~Y>0JQh_m~I#gf$Lt*F=hTm43*HDpdcb@F~Y__D@zpG%*%+u7Mg;qmz2 zEDts|H=nqB_ilG@Z|^$=0NAbvqGI0(0IuQ&O)4p{?j0x&GWFU+GJ1wBrgoL(b>CW4 z^P8C?jrN0$lsyuWm?M{DBx^r4SsE7~Eu zCv7=j%Ym1D!WER&o4Q=E`K3=t9=K+(2?e%{0{``zYUk$lpc-Lrk$Ma!i2Vdos&wD@ zIpooh@2`^O;gEx1=V)yRZdsx)@~rvG(^qvHx?O7yowM8k21w55rUw29V$-=R;0scq zWbVx3X7g#bK=tTf8~5Im!L~{ABpL7KnbB94P-@cyux~IK^58E`bYcMVY}(=*-+<~q z((y&={A|j$qzVvBjxl*CMnW6x1{avU=M2>`1aO&J#N6#!!R#x9PI6{p((A6 z!6`*?6i(F1leY;GSuWS_6$n#V+UY@@uU&E0W$_fF60-2AXjKq{vmY_h*9ecC{d z0D4*ggB(@M(29BdOYjb`xjh`DP(9Djw+wa8@vriWj*021o43OC9P8FYkl#01B41$se{Ck0kc?aUVxTM7&l5UR}2BkhW8?5P&JbH*G_AtZ*Qt zQDx_#+wC9+-uzGx?)6{QUj8%m<`&lQpDplTXPwlyCdE&X;w7Rlp|qAZ+uZ;H`!lx` z)%Gl)xE?R3$4;KN>4{lJ_@7I}E>nv^x!2KoWHQInSzN1obsFaFlr?|-QC?Lk**AU?GXv8Yhfm&TlEA)y5V3@e%sd<6z8J5 wN6qg6Wk{f6h*M?~spZgr{|8943qJ**EZhu~e)N13Xj90c{oea(_lD>G3xoJb`v3p{ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_145_multi_route_none_dead_end_rooms2_1147.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_145_multi_route_none_dead_end_rooms2_1147.png new file mode 100644 index 0000000000000000000000000000000000000000..0fff01325cf8b53596a6f79c92adf94a8c96a388 GIT binary patch literal 16126 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 Z*9`Vm^o{!U08tV2<59;WRX=!N|KC>0+DZTb literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_146_sequential_chain_sg_wrong_keys1_1148.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_146_sequential_chain_sg_wrong_keys1_1148.png new file mode 100644 index 0000000000000000000000000000000000000000..1d05c5c073d3eae0f1ccfc678a329b5c770285cd GIT binary patch literal 23010 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⪻kBHPJisl(ze(brnO6O;J@VIU{N)q;JQyJUbo5Iw}f zh&po!WY2@fk206sy3S}Rt`50X^C$qWv9XU@&tr@kI@TQe*i_q06qa5{NY`B!oc zJ&33hehIrf6A9{yL~ZDhFW$Dzf(I zxvTcVCZ=tkTO^rnPpkL%+LLm|sR@gFR^?pmRh{WGtX|e{3|6!`%>`EPVICA5 z++?{w>fvy1{^bsEa3@6%FxUe9Y8d`g-RPhfrZ@_fy*CN9{yui*s?QY;fAm~Z__x`D z!mgybL5$u`@D0)m?B&uS?Z*xp4s*MMS?^VIwI?s8J@9e%A2>>rL-Eq9i}t~L$1U{k zZGt>b*kL+WtoB?sF(w_c;Kg$DjX-KIXDB7WQGS;}&T1c;T{0_XMN0i}%EuJPCB*JsivOm22f&#cpKOMo5) zIstYi5*S3n0~YHvGhTIUJK1Mw4#!VZqRnw#bmU2UAdnk!hrzqz1+#9fJ`JL>13xys z=?#(deu~Id?yjXR*4zv_L|Di$?HrnS;A*PN!bf#_JnKMFxI*z#EXANgXlekatY~wI zT6whtV3MOnd2_jaiTN0+=QRLaki1|H8=j=_dCl4F>OO;CIIb?Hm$b+5}bvb)?+?Ae+YGlODz5HWNC z=gatdgHXVNyJ=(a;M^J$PaBHP@2tuP(B=2Il+VrX{tpNUM*k*VA>X|dZ?qhdv^q#=M ze$znmAN4S{focpS6WW>2}1MofH#jgymAN7Nr1YZf@>C&K&1I4)^Ta z7i_*!<792rI2~w`r}8)7ybb86`;}VEcDowD$814GHJfqNWgEG4D}1KUuH%fB7Fr`O zkd+qr52#k5c-V=&?)#-LBR%0AV+ay1k0mzX5~(`2tG7G zeIo4ZQBwFviY^8)Kr&-{HWFOj-HRe5KY#*(JiCU7U_iYx(CU8?tlc-H5?Vwhhn|0K zb1g39MHGMS#52!yJX4|9_(N0X-2hvb$aE8)?bs7b=&S#wYO5^KY0d*d9&+-lzlQGq zdlmZa^I!=6V7L4=3n;f&MJZxv%NR^d?uCIISojfYE?iNf@gyKAU=-m289vUoPLw_c z_>wXRP^*Bq)^0AXrXu6oF0j^5nN7@5P*oJ%MWJYU_gv7h<+fgYSo<=507=WpQK+ccsmMmeQ|&=e`0!U(xioWe z^6?Sj=iGo1M@Ewe2`!A_VAeK`{=x~{--$MRzQ>0@5PHvqlTeM*NF=^coksY~siS_KL&T&spL=f3iSyOGdv!uDQCaIr}*YK7x^fUiNK4YvL6m`$R zYFKU{LQ*LCIt2yVcXv-)-+B){QHsp84ItO`e&~77)aouwXX5F__qk#H4Sna07dF4e zfg|>D1p_YDn4B?;ZA*W%Epp$~1gH-0Oh zCyk6`7tE~r(k3yvklX5q{WiI)Rs)J-2yvb$+@wl|vfm)%*p7=YnJ^^FQ4n0egmu8( zU~YM=vp$>Fp{%S)U->k{F7M>I|prTvb-vPNHCi-#( z*`uqu-1^D(c^Y9oOO=fB@2qfkpNb6w)06UxrNA#jq8mSYyhDfez%;v7&{<7XgRM2~ zh#Qmz2A~N@obGx`QLMPJEpjVoMa>|SxMrEX{ImJ!M@o@5hlB!d5*mv?fg!BTWbhQR zp-t!HJy~zzRF~+&dr{}y3{sM%gF{1JC!3u4x~i0H*8tAZW{E?`gch4`6!%tjKB%nb zBV#=@$@(p`KB8|7D0bqpT}T1jzggPN!tEq}yiv zk3Sw2QC3Bqm$EEC6(9Nz>_S56^|G%W7QUCVNcW(vc7{56dIAsAa`yA{Goy$B1gGO! zEpTPXn-88Xy7=6PjI0->Rl_@)z}C*@b;q!~pimLPcy^HhSXf8Veg)Ui8Lt3#ItU=6 z$HpQWXk9Q-1K59AID2AhdisGCcssn_9^_>90pQO6&>#H|dE3vm;P)WBOf|2**ApFC zXhsDRbG^)|I?XpE<9Und{#m|+@ai=1fSCvVHa#lbMBIIW!fKMD2IevgTI7}{*sBfZlY;dcz6Hd_Wnwb9+(1cR%JVDFDN$F zfp71sQi*sr;Ie1*Pl5c9r^~KE*L3Tc7VxYSEgnxqmB4?0;_{zi^l%tTMn;BokE+2} ze+ug`tDY#f_UiSS#}0si;s1uSf1;kblxKCpw4uUhMqN#f9tcYYDb=*YCJ**Y9{;>_ z1{VG%=FzWU^{nMu9|~@-w6yhX!EA6aV|MoW@aq8tNZD()+YzOaH*fB@tVS?{eYB6{ zq0wHQ6kztfj6fQ0FV^d?Q|q7dHhoLiub?a~%L5VAYgh*vKA-=l>*sg4D1O9zo^g2s zPM^9gAXkCRdEud-19f%T~+RY6I5Cm7f&gCZVfIUBgPwziR+)m?a?wsa|cR{x-aCj#;1 zD&LYLm)&#mOg`3YOj#O0GJ(U_egR$XP5hNLN5J9Ex)c8)Ao+)@{NdTZVQ~9j_Yu%3 z#(@d%xZ5p{9$K&WS3Db_jyUN^i2O-5&{soU{n|YRm&s=$l#+9xGyfX)LW3^XC(cZR zC)UA^dMp}Qb{S z++>|4C-etYw3n(MH9F`4Oz~{&t{2)&4^yzRjWfK8cT|*>?dHs=;-RB~CoQ^GIcDGUHc1UBrHx;kuu=Xy! zSxwNjK!>0Co zq7R%RCS{6Y=3=1m(I{32w=~v`f3snYQa8-OoSv&0D_Ok>SUjQ}=zd9aXfnmz$FFACdITV*0rmOouz=@ z7xK1pSGo3#SyF5k41au%OqNa;w6(5K%{}3jKNe~~)*=X$+`!bK7g0OaH zSxG?YV1BQy4ml+{t45gDseP>HZaVT&0ye6pVZK{hidbBj>E-ej=OiOWf)H{ccp{Gi zt5e7YdWz=p@$v6*n;;<#DeX zL{HXm&rKF+3Aj~sNZFhS8lu$XSeZiSq! z1B`$0=8ZFFR?}qfaHnITP%k2`Xi$z1Q!wF|&h6d5KTgCHi=!TZJo*Zl^o{gCNi1#b zk?iocygImmjSG@nnd+ba+3Ngc?3k?s7(N=*PuJ7C2c%i4*vP{e{7gxB^>&DgsA%lZ z->z8mC73Oaj*sC-H?@o(xZGPMeC0%Z<+#^gJ~4+J5i#E!*f=Un$qF4)#|HB%IdM=e;6i za&lx?kA#}fi?WaGgY2RB4yOWqSWGm*L0Jb@51BcSF7MrsKzQ?->ROc)ux@xn5A&nj zO}FlXdA?R~({3vZ=sa>>N3!O;0aF9)Y5RO#&o#I=BS)hR&5iO)%9V=N5#u(En#PWPi4HFf^`_!W*uQj7vw z7#`F+x2tWQGZzlzDb4yr5%7ax8h!viTgHaTL)rnb0lA%%yE^$=()2mTF`T)+C4KNG zFLck@B>vKF<#1m9&gA`0>jiPZ806wHsVx_PE7&-2LxqKi7MW1HS>RvUbikv%v$4>b zk-L((?WZR4oQbc{sO0^`YAWrhhPZIz)wFPEICgs3xLOLbC;7vBff~64<+$2+-pHuk zS2n$QrGwN3?%>PiVp6w|x{7@?s&K>l2MJ3FteG_cu4KIl+jK)&6ten@0Vq+G*+Rdc zwV$;reDuhw>IjT)bZTF68BNDQ+MWkJ_0-F>T(coh8qrnwwS|6`e&ZwD- zMU`}#EUmOaqa1v;im(uoJGDm#EDyL@k(I7%5ZQXBKDD~dQOhM$&uKc>hUR<9*3RXX ztxq9i9_@=$AVUj>^71(*)r{vAov~XawEh0F&UAKQXYrA@{K2>9?RY(_9rSW0ad=-A zR*?6ohS{cEJ1wRh#cpxxS;%u(KM4#-Je(afPPX#Al8 z0C%#@?2#;6oJC+kd&}!mR6>W9j;=a_o6^7d%B{I~0&U|!UKPGj!zCC181T)J_KzO> zY(ygkUl2P>G_Mk(nr^MP9i0qyH%l`W5?L!N=`En$mLCQ}Oofm@$c_7=v!DhnbsMw* zLFM4gTAR?{YkgL#w4?e*dLN~5^q%j~ReL1Rw9d?)hg9y~_;O5 ziydYD>~(PkPZEx$ug$i!9i5=;^PeqiX%^{OFL;PSW<{0HZE7FTZO;SG9~0qM@|fKC zqbTBWT)cw!l!|h9j9Wv5As9A45Wy{Riuj^4$-5wxlA;?LPcs;CBD@RCfMQpWRz}To zxz)#`8a!@(n_lXi5Z2nJ-h#)*8-Qsx5KEp0G%Bg_vQ3YrMMs+%0`OkTCvBjB8-o(G zq>~~hnpgTHjx4($CJWtFOc2Y>E3^5Mq?k03SloZmqmcQR)OabQjgEHYdy4d0{?wl> zvX`@sSsKEc!~DJOy7I#EmP;;>-`?zJ*e$T%&O!@VYfQcK^N z`!YR%D94Xfao}{>j`c%_K6fK}8b%87w0O^OA&(}<=qrt@qcUN+%8)?^u9F4;zw<}p zRXdBsRq;SKJ1WXg>%cz}LnDK1g9nf{#Mltfl;!r^7O3K3_ZaOz7Kj zl8aa7s**{-R)iYa$D`$QK%wM6S3BAKRrG=KBB9)eO5tqg7V*@iq$MoFt!`-(Vl0uarkaxi$A6(s?8jneF#-8;K5pdUWTvTOn{&k^R6e zq{{-TUiC3W<}2c4XpzScJ|n5>9Jm^eD3Hh5A6f1=d7GlG8^ryYVGG^}$4q&`yTC9SDBuGTAtrhCQ6Mp=yQ7vNB~%b^13LKA{nD|r ziL_ec`0QVkocMs`^uN&#{T?mWA8Y=$ovXD0;51d@7Zw)$;**jlaqbV$WQN&g%r7(C zLj1HZP%V_ewhxd&vsz-P)nD&(La{dLRd#hw)KbY*adk^*5nXleU-pk8yuvL<`J09V znjT{RfUK#jt4{>Nw%6l|MU+bEtElmZ>C%5`ZY(MS{>fzr zH7p~Wjk}W;dcn=0G8O!u!f7C713Z8D4y@0HSm&SVRgY8t(!}K7RnXJZE7Mr};^KYO%&4$m_DxW&_1rKW@y`^PIsef#a zc^_M=2&29DTiGfAk$`N~5>0ZtapN(aUN^~p|LZiDzvxNcP^r>-)K)bJAmIsgWM<<=~7E}?(-sJ>;Xf~vi0Wq znU5EUqM7k;O)mT&aufgf`0pvK`_h($ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_147_dense_maze_kd_distractor_chain2_1151.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_147_dense_maze_kd_distractor_chain2_1151.png new file mode 100644 index 0000000000000000000000000000000000000000..b98a8990f5ce476f6096794ac5f42afb12ab0c63 GIT binary patch literal 21684 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�gR@NfoR; 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⁢B=p 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_149_multi_route_none_wrong_keys1_1151.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_149_multi_route_none_wrong_keys1_1151.png new file mode 100644 index 0000000000000000000000000000000000000000..df68fb5bead0d7ffe9db18bcbf2b0902b9db43a0 GIT binary patch literal 14666 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

L>d%aSpUKq2rlSB+lg&ssTIA9JO}X$w@%#$;0l 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 I=akR{0F1aMMgRZ+ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_152_dense_maze_none_none_1154.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_152_dense_maze_none_none_1154.png new file mode 100644 index 0000000000000000000000000000000000000000..feb88995ae48712ae783e7325620889a22890aa4 GIT binary patch literal 17050 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 D-R~#& literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_154_dense_maze_none_wrong_keys2_1156.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_154_dense_maze_none_wrong_keys2_1156.png new file mode 100644 index 0000000000000000000000000000000000000000..42501f56435b85985e45e24bf2ac40630eeea315 GIT binary patch literal 16657 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 Ucp3S5V)ANWl7 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_155_dense_maze_ks_distractor_chain1_1163.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_155_dense_maze_ks_distractor_chain1_1163.png new file mode 100644 index 0000000000000000000000000000000000000000..7528b54b258a337b42043807b33b374b71ee8d64 GIT binary patch literal 22330 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_156_side_vault_none_none_1158.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_156_side_vault_none_none_1158.png new file mode 100644 index 0000000000000000000000000000000000000000..52b96358e3578611b676c03e34d8dd15f7dfe72b GIT binary patch literal 14618 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 OqM`YZ#XmUy^#1^1P9TW@ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_159_dense_maze_sg_distractor_chain1_1163.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_159_dense_maze_sg_distractor_chain1_1163.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1122ec5b6b84e47592837d6d8da6728a746bd3 GIT binary patch literal 19590 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 q3YSO@c>4G5=l*9qxOq&e@wzNx=h@UhM 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_162_multi_route_none_none_1164.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_162_multi_route_none_none_1164.png new file mode 100644 index 0000000000000000000000000000000000000000..5f18077ad1c419e8aa66a1a354c20ef3e523af60 GIT binary patch literal 12033 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_165_multi_route_none_dead_end_rooms1_1167.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_165_multi_route_none_dead_end_rooms1_1167.png new file mode 100644 index 0000000000000000000000000000000000000000..acfec3833e55cbafb370d715dccb095e0dc75aaf GIT binary patch literal 12074 zcmeHt30RX?+IFl}#+A0zaY4b>si+815GZTfic&`f6(u5&s1%SbQ9^(OlGNIY8!!&L zA*2N>dm^NOB*3enM%ki32wM^rl1KuH5JJfQzp?Yr^qa3U-%MxPuh;+2b!EHW}3!no=~yUzRu?^|5-|j!gN+f$z}x{uc*pqt7f_ zabw%?w$pFdmTfF}|C5j36eVciw|Icxil{6u{XD-f;caBik@1uT&3pD_9czki=^c#O zacB_#<(r2c_l!8iGxj+vaK_@tWK?$CW+2jzq0|&PM>Trp>y=&3eWqkFY3)R!2jvY2 zc44B&Q?Z>i7exvp zYRgE>(1gbyh`O9Pacy@H4a#OC$D|L?l)|*738GwhUKz|VAzB8!TE>$LWinA-2x@CS zl8DpvLJhqM!_j5A7Cx`ei>ett+l1O0;R)hIJ~6tT7om=dm&^phRDs?OmOBdO)Ts*~ zu7Plbbm`;l;@O)Hz*pt=M{CLd8wU`H!K*8!MxfLp$HU7Ds7Nu=w(8=0C}gnYFq#78cH znKTLP4avJmrb@cDGR6ITOTbacLPb5D5RWBs%;v!6$eNkCOi)sC45Fn9osw!j{Lff042Q|KcqG&pW$*9?0lv#i!fB(Xp6Ci z7=AkpnsRSh3E`5@{5?yWp*gvEY=bD6gC8J#QTFhz{}<1)srt_t(ePvW=MobW*_}(4 zuhbpA`_}wL^!&y8_qt-K%Q`d?D$-`=59v7;Ue6YYt~vK?;Sl7QPNB&l%-3~3<+Ljd z0)@-iF;XPITHFcfJ3FlfuP)XxnM~1Gzfe8IAtvGaOKrH@W$iX|w`Veh^BJNVG$FQ0 zQk?4A%z3JO<*mR4;D-B(gZyEJ*@WJGcDYc^AED9WK7O*WMZ__7Mfn60C)vbm9HHN^ zOiGX$7eR^BS3C9kv?k!D{qTeVsl36<5s5_NdQ#${o6=Z@Pk>5OKDKzdg%F(b3j4QL zhb10nv>j`_O0$2A{h(6*D%dndP^2OmnszrrpPP$)ANH$C+M51=qa;Z(u`GCq_57lB z$Kc=~%`qzMROLtEbZnXJjT~KR<24w!xek#*VIB!e zzEKl%=qR{s={Gv*hGBXx%s2*fM5?jKWWXUXY+tKkZiL(&SXtT_Pq%NA8I&*+hOxE7 z99;FaHTLr=K&a_ScIC)8`Yz5cGB8R-OkaWLxB;5(?l}#1QqGjoHirTVT`PSwWh_G! zk4_!AsMZ<5c;1Y!@=!|^foye)f`G986=~G)T#$}aT~BN!saZn){R3)EwUXBA&(y8%ry8oj*b;dHO3%)XRrCsvMwT#T zlv zHFqt1p18}Z88>9mJI}u8nVn6PJk25|NBS$r_ z(qYX>20xhgshIQCS6@YX$);>{gX|Ol3ny+eIqes0_0RlS ze0eCAdyF!IV%0Rs8B{}@Cak{4yX`C_N;x>AAca&Q{?<2!nRr1hfxdM(148bW=|sYu5%}eTkny@M7vcc!<>afX+j(#Bz0wEn>Ta!_-SP zWN|iO+sRA)-Dh2g-z~GLt4FaAgpo!&kE6G^ryxr+5b59*o=MJ86E@T>m z+^j1dS(A0*Ena?Ax|97fre~WC8Y?_6G)@UoMgjlbGn@Daanf7+$Wse@tC+yUWytxq z74+1H&c#pl?rv_$bP}EXJ8W{OU~)&3>d7sB`{HC$V<{J>UkH1(&>Eoz;SSSI4O2g_ zAO~@~M_gG7ZEYoaUwi|az40Z=1J0$?+nVOt`CurL;^tZ^@=5dQq%GOm+2CG>rVe%9 zDE%njj~`df3g#xKv6FX^GZ(b)24N6qUa02)Z8!K>|}oZSEhfhIqs&9%^2J z)oJBRUj-J=<|1v4oo8h%K9;Ws&q_>P`*~bA~~A zVyk)N=Ss36jF%1#4b^YNb%on7CcFqU+0-=ph;5D0M+JGaML!Ah7Z7i(_WT2Et~QIG zSS>Yv$|t-d#dwqtD7GNgWUaZU)E2ii6`X{{d^pGy9`U}tn=gsT{jH%G$$;Gd5t$!p@b6Grb)7ntb*=t-07=^yOQQR289rcWIBg&>C6Eto zq^G=D4Z0P+-csK5jVM3PH}V3MOR&{q9WpqL znI6M`q?HW_qYRBcx$P4vvl}aEn>J^zX;4U*D3zSl!=Uz?5{ClP|{I zl0OOIW?RsNvlX6^AsHh<;R74;YaZT`^Pcbz&xI-Q@F7|2j6IOxu+B&OGz+E8_{2NE zBS>fbovx>!tteii^$oJTe<-xFs#V7Dq3q4i7kAg9Bh!b`E;zRdB?*F`vSVYg6r%2#$6CoPj;AKWQE&!Sb=z=jV%nVzXV z98NxxXvyxSuiKYXuQE| zzUA%}?=8cqu4kp)JP;5dl-w@!^V_Emxr85(cemD*XN4uV)sR(1B%?;;MjUgyvHM~Y zmr=o6)uvU-Ik~fx^6T7;%S@*bOZEsqnkj$R@X)Qb*4;Y!*admBvWJBv8Oeg#TVks@ zt;1tpS~qW3R3Q?G9yUY7t}!_0ofhtU_|(H$B|%iO{9Bzz1)$K9=uvsXN7|A8{qPop zmLxn=HiH+>Xqh!U@2Thj7VlKJOh`4(mbnQ(>X(Q*?CGO3>T=BO)bSb*&gbuO6;=@t zwqiUvgmSbh^+ipMe^LF=<3Sor&J_Cw^JM|Ve@8S25ouc!w;B&;;roZDGJP~*1|3VFqB)S#@g-gI$4cqt zch5f;k(X`^3b>YRQ1RTTr~$(wX~Tr-4>>9;Exz^34F8pl8?fnOCg&6W%@TR`q2!Vp z&kelJNUFdlKy~vxmOR@D1)ANj_#19E(PUhJmtD@470=(dL*dW#Gn!8Y5#TsjC`@q0J zPZq{*hqH5Eh2`^v$(;ohiVMQKYtFDPT8%94x8Wc$v}&Y^dfUru6$Ne@{= z$0CR-DlZ&OYt>3;%z#}@qse=n6HX5`Do8Loxu9T+**yVPM{$(+T?jEx@HD2rV|;u( zQ_g~E?%CVhN1Qvi6L;yGojyLOX7kGXrFhTXTKr&ga?;V;+RhA-ou*BV_hhwh4?9z) zZq?S-ZV-23Bt%wA;f)(HMlaQOft~lq@6){O?EbhL zlisnRk$+e$k+ewA7r@b8%by-T=hkowcW>Tr$@7C_k3G@&JH zTh>6>xf|*i{NL>c+8U5c<|X~%9{kV6pKC&#dO;h}vqd>N8XAm1^yHoV6!g4~qz|X8 zg(|B|%{Hl+p@{rkFo{l(MwjJXetbC$ALPG2UA!{a6U8b84X@l-TGK7zRfYujJp!Gn zKM|3Tkl?50Q}xesb93wN+$jL#XN|2bw6wHTG@czGSC=gR^4o8}1+}HmSVVId-TNkO zi!jk}(15shzLsP%CcJufj|hEOEHSjIrz>p_oiGg>wfQRUlr@NMo~!meXlwhVu(;UY z=Jc8V0FBfXx_NV2N8<*iQrTSwe;Av34UPsMJ>Ke3Z!3+uI;o?~5*nYvZ@2XN`kLH& zt6@&VA+@fhD>*P>>YyvQ6MPT@06xT2xge5&O^u9RAc9(N1tMz4>J3DQ{uCxr5V%fMyHv|M=?$Eymo6u^3x%Uj;&KhQcy$w z!`Qdh&;{&RES9TAX< zPHgkbT)!2}_Akbgm9fHBf|%!8h`itl7olHa06siE1m1=>dL98sHn3tn2OgxAZyP2 z)f|1Fzx+}c%{7N7u+|E5&h$(5`K#&ZM`6^-$*DK=!v+rrI2_&$W@qpMShsZ~ zWpw>WZ|@&95yYu=%Gk5QzZraQD67<(2m)63@ZrM_|2>CmZ{I$2tE|l25`)1Ifo@m? zD1?Mpo!$aTyPIxPfE4p?chTFEq4|Ai{(O7&^t5xw`Ro(l3Y$qQq97cRaI4DFyXWBqTeH!ehdsFiGNw!%tDZ5qhB+4-Q<1aJI8~A zw_d$^_3`fI8Pn6#;uQ>kRAzj1^kcmfkd&cuxuZaKii({)Jebe1HAz+9jaVa-y7vFfT)BeB1 zoWD(uzZmfUJr`^y$+T^w|24Z~20G=Gf!E!03;si(NfEc^51! z^DbY$OoVoPR6wP=0r-=|LS(xWuu|9(>JMPYEEx~koGljqF}Xyg(dCXZ_N@YB3x}>< za0lEQg@uJ%L46%zr!{%+gg|yY`By6KzhX@JiDw6X$$#{tYI*P8y*HMzgUUowX{DJU zm%b)QxmVo@8cX!*A}=g)?tH@USte@k4`8Y?+?@BHs0k`8D%$Q@3%nTw7Q(@L(ac-B z!_(55aqZRLCx1@nU=DvB%n40p*D^CvDPdLoZBug(c^d-6yk|Z1k53X+J^+|X3PB%m zsA9`D(6Z?OD~slql9C$Md!^hyaNxjf>fyz0dVRBoyHMGwUzexB&db5mAvM;d0v8|R zUiY&{s%FV*`aKHr!d<(eE( zS?FJ~&p#P(KmVWmr#sq2@h@Zad2+hDbHNgS+>(pFEWYEWO`E#E3a{!*07ZqFAisJ| zkjXZ|4m^HBO1sR_L-&#Uw|o<)1B9 z`*?bWfCmDOZ{ECF+p=ZhDI!szm!1dr$BIt9N18gp-7t^=>sn_ED_#F##W8KS?k}+{ zwRi?L85J3M%dGV&FHP$E5Xjw+tbTP_)JAh;8mABb3n!m`N%Z>3ym9@ye_7wq1O+U; zcg)NrG`zXHgpV?x))KeXa-*A=%ovc)SZyE^s_C9t)p;_Md-HSbY6{`&qF%WvD&hw? zB`pX>@{5D2j%~KH>-3+5p8qd)4O*~6HZC3n&qsBD6$p3Dc=igOD;u<&eO`wfh=4fs z;HQ6ue`}#KWJ?WcE&WHln*UC|Xro2=_m*Pngev8~gWw2a9SEt-c-!w={Waj=KMfVX zLiGB#4e9TxUio*s5F_Euc<`ZQ@>*!4Y0B;h=<%tXnI@Ke=oK@)$m_)1)HjWT7>;*i z=(z{0K=;p^Bdb+Up9l-9H*(vx@V~EwMUSp;ia2%Z8&JRQ7&|6}fOfMJprxBl?YJSC zPtaT*=xSH3_ed-kUaghj00p7B8VpRnldEgPm~QXk!|?e(iD4D#k;~ohZwCk92IhC& z)Upj9)*mSLthMJnzWkY7yj#@Jo}8o6;1rsXXR1MK(6>zL1O1obRO7jfrI3q$E3N=3 zBhb0jopa4)t*=&zwALu8`ZQ!c{67}qzb)MUNx}1@;$;7ZnAe`OQHh`Ij>r!SGP`im z7XA*|6936wM#75%mgZ2?)T<3%v?hAUZqra1Drv z>*zM(E7Q^`Y((=l9;$UU5grCvF1cC!sYLtg`wHDoSJ$9hw{B&U%w^v}{gQuA)$8lu8ExI3 X)WT(}%Lrh*kbQgneQBSZ{Nn!ra?4Qa literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_166_dense_maze_sk_none_1168.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_166_dense_maze_sk_none_1168.png new file mode 100644 index 0000000000000000000000000000000000000000..884ea2429b386b2d3afaccc030b848d806f07458 GIT binary patch literal 24194 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 YLao=UK=p928tmMe3#UtdcDnh002lbLR{#J2 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_167_winding_corridor_sg_none_1169.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_167_winding_corridor_sg_none_1169.png new file mode 100644 index 0000000000000000000000000000000000000000..4df417e212c4deea7af2d2e3a852a99f7111a58f GIT binary patch literal 21321 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 WB_3b45|k{+-mmSyD%y4IyZ;046h)-~ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_168_winding_corridor_none_none_1170.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_168_winding_corridor_none_none_1170.png new file mode 100644 index 0000000000000000000000000000000000000000..598110c6f44a5ceb25c1aa411c9babd54abc6422 GIT binary patch literal 17394 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 UOi}{08ptOfd2g=#aPMdT4{SdE(EtDd literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_169_sequential_chain_ks_none_1171.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_169_sequential_chain_ks_none_1171.png new file mode 100644 index 0000000000000000000000000000000000000000..e085245273b03b0ac29d53f36c654060653f70dd GIT binary patch literal 22357 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_171_sequential_chain_kd_wrong_keys2_1173.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_171_sequential_chain_kd_wrong_keys2_1173.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe2299bf4da920424b8ce0be158eb8914d419fa GIT binary patch literal 28212 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_172_multi_route_none_dead_end_rooms2_1174.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_172_multi_route_none_dead_end_rooms2_1174.png new file mode 100644 index 0000000000000000000000000000000000000000..04501bc872ad5975ae86c1815470055b0024c649 GIT binary patch literal 16924 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_175_sequential_chain_sg_wrong_keys2_1177.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_175_sequential_chain_sg_wrong_keys2_1177.png new file mode 100644 index 0000000000000000000000000000000000000000..eee961a199a5e0dfeb5f80412f5627be2088cd8f GIT binary patch literal 21424 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 PPKH^UA22J}?f%1`7PCKH literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_177_dense_maze_none_none_1179.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_177_dense_maze_none_none_1179.png new file mode 100644 index 0000000000000000000000000000000000000000..1c4af52761b0920878ae411a64b26809cfca951f GIT binary patch literal 18526 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%0Dp^twTe;=6avEIoo}YVTG0 zTYQ13A&7P`C2{~UeR@`Y_|#EF%{6&aT&xdhL8`=OTbQK@2=L!08|?(yr}(y^wXJQg z-u>5IC7mC+8K%2vR{aB8qvO)bz5%`J)R3v8V)tYA}Psn&8?c2<_as@!pU zAWbN%%6<qo`JFlwKjFf0hKT0Dm{Gd3QL z2>`gn)T}JWDy9&q0}mh8Obek5x)+d0q#}0Kjkk%d`@Z<1tNWuv#%5-&)?q%OetsSk z){9ON!3&GM3`Y7|Wo4Hd2mX`%+c6B3bApeL%ea@9U5?M$vyHx~YhNOb%UoaJGCYcJ zrKA*sS@YF&{-4<9_xaNA)hz$Bu=&lL-yer<{ytLr{jK>n(!m`+5u5+Tz)R7I=l*;| z5T7ssWUiMkT`FQ0#+>MCsR@P^+3fopufOl_=sn|f@ta=2A$ypr+{_Pr5EOxT%p11oG{cT;Kb$0pgjILr~OZl;$NTB*42SdXES1|GKA|{J;LE-rsqT-Ln>G;Zo7a_ ztE#df9h`Xg(+pI1rK@~0%udJ@4VRUb1qKB@&B#*m_wjj8&_8-l&>JXUKy|$NCm7@J z*%NG*WVsWIRC2Skk7;XbJK*-4fT?lwKL`+z$fTsCzzY}lRSe9h*!9Q8OzBi8uQe+e z>M7{{5b&bbivd3k5P$|j!J34|im2wK4}mMY@BgJh|C3Gut<3M=dirn46Sqo&D%?XN zhi7MJPZXUv zoAoFvoaG8L4!%_dFzCG%=CFHa&W0kH>Fet=F*WUJcerf4Z{K@Z`}KQRo2FzA3ph`( z>%R|3#a)PjRVhRz}9GRr#vv0U+HvAN*eBZaV z)37^X-zRyYqf4q83*6MzeEyWtqH%ADR~A^Sszs2M>c8E6ah1=u)02^-@lFS9I~d5w zZ4mPg5NO~-o&@1u4N6Hyeh3DOap$eHPTGuWkr}Ro;J{<~Z0nPjk0e%yrBKx~JP4sl z_2<-TWFXv^e~c+ytd><_ZA(>#!I{IoA41$Ie}tsMX386Mdlgjk(OWh$VqteqZq&%Z z#p)q8rfM&RLQxDVx0Gl=)K39CchN%7ZY*3%aC5U$UYOLVzNQ`?@YI#t_4K5px{?oj z#$!F?B9Aw#ZVm|(8K^+=HLRlZof0K^yt4G$g<9S*Ue$bJf(sIf1RHgl_Z+Qff1FqB zZ{z@>a*@84+1liD$JQwAzW^PI^^K=SP>(>Fu}zwCX>P)_E^&^Hk-XEP&(BA?lTb+m zy_+Cu7gg3K*H708hvv~>H!N}jN7#af&380`_B!qyAYe9i(WW0LRsw^UTcE@{L=goE z=_WCOf2@D}#ToPYhuWTd{mB~dsAT$=`*%*?56q~+-wbYV^ z(}Jk0*y@05`=6g_(nOO+Qw9bq4Iv$Riu13vVj_Xw(num5N1}s=X+}0;)vh;hV(5y+ zH8UJ|Uy5zb)rwU>!VFhP9x-jMa737q&f?Zjy*m60HM7lNVHP7s}jInt+YY6!t@WcHDsaZh)!l>`cy*)E9d8vKXtJa}ers-X@%J#`9u;{^02xOG>b<^pirVWs13Ugc(^%95`tt@}P zm;yX&zO1e!X1a=7m}6Cmtq5imrq{mPW#D-bVt(O|)0w^}TE)oGmfL~A2bwW4a$+d6 zTG=xi!NBAcPe)0?w=<%|H>I}}w?N5)@)>iG3lD)&P8|;Sq+a7la_*peqfDK{THR;z-Ce8sCtgY7lcseax&R4S_+1# z^Vj*urlO<~PD$TvYy@X+KT~A5zey1R=i`&{R0uK_9$_2cFn+q{B!k!P`0d(5MAoC$g7d#&TK8vP{AXYMdr8CpAwGW#Ap^d}~;AciQ&;a%MkdL+lEB(uwAAf~5wvcr@ac+zcr4`5Yz5&;b<4BEQ` zKqnyS0TTJ2W>whXT`qRN)K=J8B)7J-IAd!}qjG^jGvU{@pKsfo)Zc4IS461_5&jbK zQB2Zy%g_}?>UMdj1CPiv2n75jzti&NPYON2>ZqYoE3GfCO6I(S$Qt28zPH4~_tY?1 zCDqIBWvd_Ru8{Bl=?x;N4gbGVRliR2bXjn-?*d|_>*~-#;MmKCG}$CONCJlzhzkk% zfW3~KZB`>BM5V0QQc9Ng*Dn#c)$Vy3fKjekP~` zV2Q%qU-2PW!xrr+#asIAGc)rGjS4mP>wRPE2XsYG#r^~Cz7Yux>%70V8NR$pvH|Do z2NZ68ep*qa-iFjVsqH>O_u~))us4!v2^M%vI3VJTQv6bG-P$^gdX3$mwGBd(GL8M^x5A^R}@zia?*208kbS#B-MI-dyXJS> z3+3nKe*Gu^n|FNOQQm6Gs;88-PyTev&+oRcu8IosfB%It>W-VrJA3qJ@Gd)UpTFu0 zfr#xBd~I>d=mO_5HNSB7v~^(W-0+Sh2b(mlQH)A2b^hd@Gm%>^+?Ct&{e8{jkw=wZ zol;iwpO<`)rYBhWC~ko^i_ddS!F)8ri;a7lNI;P%w-z&{{{vW;6I zkYD9~4+KAa_^$uOQFB8+S zTkoW6d$PvuCqGG@`ua?7zD8D=xHcY0;f#nql)Q7kElJhId3|~4vi`F1ahQz>Sx4x$Z)IU~p0bWSJRKV?`&j$v6|BS6jnp#%x_cI8vg4Xj7|!6h z|9tIqb4U1UMc_bpx@HbKZ|hFhNC+dc_4{AZU7{io(_jU4M%~h9CJV!78KKrNTrx(O zvC9UDtgNhTq&u?kYd!f;o8?py8*_8>x+#q^h3_`nUaCztG1>O7d$E6s7#_H~QF%*e);?m#} z%X#7Rz8TTn)xokgr!G2gp21U2P)6WCl9(XMl%WgvL>k`-$w)3ucc{>m({_c8-V6U)D7+xmrS8L7SPV1oN6XX&kOm`MA!WbdZw-ZMg%S082np2NqyfxeM>qcHm85`f^ zqwnM`q(oGpW}78YF;q@ypY*`s)l#!c(S?O8GZcW?)25l#ZU2y8I?ohP0_8sQ*HgUZu33Cv~m?YkZFsh5eId4f>7$t00hRQ!n%OeUo74`qNYxVT$y_VP(q z5xl-AkXT$?9H_i)__;Z>_J>~T`Z1G)7`!*H~K%k>ub=@JBL-VzowWM^Gg0 zqv?SDn~7QT)q~!I#Q+j#ILnkedhvvliHQj_c^b;9z0Zq<*Nq>TWQ0!ZZAE9~ke;5I zOAnd9dNSoZ&TR*<54Q^KwKTvo++dum7OcYb5k8M4Hug)r#&8#Zd4NpB*?Kp}9G=u; z)K%z9AAxRbg_GF5ThW|iu-7iMR#jJv-8^4*wept5-aDKI%uZIJ*=jXCYR|Y8mqFt5 znmoJjrJ_P7Bqkp}emq|5hv_sD6Ygo5hVj?Uu<})D!vU1~uk++G_z`L6>wCwy{1Q(b z${$T4zLE+0_Vhk+>b}gz=v%S16~m2*I2d%#Z_4${U8fW0=I5n zt@~0IKf#G_0^6A_GEUO;JsG>Zaylib0eW+lR_o>%cK54R!BI_~f*Lk+{`X3ULhIyH zN1zuNKA0yA8Jjn}4+&dE^lwKC<#(MfUmggkn~;*&aEug6vP~5gc~aNN?+vWyUb7XfV?#6qCg>m1Sex+`#yvteYG}oo(oX#+*2$gp~ zie1U|C2~5DP8F_ZKN{&)^HL}qQ*YOaDbM5}CRh@Wt*VC#9;pkGFjenUX+J9nNwK(Y zow<&Xk)`zIWWV|aYvcR94GFWA-IvNiVLrGdzA>dm>K~_f2X(1n)>|h)@F-0Eyf(rj z!s{M#yVg0?Lw8KPNZi$?@7?W-8qDgaW#d1^)2NB0jhjBaFm}djzgvcUy)u_XS^pgH zsHH_Z#B26-!*26nGdtz>Dd^K2{{$RWUFcVgK@PGK;~2fn8^Q3oDGt13Piz!_Esh@v za@@fs1;{C%mub>JSs{_grm*CmQkbdtNi%GMoSjL9Q&|~*nzS*g(v)*8rK_{kVu%8Y z)O{!graIv4KjhOg9zL;y*7ZF?;e6i5x~}g-6$)}MjCXkrx<9LUx48+Pf6I+xL>!F| z`kbnxYUiF+ZWgat%I~vB#kv{LucoBVp5&HMyPV_n7e72tXVB@ z_b+V^BqIWlxS0C-`liNkcPT1^yVe3z9^t$jSrXjxX#HVRIGpTCS$cY2v?urDo^IXl zZ+8nr-7Vk08w%&lZADHQfxIF|ewohct0o>0HQKpAH84$lVN&ref9oyxL2ndFh1a3} zazYQR<8}KrkP9|)ShIpCAFxVxDChrr7$W+74~QY2V{MNMLC1ZS^)A@x`Tj#%TK7Xq z`%i9v?%F_k!E+o{_vElG-=5F>dBt1BiCC9})W49q1WI|hPud)r#9OgA5ua{7a-+at zHs!?9ZQ)6bb>c%ccp%ipI3VL6EL2OPj6IZY~5OuigchE9?KQh8oC@49<);IgvjK7 zcek|ZcJSQ`$5)2r6i)Jy;V;@pB0}0{l`a@C3R_mPqLm+2*UurFCg&_gm~r9D+1iUA zWTUU~3R%Gui*gDxKjyY^6G_EasEZy7Z$Tw$0%3|+w#?sp0;H15LjjbqCZ$;G^O^yL zZ+n)Ky+5u`XE-@{+&(3^FP#@`iBFR|9@47H!jL|9k4oul&(}<72EwAWSwp_j{sx|X zCBolrur19)_%jdubWKU>`+k=C`K2zJ_V(ruEn+Ffg~Vh)KE!Q4F5d@a5yJh$v+KMg z%Pu-Mf@>^i&fhaYV7OB$DCLNl{5{V;k2#SZhI1FM;M-gjgfkf#9X}x|3|1<=^}S%* z*4x)Xy|-I_FE6wH!FXH=71S!{WdD)1!2rA?K|%)oMUlBg2GM%7@Q*%B7l%1bh36kEDJ!GoLojxcz=dij;1eT&sAiBjNMs&+X8Rh{Q4(FLuZr z$1T#leuXMI-rgVhOT9-AjOnm*A_f2EZC=jOVE6j6yRDzNG+*$bpFd};gpBQS(mu82 zI<20O@z&e3?;3vJ`(ud?mUS%xyb>KXq?xYx6IX`%>g-~!N|=Il=)$|xA=vI&j;N8R zC;e?GgaYcTP*{6zqNDC@JCkI|*G{^~8wL4BIXjlv7`H{eyP-Rnke3%v&wP7st}LCu zCo$qi{!$?)WYp?4jJw<|#C?+7TLQ=JqJV>SbRdFHyZXcqdw+F=w*-CXJo@a=5$peYBX0 zbd9>Bh92muqB-WF5TYGhPmBaqOHZaLhgNuH0pt}KqHF)_aDMBjMapk9jlhd zFR|cGVQAH;(aA(7;^{~tK%9@rIZs8L*4~RZZ_1r5KHS>P`*p4q^YFPV`Q&%PzDoo6zm}wXq@& zIXmcVeum$CNU#Vy(VRuCKcB7qO#R|mLH1+uZobsrHf#2o6-bN&3WZw#ARA|jKsJ@) za5#Ms6?YH_1anDZWFca4aAXxX?t`a%6(g-R-7z$5c)MtoXR6SVtWoT6A|50*Zvi;n z-kNsjlR^_iMCaQRvxK=vir7Q8;jeFUP-bRkli&`q4pvrb3xxXBf#Og`JqzldrZsfi zFeuJo_3J3#to2fwF8V%NI(Q~C+xtpNadkMAZ(eqR-<{W%0V4&rKM-@QdBYF5-R4~tghB-@7>n|~a zf*Itp2Ejv;#S)abjF0hfN1X*?Jt%-G0sj8p3mXEMFZ}7nr__Oq!TJI7LyOzQ98TTh zh!?KV(I(aJco{2$oCI%bl?372Gm}r7y#QLxwe9QZbWa}!bDm$Pgt3(5q)iN`yN|u? z(qXyZsrB<_+pc<%CZrh0m7mA=)pkHR`wgDBfBTh&hOUj?kKX&8NusjUGJ8eP5}vfj zmDF7F$2*4N<$~=rCts*r>!-;*=}QYPFCN}lUy7EV>e)4j8D8zlPLKHL4E&rUO|%{&C;!(rq-JyN0VG0E68PX$e!cp%>&`Qk{3qk-I5(VWP;WNK+_Srdj&JHOU=opeJ2}IlX8@O>96o&qnJ|hJa(;i2{Pj{r zrHHYyaZ63Sys>)(XRPlUh;-}sw_A5Wbbiq@0O!8(UguvRX`YYm^98FNdqD9@48mQm zVAy|9DL6Q|C!XDf^Lp6-nqmnbxH8$lyEh(Z6NEEFYdB7|r-+r7mde`K=R+zMKaytp zySS zp^d9_e)pR;vr$wLky_OE<;xy-QJhqfBC^##X%|Ncor|zZpSz53hsVQD#9!~sGLp5! zg{xy~^7G{f1_zBR9$h%HZ4IRIi(;~RQc_X_-RWp3U%W80)p6**+6_=nC2$Rm<$1OvNiDkxkKJajplRp8?d04-A>&Uhdra z+eNW_+VGp%1Y7P`nk_N3cC~67b@Yp1t6S{ya`Z4SoIZ^Zj%ADMqBZnsCWu&}xr<@3 zVo1+G^f8&;!_SVHY`-&pMVR@c`OXEWjs9ty!Gn^lXRJmv9Fd<67FzTAbv^L%k7HM} zh+W&j8_MP1sg(o^(o_moD$n%gKCApov6h9_)U4CJ`v8S|w{-lev2;{17JmW@O4Th- zPsMpS)}i*Dr-!Gf%h>w|<&<#Ffoeg2BcS!bilznZ5D>x6b-Ay34^%>r5LZf32kPfj zy2)fQL51_-u*oFH4R4SdV_o75G#^9RGhadPQh&|VBUo@oA0I$QGzs{RH7)}KTOe#( z@|fu7^fallN}}CnuZo4t+lg68Sc!z54KQysjEi^aZ?9*zq@>qy*>MIwfXitS0{q-{ zgaElr#Hf9a1kH3Op*iPg0psjKD{qmG7B$ybB`(I7?T2Z-ILaG)kgM(LW4L$J)5Bvs zLb=|1epN#?fHM$CJ#C&UM)F7K5HUdk8)Oz?JWdPUY$S%*pXhMs0?5BQK7bhZzJoYr z0lG>E>vy!YgSI{(6z$^<`WI(N9zs?m_F}pj=W7Q~w`zzcY zo6Ua3FxYENiFwV&6rJ3eDn2s~<6s&bu+**<_mO=>NI<=x@&E*fzodXnxH&Pxeq_19 zF76(G71qL=9cHtWwV5B9*LvZ32d2r@)zvLa>8!fzNA;6_+&sPYXBdA&d+c}7M=kQw zI>&fRT(hQAYs^ZrH`<3PqGcWx zN38HEHq)%;whgR}^;@}=Av^`0f0Tgz=^P%ex8Z48KiWL%yqlYwB)Z3o|J~bcnmx2s}1jD7d~uw@|?qY2SZ~ncQ%Z`Q|=7dTiNP zCd^OuowVuM&GpLapXoluhD%z?lf-Y2z@9oHX9~F^iG*>d67?4q2&oxEnIp zb^%;l(7LVnyx=w>Cg1N;IVo2)7!WrA9w=V5te!pRBxS{_|0T>K*(?X6q~D{$Mx+&Ee*{eLaa)z@``4N ze7dY%N3r9^*;*`-O;c5pvA)l~C??22#>wi+S5K8`x|&K2ntX~6k&gbns+LV3S?Usz zb?i_RgQ_-?K($ZGC0ZsD?=xQsu*{)1`(wx=pInOamK%c>G_vWQL;1PN7gzR*z&36V z0hYz(ihjZN%?EG;U<;-BjPmKP57(0MQ@2uCnMtc{6k~1){BfXxmAJ?CvSAOcLpl)A z2ZG4?k)FDCW5lW%deIMuk;BUn)jcGpjh5a=XQ@vkWgW>IwdOAvJPt#qVc(fa&=f)5 zJ}I@Y#@3)DxsziVIjG^ePG+K34XzeC2f2W*{CJ1eq?HL%8yo_>d6ZM``H^D~n+t7CHz^bR}u#K_`j|kapTM zG^J`WY7Yz$02XDtilR1e^s1oR@LN)Xjcq(Ngw3P!wmHSz>1ZgQ>L`nB!BqSD4Y5@$ ztOlUTt7~Nzr36C0WGkP2c71gaMY1T}RTTTjn_!MhBO_JX?Hn8|u}hDwvRLKCM}y%; ztWVKd93JZ2aAm&nTu**n;4r4PzU1_hZ@9mR00TH7S-+V_M*G9)u&4>2FA=f$vz>=rM!vAJ`R}>JRwG2-ai@2 z8KgkR7f)Ah7PD&?ju44NXgDi>WUX6CR!@sqHqkdzx71UBOp>r-ty{Edzcxtr=XXRB zKhM;xAgBjq?HJo&f#YxAk3E!`4-J(2d2|0HfQq7eP{q+fAIj28lf~9!2^~>Ym>}O} z{l(}R#M1Ok_$bMx{Y^s_i%EHWD=bdm@o_X}vGFoHpk7hxhr3b6n`=4uyXd9k^CYx; zfCKYk`d+egM*}RXN~=z;Z-W`s>9Yhgq6|o!tHX+L-Hi3|MUuP3lw&|SxZX&==OHI3 zW)1!V*$D_z^W#hy#sgVmr?>c$*781=G_Sn-c#iLwVA~e}HQ-i|bKT~nhzzA!WjsOz z3~LO)6DBB7vPHRF=o*t4$Z*r$e(neTX`PNj+pErXn_DH)G)1#?X5|ubHG6(-sQO%Z z_{RBC>hTsjg`_zj_F6JzzSb?(f56?o{>RrEe;iQ{gt|zz&)V668&7@7O^Lh^`nGlT z-}x&twxT4yFRCq7M~%p;XBb&obzk9dF7Mdf^d|)QE!uwZo^M~1`*dk^dOFjw*~e6Ew^?YCQ8c-61OH!rv#_v)BAbp2b++IX}J z5DjBo{A>WSJ4Bm1+Gld=!ZBJ^Bh|FtFKHdx4I|>iT8DR;N z<6YAQcPtGk=#umRIfKnTpjA~><sEe7I)Ia}j*5$mKXMlNF|D8a4=@(|Q~U8JH-d$ga$>72BC!9>O@K@c zaL1DGJ_bw-z`N1zgQn5jq7Pc*wQU#)H>(?IEmw>|E=~;?35r*~WaD}3R%CK=@_6&q z3WL_u`=y{P(+b{@P3-9n{32*-J8=Xv=J9~ z=8+L-L~iuc*w3FY&3W#!v$M+rD{`g8wj4e3qK$q+%Fh}O`r`yP7z`%j{3cnk4NaR1zPwG}UxI z_C#ZuZTV49%s2N9&;?apnqzEVJD<*t-dEg*Zkc_!9k$Tb^=31$bCrPB_0{5vVVI2` zTB8pCrsI<@$!5;$p@6p1-z2S0bOe-+U43)oLM0B@eBL^IRvkRXQ$Gvp+<)Px`ER?t zf-=7?1=60nA=%<3;8D-d#DW~4h_kX$3LS6_9yvt0 zbBO+yt=5nCbljCeV9afLn!^;~Mu3883ooeeGAa!2b%3L*G*mHHeDyJL{TBPC4nLS5 zA+Ghdi!`Q*l*WQA*4uki1NE@?e3)4b{!N@vf#mRww>9Ul(Q!h3`^R>jlda0^Nhnf% z+i>HijL2o3Gy12nmJE0C?ZUE82QGOS{)z_2d}aT>c0n$!AtB=JyS~}d!sex&TRbrTu$6%S^*@jCo-agW@mton`0**1*~q)x559uaNUVvI{Fr^-Z9hS z-86e4ez6k-M{cy`N>L%U>)6iX$(=%`yUV@?v?S@~V!N6OisnuU(G)v2FIXD9fs7rj zey0kzcj&T&urOM+z8sJ()&}UN8wuZqYRt-S#?p7ro<+p(L3;@K@uC1K{{Npo3ltJt zC!Z?UdG)^m4l?P%eP+K33kzFVSy>HzeZ!M0BrX;eS0TcDsHMf*!{!%;^NoECkxlfX zva$}SVg>g~Rdun);BMbn#Kn?g56Z#fLhPMaf*M<;NU4gz0@q%aQS|knX)gN#7oAmK zAEsWMwEv$9sRcFbhLsa_^a)$s4$%v0=e^>;%p`Uolgw2_^y9h`$1YZvdZ6H3WGgg$ zW_IEs9KOoLH87p^+I;m&{E42z9d$uV*K^Jt7`OUhR~N{*QT&q{aJTd%r3bI2 z4_>RPklNh=2*IqXD)d=2V%;Yagu&Y<0+{*N&6AAQ&V5dA3E}N%lBHKLQfkP|B%Z4+mThjJ z^%lF(dI~4rcth@Xp8A7z2VL%6)s_5)bg6bU+T{&aqe__h{OXcW*!<0k3@Izlb{P-Y zKF^Sl2`Y@wO)3?EIO~H;jVatennG`pYfSW{XIbm5y((YUO6D|AF(8m{?{5c#TlvRP zng0L|dJ}Rt8_xL;w)DVB3gROA+F4j--7=10$$AFrECZovtqpmibVT~@j(mTP)b+l6 z(jIih^p6|Z^)IC8=4pMHG;e`)wgXvhT^S02$lla8fQWvs)FOu6hfvD=X_ZO5)c~6u zQ@}r-7HBc<`ZG_=pjwlMImYdkRQoDW99%X7|&LareiUDEv_V)_5o>TN4b8}{mgE9)VX38a(3jrkt%xK^s;lqAAsAZ~Cps%&hw0(ypxkI7$f@hfszPsn??KOLFh{G%XNMo_8JmS6mUHM0tQ8x) zEd-K%6og9V%1E~(^(Y|q4mbR}fbM^d1^6#=pM?`}9iJ*MnVXX$pnF%(1vpVgJ64v@ znK_|s5+nfcycvD@{0){14x1d2mxN>Z--ois=opzv>|<4qJp`ij&qCY6)7$%TZ!tVB z$P7C_8^utn5BM_e*d2V$G{q9;%@=|EssX5jLsbCcCjsY068VM`A^@0Ny?(i6jyxH= zPWc{E;2O~ls>RqAO zRg~+|y{|f?h@9nH-UYL&4VA*HD=YoG)jaKcN3i>VS`aEXRV_93T4`YS!xsOfX@6UQ zJsPb3kUYwJRaD8{-J)}IbJKTnS> zw54dNob#|g65jOaKzSf@ytCxGrJ!3ntmfMI+qPXN5HC)ibRs$of<#wpN0zFP5#M;_ zXwv#wwf;SMsSms8^~W74cHrXg_uwpV7ewHTR*~h&v=c%Cc?3=XqKlx{=o}ajm$mqp zli=T_2X2b0-%6{iwY-VzQ#I^l+*+qFP)J+wGgRv1f#iYX@fQV_kfaJ%M}5X!t_xuf zSM2Ar1@e<802f}KWNa)djBd{aerW^H{$2-mJ&W!y`@2^SLcfqP(=jI5L%n+mvu{i! z0XOUe+IisLC{7jvg!I1gdq+$R=AAai#U_9Y(nFs;lf9LMDk_f6N9xJCdTSXZ(?R02 z5)GS-oF@_kUl+^IBRyjD2)g5s_2wg&I$)$4DZpeHB>|DcNhUTnb_B>dhrT-^{WS|% zQ?yrltR?_melns%eknP>(SEu;)^NHlW;kD?1&>!?-hVkLg5Q9dhPf{LVPomihyxTP z2^Jp8xbM@hLEc|&9=`b8XY7GkGw^LYFusRCya3-Wv^d!so#CV%;<_<` z^^N8XBqtvsk7(wy1K-WQY?_-$BQ#eJz?hz!l3MN&Z(uYC1WrY*FLb~ldjT3g{o4zxOHqH&R;XP8Q7Sm)n5)9M zKE;KG(_UhUQX4V0+Vwi~^{kOVX0(&Tj}-utX@Y7hAu!N6q^6{YUS|xC8xUaV;+`+5 z%@J!n-*oAajwEqKICgUwK{|Zx8e=yEQUZv-?L)!z(x&fyKa%EERd_yRscMh8Hm~DN z)w{py`MZ0^0A61WSi}SW{P#NndEm3$33Pj7WBq_WP3FipJ$R05S5Ck*)VHIcG)ll- zO*}JEX71hsc}w|$`RmwH20zpR-D}h70GDu^BRE@Ebi`euw^4nDy!8&m2`rT2SHP`f zz~DxC@Cr?P{oC{CWbL3bgo~r^M1jXmveB-IQ8MwQe-dnQiE2LJ5tjL@WDKM0` zK5gvgmanx7a`%F{xxVQgYVyK#dWbi3t(4Fvm3VErdw2M?HeJp}fxCxv-yM~gYKl{u znvK9KvPa-tRhydp4sv(s2j;1dTp+Q;-fT@UazP^Nc!hc~RD3mss=&mH5EZ9Vm!BS= zBf6y$M9%1R>uqA zqdgu7GsMA5(Z^W&dqB79;&={n&dtmX)l_^N33u`{MwNhc+nZNtEw+MYx8E(7ZEX12 zep|_CB%d3a&L}HRf{hap!&h7X- zf%C})_xY-x!Lg}%C@D}M!!XDSYMzmAqtob$^ZBMPf1#nboO-i_?|yyz99fpqiCACX zdUt~w_3%PT?RwP5*()o{F(28hfqhxp<5H-{>@HD4LVbF-xE`Y_M1SMyYNQ_OFf$mw zvh01?5rV_2tJ>?95iqvekoatQaN`eli5+BBm(U{TNh|(w*2Df4;|ne$hv-+zq8Q<{ zUCde+m?Vs_KTQIf*d15eT&1vs^5}xMQyR@vUJp z43Dp&VE9~P2Pov6e0xc{oU6$+8b0`XL4yBAPEg+6`)f}q*TRL>R=0{K?h$!z3*tt= zP8@(c>}{1s7!>Vsf^nh_2f#;ySldY?Op_>#+@7vBzK1khE`MeNNLE_oi(5|l8`AUP z{kdJq5+2!^naX)u2`3Qy@A|+IAS@pob>r+;!crZ+a=LdHKT_^Sc%P3io|LXqkM*_QMqhMb~y}ccr^bL&mOg91!S%U0@ z2@9RZawfhGYtCMfDFRvRQ89_teYBA@f1knTlNhrx9R5Wrz6>GaUEAHad1qtipy5vC3-Xd5eR& z%=T`cTHo+O{@zlCo1)C45OANf{S^~nN^K>w6_jMr2kC)7jV$MBHIaC9Qu7>0mtw;~ zPLfrvLwm`eN=^6`wgZ z)0Tc53nRM=?|r&`8B!qN8^`%b%WPU<5RNB zB$)}-b;lgnKf!~aLm;ClFgdo>AK3G>IkOefEg7{zMyVK%fqj*K*RlDL!1l!&mpObA z3==MJMvO>7Ahy7p>@}Lk2z5&hUHsTI@jQ`oFoU#$EwwZh1VnK-C*PL0mYk&Kb_oC> z(y17r6>Eal!+a5V8T6scnIZ?`U_ld7KC@jC6Peg~P>`KULbV-(du1k?Z9HA(hiZMm z*o9a&C`fmOcQD_+B0m-wTqnRdpI1+BZ<7ck=#=B_$*#4J^&*emkp=_3qWr~{l!*_p zp*@OvgzFs!teE05qVDQQ2#NvbIDZ7aq$agd)I3Ju#5F1ie_gEixOTNUuv?>bVliIC zm~q^-%=|ey&DSJEa*iqc`~P@f6l;3>yxu8xFrzOKGBk1a%_ zEs9DNl=qT{$zme@D~;0w*l0bOkQ=~L8aR4SfJK`GlY~HPSq4%6cFzyYw@;M74Bls5 zddXU&JajKG(pOIa1N@0#D!j~5%0vcnpj+BeW9Ck=Uf%&0nD+AA1huo}E$99jsJ$j= zr?TUq_?nf~)lG{5+^PFu;z`W$zEXQJKoncp+e_qHD!6*>^f@>%XW09PIl`Zfd|L9a%guXp@BmXTI|ae8@7s>#D~y(3lKdaYcFp-02WZFFKu}7s{e`4qfhdiTJ+;(qL9wHn!QW(E5>4^ugF$ z{p`+-vGnxxTPT!_AW{<&62=XW&3*qjc7+$bFccK514_oqmSHxAgGHG5>$7bKso zuDKIowZ#$mPp7MT;DCs3gep=1Bi)T#^n%yURu^59$=E7TgZ?8Zi~p<*A{cf*#Vn=H zmiq0z{=XXygn(JHqZNw}?0$Q8FyE#X3Kaq}j#)0gpsZV7?=UFIH5@@BQJ285uRQ^j zyX&ila{^CqkJ#JB4Smzu3Hft~-rl~(jjQd<4Fgx>3rQK)l6WBTe=tQk>3D}Yn{Cjh zgaFXQ{UWd({A3jXt<($-=A1zMh&y^j`cTEvo37W&U&Sr$O^~}^4Xo+s>@!%D8tzr4 zd}se~k4Q|Edih0Nm0h@qo<7s5t=6&`58no=l}nv+?P@&1ZNPU~TszcpArw*+-(l#i z4=y+9f?75a^e0V0S9>)}=*^^(C`&^HJ3D`@pT(QYr7M$nbbsAlw7&E@nZ@ia0CW{1 z>$M&B_OCa=v0oXsG!K{Hcmyq{Hd9kvoOV6f1?cY|e`9}_l$7x>Dy$BF6xCY|2X_bA zzUjpHTb$wlJFWfir2PIBt?;jyxO;#{8_b|L#VVPYy(ud*AMC<4Tl2A>{R@cA$zgp9 zYoRuq3d^$o`;Z%Qs*nA zii*qgkcGv}aW$WrQ0al)Exvlo+#@6g^H0h#<5%RLa>z5moBx^597_e3mj6-;$bVd@ z{P#bT2l#}PpqyPQ_PCRH0-*(WR`jx=p+I}2BD?$DpLI@niS6D$!^z6AjwID=?GsH20y~8EXeJP1ZM*(3JM|=Pj{U4? zjNo2El@2N`Bf@XQOs&p2ONLMX6_g& z#N1)!A^ij*=EA#1f3QXVEgu&1ccYyDyR!P9Rc!xChW+ogZT=>(#5}ilqIsNjhtoXk zZfy>P37j?JD#lW1Yap^WX?Eu~Wj)x{JjXEozSX<#n6!PBuARO81o+4tAkGvy{taw7 zL!*KI>54V}cz+LES38FYd~P@O+U|uVfN`@E9fI0qzcU}s9mD(Z^+Znt#yUp(dx5=f zuVUPLpvhY%77iYyy(%p=LkMT56{w&!q&Wu!lRV_xKaEfJ2EGK1 vJfLa4xdN**#LM7cRGI%D5aWji{#N7b(ZIw3;6SaFUOAq<9CwPLG)0t(3FP=X>5APf>nqIIfOpcWxA zB{B&KLu8gQS}Z65B4Y?4M8qVL5F&&mkdWlAVE=RNxouC|bMAlcY0LA34g1Mnd+oKp z;eFrl+t&^`+Anz5@LdQ5vf$JGdz~SWw{)Mdx95Q~mzH(x1P7b&Pu#;@P{{D86JdT3 zhZEr;fvE7nGbcZY^b13uK?R#{{b<`(tIZ#r4i67O+d!c~fBnW*RG2^Xp=U%p80DRi z{T^rtWcmBLkDfoN6Wqr(>C?R*yPiuIa|}XWM0sn+oyLL*m2&6)V;b20t{X?z9zQfQ zC-;uC@XqnQLh4t&2&>7w4808-=Vofi_|I0`+I&!PWK-6J{Rf&0B~$uFBE;#tJ^ODt z+Adr2mY(N>O=8|RbPZpsZX5KXrpYVPYB}}%@!LZd+C=;Rk3$jM{`;I~Uem!t}`<)H5=VniSur^2c&!tQM0e+wV`s=@d!=m@Wqd*|L zck5Ph*Z!ZqD1H?}YL0MOw{BevnkY@b8R)dZSMKNA+xjXBuZW791L?a7hJKcxpGm>R z&J3HtIu=jQ2oS!S7fza-x}gQA^;~%n_o%U|ui0{FQ=G3>&DDAj%8H|sn00&$UNj@d z$67tvWe}u=;ia$+MFi>-ysw;|1s3AhnLGE_SOg}S)7Aa`ED$^G&2rx%AXFWzlbG~;KQ zdHVQQ`uc;K{WfJXbYHR4oQG4-Dql zshzZwPJ~Ux_n$xIs-jbl!VP&StsIr6ZJ3#$(-YKv39D-guOuyRcy+n$<~r`g7Ou0M zdc+AvQh}YqKa(tl?EB8z8M1;L)gaB_dD3K_^lTILOTO2;39&Cs>8-5?rFRM%-a4+; zsIeKFVd)A5V?tZK5ZVW?mpwiHx+=2(WcWR3JJKKeVRvX7Yyr?LL>$gdr0Z& zf$_WZ4K8T~c#S_@bg(_D1Mc(*X74WSGam#^RL#JSsoT$#a0t^z8g;l$MwnX0Bv4f~ z)U!B#eT*U*HFX8Go~BjNv|lr&gNlYKYt(-4v$6|Vb(scx;>6Gzd}VO@IYlj(6N|{p zh&)ziNtBo8CHblq>RCy_qf=+I%=RJc7{b#dqh8c&u0;05!ImF072Um zw*l;n_9#x6hojVK)e3P8MFx#BU3oC`-SwX*3j5l(t1&^a95S@9u=_TWj*`WJRc; zlY>Wv^p=2u0ygtY7bl8R=YtL(kOi82c0z!6+{LnX8_`odbn8}2(d2%U>Bsh|2ob|q zF&AQGJiC5VwKP>NU+;75u85u^Zb`LcH3iX!yyoo2o>yHkh`nP?`*z6SvB^Prw4dVR z$pbzU-|#&&hRZbyytXR(m8Z#R8gC1V6{e!i&}o6jflPf7VmcAQN~dMo9V+HBn(gEz zd>fI1SwALzdF7^VnFl8JU%}kktL~TOE`s95uS=p>(Si)-qi+mdgbH_mw}gS|0-Cab zzfy}?_?2XuDA~~HobcFcCc`}dLcvRL1F_OJd!DG9dkX%|UCpRWp}Y)@%`7Y~PS!ad zYAbD`Ws@Z8o33JJgS^6FFWEl1P9vkD_z?rRvbFa((vq1@sM=Yo5*kN1&pDHEf|FN3-&#A08_IQy zrRY`c%QM_7TD(=Z8gDoK#A)G3p5A%=4!!e>?+YmfHZuGk0SS+*Yg_8()e(puj26J3 zl~QL~s5`@14=?JQgiKd3eb`=uXI08+b93`HKj4tGY913m^qy~DZ2Kmk@vqt=W1lY} zy&UbYD5x$rhv1z_0e<^8p^4n!77xmpd$enUM6;caVF2xYt5&gUbQRdMRZSh zGssfA&LyO&NBq)N!S_$x5gG4QsK_QJGtYE))~Hps2{8l1sdQ@HM2mhahCzh4`4N0^ z(F_s3r@*JjYcQa~2E-CGut6YD#=bnOP^J{*A=D#nJZKDyzOSaZa^etId$C&DZmUw( z4`LOZ3;{wreYKKok_R$Jrc84yZ)YwV1P6PXNU5@tb-UOuS+eA+CMYbdbT%$XNOK_Z z>+EwN+uoOX@P%b0b)Ym*9odbJ>n6N%l^Ly(ttXiFL>Whe?8Zf_Fr9SF+CA79-q_-K z29aw&g&#xO3KfSLDCZu6V$z1W7kkE0@gh^54^5!h7ltP&qpir$Hj2R4+8G{@8PnNm z%CMCZ6?J)mfq^@q7cgySeY&I=Q7V~vI3YD3S~8N`km#T|{gr8tbb3^5l+#`EQQleyE5-@8!b?F&q ze_QWCzLovE5Yxj>caE71^d?e4>;%vf6@3>x4@&*9e44Sxy(BXLB;eZmn8C}Ky}RSy_r!MlHx*#wuZt;yZ}JhU zA+sd0&^ULZo~x=iICsZ`#G(oiWWn5MX6;~4Iy&2K5%r@x#8(x#?p;TEL^vz5Dg2xV5!_1M(M*nkhF z;w4k@{0}$E4rxvmskUFlJlYcnd(s@)V|u8@j9+NBQLJQw(9h2}UWxHw=%N$MY+n(| zMRf&Mml-{>U-980PGT*N8HII|R@)D&UQ8Wx%XZ~{QKM>ikmbTXS6}PJRuK)4D35T3 zHIy>S;>D1CAMe*Yp5tgME}xhn(CX@jS4&P0R^&8@L*ax^u)WH=X~DwieC}cr%Id=j$C{K^wZGA-cHc`3t6Mqs` zJ}3T|^~~z!~RET12`^IzPEz=C|aC!b5G^lNgPgYBU*~INM8rtj59XeTd@{tw!Rv zh=cy}M%T@yoQlJEs^{D+OnY1-BR8!421s?E!Cv;mBB^ zT3i5P(Z_mxHyh+%NRXR2*^2^huUM{2bZO|@-KHVMH9`uJB)v|Xy57bZ2&hP9Adc;; zDBkB696WXigaD?9rvreQQHjEagL$INzj(pF;I*M}XepOF702yMU-HgtD_Fa=ezH@C zR4ol&8Xz9}!?UvN-WCyIFXlqeeH@OpxZ`S~e0nwY?T)y0GQIHn2BoY9RUMn7+*ONn zRF~O3j**vI?B`Wsf{9}@!ebQG=ZZ`BWRIF< zerFa>5<6;d?=y{O2q{G;FSZG*OrEfv(mgLQ&7GP6mvhUgR>(F8+ zgo)B>`bDCx4sc5pCnb7CpPMpXri;@iPVOJe1Y9GlX4MsmQH4deT>H!u>5N_u4`D0OP6kf%yni&A# z8Jz);x!|c_3}p2b_M=C8r3wOVhIbX|somMx)U;2aL)e*OQDlUpjG+vb^|-;LWI|80 z$;dUQ*pq110@%Q-^YlS^Wfcb%nSh@ePGjKt=A`PP>79Lw#KO3Wii-Bj%YDw#QhG?$ z8kV|BhZfP#9$e55R2?rHrIh89T=2c2?rv9o1sAcCse+8C!IdcP*#)t{>BiDSn^r1R zb;`0RroY;1Bqz}ZKWUFI=Sg0@66+$5N=twM@ zWcx2*>{8um%APq|BPe#{KpJ5^T;#zB7@Uv;_jN^Q^<1^-5S1LoH_dV~jszDamDkC> z%ur6`DgD(kSk(w7I2DuASh9^0Vezg^P$1|dLqAd}!Q=DOcgh|UYD}1fXFb_>g&l63 zsAQXgS=gMBFVtvr%;01Xg6#Ay%<2dS^#DWdRV}V$FRW)Th1_V_TeQJcCDh3S&5Hph z0za>%gVz$nvzPtoTT}x`%lUD>cZ}{3$<#%aYx;`>pV{(EpKQgp8mQk z1=v8e;EH2KM^iE~R-b0W+0);yTD8hAA|k@ptt9)PlT+HP0Y83iz~se# zp`oGO+@{cx2Gtl^yZMEjhDRcijmI-mSlbRdI4r0WSMF|UY56RLMB=s|8C@@1cw&JQ z_(m`5TnQ?bU}1>^GfG7`+3{X%H@7txq6GItRGnfT5jxsH?1zT)_ST&^wE(06%kE)6P3;XoX6g&Um z)7zm_mi=}eIB>uZi^V=|i%O5I^%mZ5Yi%to8$Ze20X-Wy;}!PgLtvdH>9H+O{E(5z zZf<+%kUW=7hx^{oYi(;w5*615>rOrt(?IYXe$sFT+4wY|qGfb+bQgP!)xLbNuWvm_ z9qj6_R{LQv{jII7Hmml?9i*jAO>PV3R1JoU@@a9yE&cteD*rWAS~c*vRr5rxtyfM2 z1Oz+_s#@xN^ytx+nVFf$;*<7dMq$sZ&w=G<#4T6djrKS-EXcaPb)!x@Gb5fmxl&&r zX3H~I^80}@N=c57=7B(iDP53Z6^2~n{*io^G{f|dTs^=9QQ`90^uRN|`Z>meaGtXZ4? zObuWKepy-J-^J5Dn1w(_-rrYNenC=TsKZX4%$i=IuQ2Z03>z$=3jCI**H@)?8>`VS zGP@=||E_8!Hblimm;-ye*WUVz^TN3?f<;!hZP)PedZW!in;whyDBx@qM@r~d&IARu zsc+c*AgF^H$Q)E{(buJ=rOrUutwJxgZF&CuqEv;%hP^r2Wy_Z7z|<~wyvE8EZ1?%$OTW6P^nZBw-=3|V z*%JVr_`TWk&%o;0O5lSI-j_dFB|M$gH4@%(J~=tLMX6NYNt0NKBWt@uXK~B$ceA(! z*e6g{+nTNJD;^-L$K$bZXzjDndR~tFB`J-f_{b6l<1k)cWNS45AT78U0RYX#sYM8LdxDc9YZZQt z#1s`$9m*~IdB}AA`gMnM+siaa%h?Ezj2}Yrhy0?WtD~Qt0Jn&XGf?ry5oK5vlfE)a zhMPEzQMQ&UE*)KYHKiKWYocgV0+wJozZX18K}AMZA$I@~Ug2RPDxBwNZcaV*o#CoLBmh5#X>6@5?B3{L zeXYQ+D6*iOT@PI)7t?;qF+RgS{Rn}eWfb%sUbcLB8bDO)wm?uI0ja{Mk=xox2Z;b% z<^)ihO>bezuvU)eYGh$e-u0xNsYJW7QF!K&eQf|o0nR<^5&-y}0eTd`gA2;VFBA6Y z+7qlCU&q!zrm_5zUW

2l$a^%Dm>7*R^5Jv17+JibSG|!41RZY_W55kj|cTu;>F9 zW*4FnW;GgvFIxd+&<%X|`+Jk$c0p@LCti0S8&yV)m1usx_0dv z|KdUKQ=qw|Hw7!b9qNfh+K$V$gLBe&O}27b-RKu(isZ!pYt%Y6t=#{I8yxfWL?g1D*9Q2af${@xQ(fR^ern#T8wixc3iUt^^ftG+6HeR`;y#4O=%9%FNi)9Iwco<2U2 z+(M^dt?G{qjLy%Jp^$J;iv~{r$JERI1zh0`5eZEzT%0?YVyrLX9cR_YL^0^c#7ECm z#rRqt1Po%#fAYzjg3s;LRKs)Zpv$+Cl9IOn5CXj+DpmVBIyxo;+OmD2TvO5&!v&sZ|%VRGwy@s`%wV?BlzQA zn_-^r&FdPurMG3vmL!=>_A!hb3W~twVN0O&v^QPHcGVS@j1NG~)~!oT2n~^3XbT%& zt-|<3K4itvKNWW%U`HgU0)vBVNFDlb>YkZDhkkV7`O5zb&mN|q)tkc?_R=4g#wf;! zgo^&6&R|7D;BC-VIKX)M0}K6Y#NV`OlOGO;(-k5%gATo+C$owy^tB?3rlqH+Zw3;q zpV26r=F@(^K#^$Q)%CsnxdjTXMfIA!IoT6`!v0^|V*PLJ;D0KjD}LvS=szBM|3*ar zomA|8O8(J7k^hdKw{M@eYkF9(Z%L1f8Wlye=K4#vm{r(o2VCnDN~)_zaQjRKG>Ts) z{^;tvD@teUyF`^AK=}n;IFUT$#HSmxD|N*(57G}N`%@hEk13-6Yq7_#f3@eg=AB=H za?ouS%v+M*lR+Z;DUaii`D{PHsH*N&#HKXnR;yz3Ro^2^p(#=jS=Z3F%Sl*PXz ze7<4(xPZNYn{IBtm_Qg01Fs8Jo9HFT*S?TZBTPuDt=g3-y{jeEpg{9BF*u z0OQ&SQN#C3D=YaLj~_HI=(ud`aJ%K^&6~TkJz_7JyL)-iM1Ta=~SL*8CuNxuw`Cm;> zN6%TW2w%_@_;c`BZGts>s{z-9h z3ubXc>-TMN@&h`4n~3ew^%Z>19p!d+yXxwpxY;*L`#!BJ*Z-|r*sj?jtZIyI{uHZP cpQ6>biDRR-3}v9eT_B%+;<&eX_wg_O3ql984*&oF literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_183_side_vault_kd_wrong_keys1_1186.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_183_side_vault_kd_wrong_keys1_1186.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ee05ad5eebf3a299889cf1edf1a1094b9a6964 GIT binary patch literal 20990 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 Scm@WCoHDaMf%uch)&B=koRb*< literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_184_side_vault_none_wrong_keys2_1187.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_184_side_vault_none_wrong_keys2_1187.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ea9d21f2c6000c21ed53839ffc9e79192374ce GIT binary patch literal 13569 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 XuRLO>eH^eh=(9cUyUTYT{qny7WIi4& literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_185_dense_maze_sk_none_1188.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_185_dense_maze_sk_none_1188.png new file mode 100644 index 0000000000000000000000000000000000000000..7d471e30a9e957acc1f0a2d84e2d19bdd95dcca2 GIT binary patch literal 20704 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 Iak}|G0QkmaI{*Lx literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_186_dense_maze_kk_distractor_chain2_1191.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_186_dense_maze_kk_distractor_chain2_1191.png new file mode 100644 index 0000000000000000000000000000000000000000..862fc2469ababc9ad3a6793ce8782a82a98ad11e GIT binary patch literal 25725 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

A7TO4dFamD^ z7#a*zBya5@xEZ2|ut}*39=}OiW_vwb;?e85HT1k9#Y6lGrEIB(L=pzQHgdbVSJRig8IB=O z@f7DGJ?gfi6($%eC@HPl)lUh%s#^Nwsi^BznYB3kF&cIf3!%pEL6y2q0^E8R7Z*3| z)2+EepjFBk8)M3zc*xGL!CW#%x>kr1fwGbM&qi_;Xv z(QJU+=J7d{fWe`pro)rt7*ltv(fN(5d%@p@2ypFX{H62ExM6d6qs9?tgz3R5`6PZdI zW@Yt@5<>(B{Oy<94Jqe51;F7il_yDFOoPVi^yt7vpcVoOr`v|FfUK@OFLbV*UKBFn z#qf~R*i6MdOOY6yF^_H^0b^t2OaSR8_#G6EZ@y8L9}z$t!=_;Ro(-+G=5a*x&_34v zLqi0B4nxiCVq-so2yhHkcn5z0YM&P1oCerSjpS>=vizse)x({RiZjpxp(s^{_W2(+Zy4#8|1xy6% z=0So^m`9LqMD7~Y`~f_aA-cSx@M%gU(x4{L;&Nt6xn>`-vAom$0z{kz)P<}u}AOUan9a=(!>2%f0+!(_>wxt^79K&usygur^ zfVBs4-T{o0iUzY!&mU6#^5_x<#1m-x#Eyf8pTR7mt+Td(r`68MlMvOSyslzN&k$K?CrPlr_c*uA1T`yqvgaKtsev1RgcAMqd22O?XV4Cc5P-4Z1Yo0{_ zNz8l5duA%DM01H%drqk5Rg{GlYOJJ+E*9TJF$fH!ng7O7S$af<36}5pq+@U0;!2>`}I$rP)F| zuQV?-pUQv6Z=8E2zt$tDj9j5%X6I+1_5XBt{y|OFaU5U%$fHBC18X<29p?oia5%A{ zK4X$U0&@t0M^kbjHxe*J zrog(m(dzx(rhjPd56U~Qzjxd7Jo`M~AJ6;qe!m{WrV|$z#78!u5!-@|qpcJ(UUI(7 zk53gNO-35Ltw3P@Qlr13v;$PEOK(wfb8XvVr`fzsf*?alkhDdiuGSvBsT#YzRmXho z4~c+Ke+e@5KCo5sfEP#GQOOkpsN}_j*lxndZLVZFH0N#|P8nZQNPN(wSqQ*ZXx!N6 zqoT{gN~3#{>s=2#DnIz+cE(iE0Is@9j?+vy>gtG7 za|LU4+K(7R0vcK=vswx}eyZFk~3GWrK@WpH2tLC zYx5h9Wz1tDssgvq=?zssbK}n5e#9QAif${EryP7CiuTQ?g2}ChtkThR+1~{058a&u zSjCaBO8<6ZWM}LaUvhG@DQ;?1O( zZsm0x?-;P!m0_E;X6Mn-bUyOn)QREFg7*W^N217VMe-ER^u2f6T#>5PwhKEQj#y3i z3XLjo2P#WZZ~4~`-=uf)G!m`c4|Xt=2qkZ%rg>;N$GI08J|uR(&r+85&FWc6nsY|# zN9K-z7+2i*)h+W< zGiZxP1VHI5?epjRGt8i)8<%|otj@Tz0-Fxgph*@&0;?3N{JHs#`-khg%RSobu*H$il-VRAD$q`4C%{lOTO zN^@XX^ZCAEgg~oqdPmLyIM+-d_5o_6@$)DuoU7k`86MsH5P{=HaOm|huxT+-Ck=ji z5U{w2#)6EHI*{TNN*3~K8$1j+3|{d$VVT)-y?>Qh%ee#Srtrnts}R*xbHkfp;??K< z`NRB^&*F66)~<9aiTq>VHpw7%%sVl?gzVLGX~#Z~Khyb}BKCaQ_jp)V<-}(WGV@%! z9Ln*`;=zQX^)%w?p!gRQrn1)159s+#vtFjlAY3|Vtk5Yeq%%P#VXuNOK87apF;UDw z3j7}@vV8ne5B;Y;Z}b29L$CBm-W3rE-agjXX7X|Xc;DRIr$xHQ5OM?pr+F_)0-=wz tA#LuZgktpSq}biz26;lchK1p-JeD*;bmB&1EsjE2_xhV_YZLi<{sPbEfcpRd literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_187_sequential_chain_sk_wrong_keys1_1190.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_187_sequential_chain_sk_wrong_keys1_1190.png new file mode 100644 index 0000000000000000000000000000000000000000..03c8c8d741202c2b9f3984f8b5e1667f6fe56ad4 GIT binary patch literal 23353 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_189_side_vault_kd_dead_end_rooms1_1192.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_189_side_vault_kd_dead_end_rooms1_1192.png new file mode 100644 index 0000000000000000000000000000000000000000..5997ff13cea9bd62ef8378a610934de5852c2ac1 GIT binary patch literal 16275 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

    +xjJq9+G*v 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 Kulwf0wf_Txetk^< literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_190_side_vault_sg_wrong_keys2_1193.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_190_side_vault_sg_wrong_keys2_1193.png new file mode 100644 index 0000000000000000000000000000000000000000..7f57a7d98a45ebe9844ea340a363e1014fb13435 GIT binary patch literal 22573 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 PnIL6F^=rAmm^}Gk{GOEJ literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_191_side_vault_sg_none_1194.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_191_side_vault_sg_none_1194.png new file mode 100644 index 0000000000000000000000000000000000000000..4398e565c7a4ccfda0fc379cb1428d9e625c5677 GIT binary patch literal 13838 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_192_side_vault_kd_dead_end_rooms1_1195.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_192_side_vault_kd_dead_end_rooms1_1195.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8157a51206930dedc0933a40530c47e0e6dab5 GIT binary patch literal 18202 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 SiNFzhUmx~9RCVz5rT+lh=bViI literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V04_single_key.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V04_single_key.png new file mode 100644 index 0000000000000000000000000000000000000000..88c5df4533208a47e8364157c1ed5abab1088222 GIT binary patch literal 18676 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V05_single_switch.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V05_single_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..4c279e9fb536c20c56e45b2b82532aa7a307a26d GIT binary patch literal 17708 zcmeHv2UL^kx^=LO1r-qmrH(Qdq=`tCqK?9hf{664ARsNF_as=bQ8JD+X;G2hgb1M} z5e1?kMugB32oeJbgh&YiVv_qtXU>_q=iIygb7$^4cl~Qvi-jcS{n}IZv-f_veeSI3 z=8e)DArQ#sAAdM`9s*fi2Z5{!UjGevC5h><4*bv$J!Kzi1@j7xxESmSF~1lZ=no6^ z_i_I=+%q`D2L{zt(>SE2tMcvT(9pmTeRcJKzx@w2Sg^Nxvs2g`u*!zO9~?p;5UFj# zZxL_wJ8-O%89$ypZXKD;91;zE>Dp1@-GOmi|?BCbqXyR{74F)ZDRMlVn#W z_4q3JYOj;3qiCdZzpttM>GKk4#m%Z!mwt~YL)%nAVrmu zDbgCT^g@xu)UMC7s)3enb z6*KiDICOa~oj_e&Oftzc;0}<~q}*bI*xXDlzxD$2tP;zH2>g5wLxKNZq21JYrE6}& z)VLw^+WO6v(d5z+wBk>TY<8+(rBZNEu!IuW^FN~b#ZAlrn6h_vP}?JH6%D~n9UdNz zQl~`F;2pk$O;I6ikrzhXX-o<8f)DAMc;FQ8uva4F(zhe4d|U#X*OL1xCV4C*@|F8g zLm1@LM>sbRlVKM zjXOB-Y-e7cIQ08OGhPSb^O^b%mzncW0&g*RrhYt)916}cEgd)QNhYD9d-B>TH2&g2 z>Wz#?vU%9mt5;K;#UK;1B2xC%f@QQoDQ3FLRBOllJ@n@fkNT1z+xi;E4Ox0zEckst zgI$S)?^r(*RvD9;B%@<1vd`qRD>&b@s;VkaC+EEdiAJBUh^fS|a1mNVb9@c~sm0JL zXi*y@2)Kj}r{TG@xqhNiEtNaWsi<`!AmCvH_er1Y_3@G}w?DqxjfWxq8B~w=nGTl@ znk>uDXAo1ai5b;pzLBQUIVj|3x_KYNLxF40CM?pBg312=Jd{y`b70YM@ z$vmS1Odq%N_&Pc3vj(#*a}UMfmkYUwQev+0xE`rEx6hq+hdU=jn3Z8fAjTuwm0f4= zOwKtj4Aoh5r7aI`CFb^VVj?3WZ+3X3XsgA1x~9<7J>DEi9fh$MK4b(v;e~X?CWN-q z!&g2Q+L1znkdFv0^P#UF-4d&klpww$vPb!S#K-8UvHRp6cwDkCB=p&j`*XIlUP@cU zj!H;1y?OoGj1JPjv?7APJWk^Cu1lOP;!C>WaJZz^TXY{(d39zE5SSQ}QIc|HQ}8gw z03>wDR13#eEul6WvGNfk$SW)?6sB7zpJruYSW`?%t_+*%)%xomWE01h3S{i9{jbYlj?8g&XA%szVN*|+X{te~5z{1SzNbX!p;cGtOGKacI?6X3z z^t65W@ZnLI-c%XJ3rhpJ?2S#T^fsEmpTr2BZIvSN(K)w?dnzJY#7$Kqb1LCXKMa;L zKtj|q!%w-;s}d;QkJ@N49LSBtu-y6Q_%KOC`1gFt1y_H^fj%&QsET%mZ zMT&W|$lffY?T12wki?EE6M;bTFY zFd73^q6`SHdAt;>v&AdT=Uu`FJZ&gblpzn4VR%1rY=)vU97*>_ue^!CV>$y`5e8U< zluKyW76I$M7&0^C4%t$iN((as*2|+815*JTp zd0b-nSj0H8Lsa&#F=(EDc-A_D5fSoB7&Uz>r~>tFK{;M66BbW3e3zw=vr=RMs@9Y_ zTD>*TGHBq0`%|6^E7~qh#XoVh)z05d9kHDVaRZm=SwqgV(Wr^o9ipBETWE67$h0#y z(#VP4T~%arseb3H#Jf}`MLKUqG|7>;@vX*bET$F@ifcuM6Y3Cun8kCgLHiFi)P$a1 zU}x+W=g?_Wo5;ak1!gHEuPE1@XrGS(Lh+bI>Vvwgky0 zh%y_yBOqbd4ogD1Q@JqfnxS=|4J0Rym^e*YHh3G*cg^!@(ceKIQlQ}{ zxmuM`=4S$O{T_-_cQT7ikGb;a(n*cX1h>zl1D1Jc-n92TUl4CH^1O;D@8p7L+vR=4 zHf9YLQRcevNJ=#t7acmiS3T<0&x7G?vK^^b)kI=E1T@vshR>;$u?%gb@mPjO2|;Yj z7PS@QWTTad$!Lqn=Mv#{{#?uIowJ!->=I4b=LROO$I!ULn7s1x%U)|Z53X$~F)77H zbZYgzb{z*@U~sIupE$K^2Y4Q>TPSV#Mo{c)O#+44Y==ZKVfBo(C|2Lwx98XdkH?Yt zS{=Wc1H45p&0W|JZ7JEYbFV0$c{Tu`O!Hk)YiLp9Ihb_NnA~#ZlnC_XqnQZ2gMZo& zs*6{my>E>;(?I;i5*n??%{DNnJBV>*QThFIPTJE^$1xBw<|LBk~QO7bm_j?ta< z@g{ip?-Xs*H;0(QBKDayPu{(v>s2M8);L}5`(d}r(*s?4FC(w2bbgEVr!hJdt;?Fgy4(o0sWVp;TIK#Me$*(Z!Bx1P$!?F@=2&>WL_pHORw3FfwOro0H$l8|c6QeHh*5GFN+3t{P&;DvXb1b_ z4FrE4oqje!d~m1ukZa=kUS$^;jWB9$vD>5-Yn*oEBwEmI%IrHcw`biZ`?tS8wwV5+Ncr)RSGxZ_ZoE<&$&!!06WW;tc5!^38#pLJBp zq}JoHVKTbHZXL`f5z@!bQ0_gnUZccNU%%l)?W#2*QWHx@7|{pkoU7giG$|$M6b0$0 zGhLz>spLHes&<;I9MX!Yx<^7o zOeDJ-XoMXaent*RCPY+s&esS4@McY?v@T1!>d(~CYwP)o?%c~$v0L;${4^QEJN|5@ zU`qwt`a}KXTbbjEl46rj*Ke%W;W05>f|*GSF8YtPn`hceW+3xgPwXHug( ztZL#vngnmEPt*w&f9oFKy>!PW^~HHxVvce$c5_4{Wk?d|di_p(6T2K%ZkvzA_hbg*nOEXG> z&wz%f)`_U5pbCmJsv_)6R)l9*zr%Fs9&wXNrN)H#Jg?SKWA^p|d;d~N#q6rBebm+> z$ABqn2gS$F?EB5auF!G5HD%m>dfb>#H!iVkTW_HO*OxpV{X%B=oOvIdE<>}o9Xz2a zI;a)Vz!JhCUjlWY&%JQmx9#CgdB>z5Owm!zqORvU*WVsb%y_?T{8;jU;=Jl;Ej+HA z(1%13jZMzeucfb#4~hZ31x0bs8ylLlhp6a)fGE;`);4R+E;`Y4C0WP4YMX!J)=nGL zjaH5LsuTWYHyU}9820)Tg+0Wz+A=3qQ?`D&XBzhkraH>grw9A-SztJ=twD+oMj}y##uFFuJ)kW1AetcC6%@ z@9WdI8jv6?ijs-RRx+JB?M~{4$Zr-tc;zNcT5V|c&sw=A9|zqxvP#a5u#CD((It8F zZp7lxovZX}c)Pw!I3OmQwNj0)w`kyZCnsfDm}R+6G&P20(UU&L!Zvwq{NN6IK1C0q zxUAKAqqJ-HcfqJjP=(^r*Xd`PQ3fdTyGjTq+ioXZmXtFMV53 z3lH$nC|>!#*xp{n)(nNv;zWmKB!w*YDqO0O2+WF7yVELoq|owkpKyTh5UjqCzX7Cp zYt?NHPo3edtyy`2V2F6#crXaQ@xl6daqX#7_eVF|U4JSZ+UL)%b-5E6va8T}L)8-- zSqqtfa#LuY+$;g>w#kpHZ5nAT98hSROewV4iPZ1 zx&4^k2Zuv@Vdv;ERIGi=z9s-T)go|HE*-uJ7q$^AdfloH*aghc=*r1f*~&(Vx4Pxy z*H_OL5N7rVwP)Mcshn-y)~u~I^*A~+II*GaxqAqg6T4@94>85`)*X8L6kpuR&%%)1 zGufjXQmJF7vb0@Unt1a>h-rsACF6v%0!Icu@&!q;+^)|Gr)9DrOC}t2CWW*@L#7Y; zfV*L5_}&&?f)7P}!Q*(ja7M&f;XIm4?b-E19|ac3mF|ug3j9x#we;`r_2Cz5C}#1= zMmzEzR$0&h%VYnJcdLtQ@4_>OMO$gjKbYyBCD5yNZ7gwHot`FHp8amk1V@)5qCN^9E4^haAZ}HH^T9^uokZxG03mptPeN7ZHYMDxWT3HFp5+Ik} z-_$WNG0_hej15D10uXDJ0fYPk9h}ci<|DTj#%!HhXcmCkQc|A@32dft`bcV|GSo0w z%y@3h8>8OY`9dRh@mht1iK7YZJSP~gW;TOp;FZOdV!&rDH?mz75GB%XqhBcjKx z-ckgOm=WMc?lV-i-E)rH7* z`{6fA(gb2m?#_p|tUk4DZ(>U2OkTfiWp*^FQWtKTINA2Y53;Lw=3Q6#JhDz|$Vl?e zG6ghw--W#e!EFbuvK<*$Mb(N5Y}+QI;tjK``$`*rh)OxnuE=Cm#?`a{!)``;v z-`?5Sb7+^dx8gEm1E?b|K~sVr`1mn)!k_vtUb&(D@uYS~Ul#ePsE z{}7N^CLcL+h5Umz6{VY|ZEKl)cPKi4W;r<~X*@OhZsD>#t3I!RnJa%_B_z=i9o()& zUgf57FCU?HXZ(eu!8+om8yWHnid;)<22=rM{*(y_mGJrxKc5-&U45*OeX^aoRK5zL za?O7Fz}3swTh}K!7`2Ez&`caz1!=s#WQKROS2Z~l?*ysc4_T@z?1Kkv*RP9XZm5Gy zTW1e`cb4+*j{SlCl8uh4Rk{|XgNAE6eT8vl2=m3bA1}5)RwC2t@d;qwM(N_DkPEa( zdJ=g(RORW8gu^-T#Q{bgJ=y7QZOaKLTd6*CM}i%oQBHOA?t@5Tq5IQUAG@EOtpX^Z z@6V(bkpvBnjsdKSgSMZbY<$})^Pz)A8Mo%;`^Jr2%{79lz5yOKp%7b?_!lAI$;<6P z4^UbU1QEz%KqW&UKV6Lzg+PvNT%{&_L*?U<8#0oRG0!cKl7va&?|hgmvUJ2b48RvFk>}zO%0#V&!@IP^ZCb)b@rGUPpK`Mv)>UL zP`vY<3z(TpG;2)iA$|S9#oB@cK$!UbLI2CM`Rk2;ctHQxZiyj~L%L?#Uc7jb4|r9K z>gh7InoKR$b5V7bKERq*8}7RwFi@SJ9r8x6bSTl~D%=XUP&MO0u-4?29Uagi`{%C= zJbQM`iBjRzZk+s}mqKYw$?7i$?WxEiVGni7=FO_4)jv~#%rcEuozA*<@1Cc>zkifM z%6HnZVdsK^f}S%Vz|=fw!UbbE=By4!30B8o&Eq(k_q7B9Qc0)EY1gh@mKg1TL2s*% z#;4u<+9tH}7`09?<*B|(EVA|q%%o0ER@NVzFk?IVec|kE5c@n>tD|3s4B~hgj;X99 zajPX0lateIHq<>izlVxvR$~uFO5{e24lpQo2&Zxgq@QVj2`F!WL{|F~6}rEc`U5g& zv@{6mp`@EPZ=SKRu<&+Dv3K#+@*5UPo`;VdvDRi{iWd~f1b>wIzP!G~Gzt_~E*n7& zV&DK;@zwE8AJ74SslBJC$5+QQ{Vj#!L^i|yQW3SfNevOSM2_I_vH4MW8;E-!Vng+s z*>77{n}qD!x38znT)ZC-XJEr>B+DEyZTx}fcs)Zymo_4iUA51DxXA(M_}Hu5N>j^e z!^-{4a%HYpr*4z;Z8e1v3ZrG; zzpn(;fYPB9mlH4;%trG|MQr@FB5Do`Iv|}1oLxYg&6k^M-_~+%yV%Z7psSq2NESOx z^_1Z<%`Gg_0sE?5JIwnMx55lKv1tA^15$n;wSTYDUydJ2la-NCzIN@J@c7S#{Po4S z=wBd+Fi=_efxf=|IyDzUL!UnF(D<*Q%>T7c`4wRObyoi^q&Z=c*LC@6fT%Hl;jU(YHDa$?%Th=qrX4nXDy%ku};skU22u7f0>Md}+pXJpU{ykV2yogg6Cw z9<1MogJN2fRo$^uTKXUy4*z9who*BB9kO42q?#YA{xx@#mJ@WvAx3K+QLE*;+EGVe z-*J$!^UrtZ{8du_50%tY#lOJuNPHF#xFAPjgalU_9IO2%k?Ss0rlK@#}ZW`l_I z9pm}?HGT86j|75vu)jJb%yYx&sr|o%ac_l-Q*WhP00oEZ zee(w$WWpG|IOMAX0COt&@{#u5awn^F_=_8x!3^PDlOCUf%oZVd%gnq@-n}Mri`V9I}OCJ@YOUvH@%b7dJ;2Q#w zn~x{C)tcAA-+q7g08u`IRt-gkF;-@04==DQ(-nAu)~#1OcZ1RWt%e(JvV8!p@ae(2 zRI%74#iP#S>u7}9%<4^VeZH&|0+{1B{MZ*r+BqoxV?nh*WSxIVPK+G>)Zdoi7>&Lh zKzkgVnB~hzg%}|00sYJM7620Ab9X-a04aKLS3V3453h?IO+MOA zBh1S&p7-G$$ybskfH85R2);Ok&E{nGrNR&#;|`)R?|$%1shbsobCF;d9UbjeIger? z-R|e++D1Ld6Rw@s+7LF?-bH|$>G2ZBQxXL4uQAkJ*#gsm!h(W!qze+)zFN-nt`fNG zV?U!1kIgL1Q?2B6?0aGTPdYsTeMueT05gpf<4W>2;TdGiPE{yN@j7MN{oZgBf(3Mi zb3zN4C%wSjbGl)weZMi{<1{;2H~7NM?sXz6sem#$MjQeRE@KYKjb+#1aEp#^uIvU; zYq<$s5W8{7%P%z1Rx4u0P0nGh=^Za42u{$ZS!8>s&X9F)nS;}oddg7ytXS*?Jvu7a z4l)1a#os=8+iG=A=$sN+>e*?`ox?&>=1<2APlV=2$g|0ThA_X(IqwGbV=-UyrXP-y zwrB2xgeEGrg9AUlutu1Mn2RrN1XBXAsnZ*;dBC{ z;bC3fx*r{eKO^~G!R^78UslAHe&|LtEL{@>Q&f9Ih7r$m7jppJxt(iw#* zqs22{$DQAdQzl@XV)Na;xm=FkylK-@8@Py8AI@kOCcA#oA!8w*XxVfSGUP}r)yAUdT${f%KU_nMsPL&zF=?feD z$CCMX#PVND{kL<^|L(nd+kN?nG!trIVBieesXpaV%jEge`$Dz{3j>bY6ky;YL)+CJ zf`(mkKf1;i6FI~AOf#sw|CMTT)pQ!ydVoV{A3F55EiJ!H`OH@Jp4qsr?Ay0*9|nc7 zt*tGk?8ht}m>Q_2T_nc`=$bxKL1AIX(o!8Lj%nqns7`-gy&1rf^&h>N0!h?;FiWLIU!vKh$1_6rbUBxTIAtc}T;)`87T0~DEU26|{5t`VC?o(-AH6$4 z7)*Iv>TnC9Ri#Lt<)yUTNWLA0@fclWr^)hmqW|Z()&C`KtHYUt)d*hnUcZNcMDP=K zeaZLXv9V1_y#Eh$K#?%7TpD0) zSrg68&BC<0c=>YCM(lqgD?n&ddxRY8|15BS9u`{kwV_mdIP1m~wsA8A@}w^8XuWKB zloJ+Oj&ESBFrh$bQ#t!=Z~o3*<*PqXSsK0#njLUneC@!Ki{IA+Yg*QzJWwv~#+^AW zn)Fkx=DUXMK3D_*h8Ij%sVTKyo`@9*o}o!qQ~TU5XL(@(b{X40^7A`tF?kdkU zFDWnrypW>CVN-^{)++mKn=hl;?|P&Vtp97iNat7*_Dem33)c>bMc(wI)ere{Q5ZV4E!Mz*SsarFP`w zI^(6|QPUm@P8GPt!2mvDzEj7}EhuUY%?((AJ;6{q3B(>{vuE-9T7FqhfK z!$nG@nnu<#gu6aRzWkh5H);nV~W5SSGGz-Ds%gI9d0bsuU)v!EBIr6dfMH)cYWg-;1QLA%?rC3MR~~w z!FDPWz1bECGSInguf&O}_SXe@M7j7! z#+sI~O7_a(RUepG8ooOqo%{C+g0nUK;rG8wK^*ht*w1zWJD<29Rflh{GaGzugq0<{)LbKHzSW zv2y6x@73h#sVN`=18>b=a>Adx&H3L>v;0$q7Bl7&`97WjjFT?4#P2YwPPHk(S_4S) zs*dR_O-)TtUteFKMV*;oGRu7nelP5|agn~b;>UmFwaYu9&g0{!Zx&N5M{04G;fwUqeykdQL~~x{3&&%gHpmTsMOkTbn-UP z8YXL;7c{;)8h-U3fI4g6{%z;atJKO;)??Fgtn!V+*Ci~DHaY`%QMv;#ka7uT-~s*R zBl}~8@84Q=zaIP_Dc^+iq`z|#bm7kXT|ijnPUDJYYx0pbS(r0*V}o76Q|d5f;gaNu1G7X0nBXZ)O_b#6Tf1%Hi?87x03x=}CnhE)*Eril!H(W!v9*pL;@ADxN zPxNce1~m|bV>octn46iU7O&U%8)OZy4$B z-7U5o0)gzke(gt72xMz51hOq)=ML~M@e9_1;D=g}_RSzOU)P|}TLCT*!&^aq-o8QJ z9=DH%xC8`x`1&ZypFbym>FiPWpdi0MH3bFOzkEX8H^5EdwQX=WILa=+Yu14fi0F6x z{{-AHJ>Xmh*(UM#RBFf zPj0^+wR|t~x+{*GPb;Ol@>RzHE+fpD~e*JmhywKOiXo?7_&%YSoFxFh@^?)M}bsDOSm@g9| z+bPCX_927$VKgFw7U)rLxW?MnY;fY^macsi?rKfkJ2bvqWWYYuezVIBn&iMl59Hky zQai1rq9QDq=NZY&q!<`S43T=k(H|X@w@VKh2_9JPu)C5uWEe?WYUAy4kyVon zxH6ZdAtWUImp8jc#G?q4PA{i(A`UvbJ(lp+;%yMI6A#tpHRr5}V$2ZL-pN(pnvoEX z>drg!X?V5^VND^ebH+s>!g_PwP0N-&{O;YO)U(#64@xJT{Z0n6vcY z;{HkDbEC|hwF8vtZz(-JkA0d}`j@E+C{@IQm!m#rvlrX5>r~dcDGt49ZFD(nTH_RF zy-iCJ`M{+!HJ?RmP_PdqD7Bst9A)2nZPz3@B#HXt*W2?z#MrXD-;U+gF zA{SqKEDTj?A7ytsavv9v2k_jLF~3aRG&+t&TVBKSG*?zv4@$XzBP8VGzpc8wTtSn1 z#`w%{Fv+LfSu4EFHnK&rW&X*H}M5f3Cjs;jG$d>R%~ksxgH z7HTNS^?JLO?9frwrg4$-^k?{;5KrfAqUlw%`nj@;C@%Z97?pn_xlv`oN0AL9p%lb= zD7<$8#FEp#ovR<56Dq@&#&2(W2+8?IPKc8_Qe;oTmeMp_mi-eV?1nsxOJipqCcwL# zW6zYs_2yG2&#nAw9QnN_GlOW55ca!tEKA;|^7(oLqnAXZ(FimqxS?n6#yL4z)bf;x z8?tGUnVttTI@xhkc4uc&T8W@$1|p^sqM90bdYNt-rX3yxuOFr{vXd@To2U79hu4t--^V zs*S^b+aF7wDkO=(#a0O_6b)Bf<^*n~)K?CNpM0#ZEbiZZi#s933tK`+&PX2iIYpM@ zt+$OInrR%NE*$f{yRr42bAo2|^SRVb{(@$VE=H>yknV=h`q5%GknrT-v#O1F&VsLT z0*XBm_b!K?hP|b=`Z7UoRM@iI!JhQJnRHG5u}k}5 zIOW49D9DKNPIX$XGkol~`>im>0Gs(%A4ez%R;4DJDMxT|I2gtSJ5 zQR^*ea>^Xqv6FqtEeAf8Uc&-eX}X*d+2F_?7j407&EzG;Qeahmmekj;Uz^Y)rn5tZ zYF0=X?y}B6HmE(Vbf(w&e$J_u87u~8LTN`R4&0ig)9R*k;w<`1U@HhjK4==T%s=Hbhi62Jka^>-(b(Xn<@agP0@+9(N{{)gM>v)D=5L!^i z$cKq^MSeQZnl{Ka8AmR~Ii4kAwD7gu1z!|PX8@Fo)KE~82-Rb7=G0!EJYEpeWvSzL z$9kbv0qMWA5FF;X8qQ;ynPh6H05l^JRJmmbKa5hi${(g+Ums-eaS*X+kJa4;Hc5csIn9d3`I&Ye;`y>;gTo4260vCZdP^$Nq^gBJw0$D!F6kw4JrGDz{%U-0kvN9LaM9Jl~m|7 z5o8^fV#hbH3aS1yoRF#ea&^!RGmeB`%#)O^tt(A2sTXbfq@4@(bvf=+(k4m&WfcU$ zXwi^H&rRvtn&E)XMfWB3(WQqbbk>v#zOELUAj$96xlrCsX{SLhi|%NL`fb;#WNgH? z8iq~NjG^z)_=1e|J70LG?aAKiPWcA!TG)Uiiu1f?5EQG}ISQyYuw@o!m0Z4#(A8}_ zh;gPM))5;geoNfa8}ZKlRi1rCw=3%| zcpW2pA4*7+uI)@yP$;)=2&o`Pt~F4O;0z^8OLS-x@Z*NHWLC6|5~OLUF;<-x}-6*f?$Jf=LbB(YpW zCebR5p!0AP`bcAUs;>~U}S)O5)+W0ThvqMvfjHO3#^V2m7 zHGvm5YFi>{eRuBM89zjRufZM@R?x}NP10q&ic~|-SRO9zY7_LmPTl5?g;oZ7$Nu5;C)etbmU60V?Mv>w=R{|;iuleYjn3jjzolq_n7D&Q5xI# zc334qoN;~`ejGo<{LYQP;;|F9Dl5xat)@d)2n>T5PmSfL!gAefnatVzGzYY2qOLpB zeWPG?G=e^UbFBRn1%5!8_;LM{u9l5NC=10~L$xSwQBFxv>1OOyzWn1B`EOm(0WLC( zYw&!sMzAV9YnoK&EmM9nQ`D(F?)79VOh>+P*^#&6*b4Khqo&qZDwf}{-4!M++8}mD zL2TtR_Ez2IY%!_Wku!VyO1cK(qVZTsr791X1CuP}2ug-IEj8x0?@^%6lt}yH3nO_i zw-ByMG9G~bYG;5$26vqasZd!vmR8{x{9w^StfHi zbQHeTV|l`4S3+I+KsfG`UCc|Py%ruUcg|^EyyHfPRjjZXLlwiMs01_+rH&i?BraBL zpVWtE3U1%HTN>$p+2JQyg-ffGr?lW*JRiQIF zIsr%DzILj-@hG98_<^1IWQsY{{{h@$Y_1%SyENb?))e?FzVDfZiSsSSMHSY!0R=nrlV)#=dqL(%0Y$GdO09XF)$H@s? zMPsagsppLD2Aw#)NyyFKsO3aH{3sE|)EiBKolcN3{z)7?%gs(W(%shMy5ZZ=X5@Pv ziD1Sc>h^BjT-O-Srie3l2IA!LqFcILx5%HHi?`G8ob2sxylI$Iq%xG;-FV2*<(_gv z_|%JZtm1THO2=>dzTu?I*g2_By_#llwUo%sXN^~LurAYy1ri<1cWSWY z!cfRuY0X1;rbN0-T&9JO);{5fJ-BD7t^iykz0r@}t*Ck)s7Kf#|? zgMlm}u7)T8Rd|)6JI;LiopE?iQf%QI{OPO4%YC2&r9c^p2?i!}0<*@=+kbez?L*`P zCn(V+HFTVDT05sKUH6Pm(SvBs1rK9cOVjS+F`xQPZh6MMk~EH?xCjL@gfs`^b3q$Em}_ zFdcuRzL!I2t!?dypFr(s`VOfK^U9$?B~#w1ypKW?>ueI9*p+sKVD8#;Uz|2J8C~|x z=z_Ulm=xA#)P*wL!=Tk`V3r+EuQ;XC(I$qU)}){5hG%N!wdXd&b@XXk@Z%~{y9LgP z@2b7L6aLf8le8#T$Riwwmp~@n?8e0DR(wBmK^Ml)R?*%Cv7o=K7w2y6Sr4kOtaS>Ry{Jw zr&u1;FS4Lkn%9*ZP;cuBSB^{Y*-bbG3O2=C?1v}8OgSlBqXD(tY52Q+~61aLwgL%6XPSuvP0_h*tmX$BHXLHSjxy5+Tf(1FDk`SI4f5Lfamh6=4>U)<{6SXf&6l@(Eq;~7LOPzFiy?IUd_lEx@=>a2?_rqCrynOxa7o6{Ixt#! zr(my5Ra@%#1gbLved`bP7r?s5I7;Pk!lGVD-GW347w==P9}EPxAr{;82=|l$FDb z6ug7=vQ5&~!0`yYAu%AmPy(NAb*&qW#m76x)Yi)ND1_H%j2AHO?@B7AQAbm>4Bocg zd#F*Zns9RJi6c=2DNDZLuun~)J9%qJs+A)@gdDR>OBly`y_2za(~mOUDkoc?F$ASD zK}*rv32##$HHm~=x-dVLIM=vtS%#nq??=Q76cB6a64iZ28^@=?$P*H`MjS|Bvr^@3l_M#fH42^$lK9y=5&(qJd0eq&sSFrU zR$JCa07{M}Q#)PK?3E)M*lSaB#sJ0;By-El%h`Z@aI09gnoU(8MvO9JH!aQ5Vu=9D zJ6GcmrnHF@0c)|*>AEH*CMJWQJfUzHXIQqNK8p$LR<&*9=>qgH#!aT<3CiT;X@DKrhxl!JqpX2eM5b)q z5sq}q#Z|b!e>SeF%cbQ+&<^7e$oT5zaEnQ9l5dhDFVUxdrXYS6?R9~%(zP&X%9EP& zujp{L1GU?^+DjiqjvUMwAUiKOQFHBVnJ)|`S8i7qP!aNQ7%3`mS8IZA=RlmQ0Wop! zLV#L;pDGIbLfg($}9TTrd()X0raM5q zu4L2VJUUI+nfWpso`~ttdo_`$`z`YqTZcs%h2a$42TXs=h8I^gA(o1N8c>unD6epN zIfEEkupS|6))iRFIQ;=&LB{POFNgKQQHJ?qW4sRzY4DjGX1^D%PHls5R2{~t*63~%N(*f*b^N)vL|A}~X z&!X*sG~bkOTJ8zzHPN-Ocyd=5T6;6gyyXy~xNE;?RFW3joHOt$SqFuvD; z`%9bp50y5$+bVTmns_jtYyx>;)V$s4O^594C>UTYMz8_gff-X+gj)q@)D5$Em2x&g zYci#)xYW_5&l#fQCgQ@UL;b#y2S1MO1dK4`-qDX+Adqi=j@ko(T;93m^DhiOUA!_f zGExZsAWL_Z0p=@3?}U<>BF8)WC9Eh7s?7W#-)Eqenc=rrD&Ii+tm@6ersd-p~Q2HU?DHNM6&)L^(&C1|Q~=Mjlwd zt}b-g{LtmxU=Cu+^%bmW(0rw0b#)a@BVS59)qSP3u+Zas;q%z#m6by4lz`fW`T49Y z(c`tz(L2a)B4k(4J#6X%sFS$US1PNk3+~(zSTX$?of$~wz#2oAOJ6(7r3!tcnJ`ve zS_9VpibD5M`^0Q`{e9MX@b?*9vnVXxN&8wj6o@6Yn z$074tc-hSLV!C~{(4~)2%XLJAPkpAMS2f}3)2A2DojW&Tm?45jqhry9XVYwos z0XD@!9d=?fkU9|&5k=b0=qUF0RM7`ZGjnrh6=KxpkiJ%{8BYs$clQ?v%a<@AA)$iN zQ3r&#gpI9jU$LI2rKXZuMd1@nA;=uXxYT*!jrD%R%%^Q@OTT@fh!)A-TL3NUmT6@eE3&s^7DF&u!7l4QIj|*!5`edK_*Na1b4`eOW zU}ei{pVivIsVS|*xq))yt5>gj0QT7fFv%W($ubm_@Vh*O;&IHpyu3W!7vbU%$bRXM zTY~*Tp~>e%cSE3N`P2hCOKNddi#14$##6%QN=bVh7Jm*J|Me7K8Vb_}3gNF&dko%E z(;Rd7%`}L+F^%PNx#OYmvmt9I2p*XHI1*GpEiYSC!C;U0RKDq%eD2<>Gu=3D&_a_} zPv6=ohU-T`2Z1>&Pm!omQ7aMh;nqx5IRXX--CWZ%6rec1x!%0p^OY+Bz1$s&Q$(;Q zq@=hbxv6s3+vx0%LBHRv(T@|Kj-T`25gpxA&I|F~WE<9Cr6_eWoN-b7X?bIKhgt0V zk6?@)l-&ktuH9LCx$iS+m4;i+pNSUtIgO-+y zI=9&)>VwnFMohqFuv#3Cp$K{tiO+W~Gt%(G?x4>Lzb%q)u1)ErE`z!ANxDu}%fi)z z%K7CQ;pNNioYj&u!#=Z5;|}J9o~4}NEbmIt6ZC1asONE6Bw0ZF+^%QT2hTMEvDZ5> zYR?1pVcY`DSD&{e#WRWIv191z@@hf&<=>A~mql#1O*^YcQ47Na&Bof3evXb_27I}? zCLp^NwkSX#544-Nzd0dD*08@6K?EPrl^jg9nKB+V5n}4)FL#VcqH&w)O+Am_z-Rah zWcZXK#yZPqCj_Dc9=q@-Gt8#B8UPisbYn_`Qq%347$fUGp`j3u%}wVa(m0&i!%UyYo9h7~ai9mx zR4P;$1mZNc-|x7CxQik=Zg*CX$#KVLYaK!2MCLo*^l*)lN zU;r4Ng2;ztefhe)bV+t1VyJ*)u31jz+$wBx@wch+v`}06eZQf_4v3R9_-Ik%?WOip z7`sRwO{5_&Mnxg(Mm~BKslL~@v-;ZF0&+2=vcc4IUy%gFAiOdqx-A#r2QQIUT=Tcx*g(_9<|5&q*N%m zuP@~w!Rs0k`9UbS^u|PYLjlZ)^`p%y9b2%`K+iZR$@slUDi<;HIH(ycBoJwWfcVm1 zg#hc}utokwMx;#6ytVKkR4$uxb6~d|EzH5wlcKVBbu`(si6!STVk}=Wiz&_kyPE3*xx&V@2st2v))id52 zH}^pg0&$g=u5H#~R8oq|arNs+OuqiCLv{~)gLjD*GTOLHv-|Er`D^ND(;c&lYkI&s zPALnBez+#N&mNCN3>Eo13t=KXJNc{h5YS;Qp!);!Y8%1u8UaN znPB?`Am=i7f%B9#tqzUPImpGGa#@+w(1dfSX$5d~=p`8E;aY*VvHGj2wvISM7eJ01 z9Q5z`I&s&9!;u69gYv9FXqJ2@{-QE>BCvcfHDE-BR7)!J z;N~o}t{En%ol`nXu9r`+^_XC9Bq)J)BJ^H2D&1WKYY!+)q}DnSBReo~n-l#sXoTaX zvYYz#@-y_D8X0unC6^ne(X=M)x*9$>As$HqACI9~TQHqNDK%<)Q#(Bx7OM66+R>?A zBM9U+$T9-Iw6_lUj)sTI7&|FZSJF5#DJtIAY>%LBdk(Qo3M-$h%Biv6R(@*dJ>KDq zSK2%5hae;%Udx3F*HoFyz(oWg{KI^9Xb=d5)&n0YW%cD#-@$6DR7$zygC3*R zc$ql57K*vBzvvx$5AHDy&Qmv|h~N#kqBa6;);ckH7QP4zvGo=uC9SFLHKW;}H>;u_2V%rHF0Z3t}P?gfvyt3C=BxG7{B-MwffB&V-#9) z^+im+R=Go34tz#wrk>Sr5KgsR5zd=X<2{mZobcsC>76xvpFq=X(DC#@#{)D}$n`Y4 zfa^nuwGlIVJ#M*DABpMyG-G)8YEnf#LzuR1t2UozRp2O-;FF1ksOMQmcz*fE;|?as4;ZSkkgxAbobZHx7l#K@3*S zuxfZ!H@_{ip$4c1j|Mu1FIWsMw#=wKz4Nbyk$#&)1GrSnGP{g!C~H2b zTXi~5omMZ4m?|L0_*T4ldQ7tfer2iZskt8F>eZRD70yh~o!9Y_vgMB==U=uJ06wY@ z%p8y?Pf)?{fziQe20@Q-RNI(LBCX-pn#M1UXjH8i6_@cltGuPd=sW@Y^85nuD0%QW zYYJNy-s?(bSC53)mIDq$35*8y)-Rl{@VVYtedUW6les`4%m=Os=~72L6!zi8F*)Ff zxfG(JAeo{I6M#H%0MD*x^8T|_1xE*9Pjh-@tqlf~ztpStckwtM&%()5z&|2(=ukSX zpldhqjA#>j_4$aTwfZwfGosAo;=ehEglpwCHEH%eJ8yUynaJ4lX8j8k?=1=Uw6rDc z5EL}?_4VDmmJ`9pBm4s#e*4D(s0FjjYin2=!_$Am2-P<<^cnC!Ru3z)tGfW0e}hmn z*ZbYw-Qz8g&*0q^P)nb|J0UgoU|k^}c@$bc{4;a*Ptxa4Wa9reOY*-YEb{?us|=v( zoe;*InT+re_Id2ZG&$v~s zRM@HT!|otI?BKj|BbT&po`F)P!I$W$M)m_Tr$y7u(_sH2%4O!4@|q7!WBJ-~2hUiG z01Bok7t?21A>jk)A+OrCVbahL8dP0SYEL#{z!4vUkTt6q@|;3l4sOI)l;iPQeV#uE zsKk(~tE+$2_&uvoYIN28Dzi9J6fd^?t>&*4K~YJdpW7 ze4c~uvsC0M7Ek>D4BUIWN}qkBxYB6tHBe?~a#2M^9eWJ4=etq*msE%4tzRA2ei^

    NXHj-1IlMhmoy}x#G`=|w2ubIx^5N?_3E>Pmug3sr zBJt&gKw~3}+%q0!2r3OQrh;UwovM46p2x9NNdA0B!VHM;lFvt#3|E`fywF2NbBnD~ zg>uia{KQdvmlUHIy1>XCimA%%dK~rZkic42a>uA{>WMBPmy(@*U9Ho2qbm2C#n9hQ zKUN~lBA>g+siKWGxz(^;kp7P#+&&PncWe&pKQz(ST<$!;P$_TDab{&?51i!buqU_# zxtJF03C#nl8C39WjGu&ofeIN_(s@d|S}j54mzG)%IZ%u|-RZX*15%Nr(Ols&2)Ed>xPFD8PQ!Chv+Qv@)S5^&rerCF$>CX4cb}{UsGcDNNAGsmC@OAIn8DK zjXh!v5f}MH+w*{03=s>zVyG07#CSW)Od#cn`=l7#J8Yl0x6v~q)&u=$>z>iFdV!TB za%J?4%r#q8lR2tVRV-4RiW^w>ZH!gd(rTz8NJ8Hq75Y};Xl1)NhW-YauyapVtQKP= z9d0$i;evv3y_FSDbx5)Jtk}iKh&^F!U&JwdIZ;(G zeh-AKuoCsT6_t->4|5m_j{SHWFTBIUQ#IKvLvD}62=oKZyhyqe6#p*!wSMhw)SCOM0Xr5ia?yqAeLsp6Ep)~0ioOLc9{#s^)Mp45%*+`~dVB1a8n%fQj_=jK*{B`Uf> zgh*ga)i6w5JR`luv3f2Y$dmy@+QdFpG}PjzcA7-Tpu<+ivc1U3*A?)sPWX;Q##E28 z@3~opa*(_Wia`z~a{-j7D!~o6fYsT~WKif>_0-!Mn^CFMp38{3UIt5S&_4KC&W(9% zKT|JiGnCscG&_@J16{VzJqVg3A6+v1W0)_r^#?jsN?b=fx2ziPpqR=+Vc z%5xOutmv0XiGhz0(=k~a%vi&J&KZ>I?i=x89>dMMWf^qfp^*Lr%fo4i-6(P<)lr*vh6(0G8~_#B%Fq95GB!Qp*{^&W?5Ku zSlsTT;a683+9>>8d0nSgUgKQRrvY}{&}?r1eyRRKn;IdfJhDr`AjSQnuD`gc*;Szx zfg-=4prG>(H`Y6Z-7bBd30wPFLtjYs$Vdq2UT@6T2ZDq!4RoibGH_~6vTFgnmI=B9LtU0$#iSA|H~Y|(&Hr85=E^(odH8UfWCv+BpjF02 z|Ev*jwy?-Z@;P3_@jjG#`d{6zIAch^xc;(8jR%ax4;g`&SydaIlO-@`R z>*(V9hmc4(;E-*SXF#>h69D=R3cx^JSiMqU!h&b)vrpV3{Wb4sk41odl3)xN+rF<( z?tQ!_z@9`ZQ|lN)>F3kk!2g_j-%_I!-qujlXd@S(=0ni3wTO!d&D7reFNg|L2Rn=A4EV@n-Y-J>mVRB6D zOUA#HYC$m`-v%CeKA$m!yk5Ddwn|B>KR%_(@fgb?+ZTh2BVKy5-4~_z^#upqUiq0ug=)gb$+oGwVx4W+;?=@W{s#5$kdZ4FPMRmTy zQ!zY%U30Z(!7jJ#uuutJi$bp8SOYuKrli70?unp9+plp_ds$(t^!5?w4+-8Fn&2%{{$Du?OlTMzbIT_T&}F7GHkx;zhmyv%t~g2exLVmu1Qo(sZW< zh8)6I8HYQTngNu`;oS)@OR8zbFe?}FpcWpBTO_Yt>_ zf~y#=wv>YHT>N7Xqv+#wMmwe8i6diYW>-@g)7O!*4#ClGnyx=+76Lv$#6f3ENj%E- zq&6=7A_uN)wm}TeC=;3y4+Su!FscUBSuymj!^bFhf1HH+YE5kJv+Sc zO>on-vkL3v3xTrwu*ktXqr<->mfeq@>Nf6>JR{AnMNt_x;{DS6%F0;0x}_MAZxNg1 z%HCIc0;K(XkoMPKR`+PmI(m4`d(hCA@V;SqY@^eYFnLNi$xR0|V!Xj^ALeJ=Bv7Z0 z@ne`|YfzKYy;9UY>~frg1-k*b#cxGvv5Wr!a48Pu+;DA~?HSwsx;9gRM3kOq#2v*6 z%#|}~-k={tneKhY0~Ue1!wZnucRqdS0j@z2Rv(BrF@m7^YvAhv@BVk*ss8k~{|5`4 z*`3oY(!q5BMdG!edARKSsZh(5*T*-!ql4h;SmH)=LjPWMfBW6pgAO)=wG}Iw38)WL ldG=qk-2c-p$OB(aA(tS+$1$GpAHW*Wo?Ui3AARq2>hHJZY(M}2 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_022_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_022_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..8eaa1e148f42739b6e609c3c21351f022494d2ea GIT binary patch literal 12200 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 up3YGi4a0itJca=ix6Xk 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

    g9u83<2-5-g561)? zlfPE+aP{idAPL4tCY_Zgb#Q-T8Gc5j+5RjPVBk=oCM`M=G+mr*ll@{hhXO9@=H@oj zeR2q0yWLK9FpU;OKvV75#!=p~h`Z?xKKcjXV8V;M8 z0rK}iQp4s}@CTRDUZ9l5*Va^s8v=ZNe+Lh_G~m+CjjZ{tWyN1% zD1Sro^8GAe1%8q7g;6k>*uZA9ix>>Eeh6(pUsmXm3VN`Fc)r9f_|DXrf-5W*@gwE$0|2kIyv0L7pBM&}So`?i9R zVMf3`n$IBi8m|n6J=efh^P)TFJa6+Wsk^yD_y1+A`M(ii|0!ZRX9)hreLV%-mp|89 zLW{6yx2E^@zCl86rJ7|JtD*9&{sx7GrHz2M)h+vK6HG=V*hidyN{eK9z)Cuh4z9FZ zqeQqQ0V~{`vaWZmSSV2K%?qxZ!F?RyyJB1qz2N2mtz$Z3<7U305S*Ble2@;G zJ$lpS1>7|dRCCg6&Fb0dgL-uB{Trm7!&wtA$zvJX@};Tg5$;auqcWj$dQ?M6?-Fp)N5Nj)#ENcVYK__TY%S~QsVQLr zyI<%`>b3^!^uf|HQ+v5wbb}ODjp9@UcgyRhm#Y0I<zNJIqiAr<#)MWe?h66#_5)0j zJ0oP7cp#lwt<(QuAx!>agD-`FE;@CYq5aiN5_la$TEpN=&8N22MfIft?FAri@wH$7 zEw`QmBIcauX>acg<+mjYEa^F>75Nj9{if>H14OpNe4B4yA!U6`R(v-BcG&nGwvY@gl6!K4db^v9h(5JS5mhuTl99tt6 z`{_OYT<`ODVKHlZSBB9BiQ{r6D7Aad;|ysrMa3tK7_gQNmqc(A+3Vx!?Ueu;fP0N_ zH6-wMv}|!SZ@zh9e&=SKtBcD8-s4+E<>kD~e4tu`hv1eC6xBx?m{@7QELYqqX-(2i zV%B*(+<2X5>7R#eF*%x3W^N*1h42Rg`Pm4}n}cOP^L(zE5!*jK6qC!wa)El#MrvzY+Y9<~#O_dJ!w{J7? z4~VuhZUA7kPiz2Ep?NY+jE>*{R8C!UaHl9XWqB` zeR(Wt_10(R5F^^`E!HJpr((MxbMc;QR?SKl~S{5*z1fEIDJYi}0H2 S17Hql{}=Xq@;^U$_TK>gNoGy} literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_024_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_024_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..483398348f6858d1c6a71f45b25c98fb15a296f8 GIT binary patch literal 12542 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 Q2SG;;*&KZEh3AF;1NPb<@Bjb+ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_025_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_025_TURN_RIGHT.png new file mode 100644 index 0000000000000000000000000000000000000000..ba163f5d0c195e0aad292c78b944b088bde62753 GIT binary patch literal 12507 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_026_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_026_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..f1fa6ca5f4fdf593c3a0f14739c0cb99d2f755d8 GIT binary patch literal 12501 zcmeHN2~<5mE46s~`%YL_nG1j8+AeF$@8VBq~D~17S#Tq*a7gR0M=* zQIOd(g#aN4*MV7qfD8$ULWGbYU=lLF9k8{%?Y(ck`?^-IZ^>HhlLg5>C;$HTx4-}U z|L+dl+NdpFwHSgRwf*~cABCWK6%aH(c+o=em&+Wa3b>eu?r{mV$D%{Sj|KZchmM5? z`e8%;PJXi%=Mx-q5*q+F{L091>*lp5LPG;X%waJ9U*2Je4aUG8xP`TXSw0EehYW!r zjn5UoN*Gc*xR=q6{kwNKMBL;s{QdGVF|0{nKg^k=v%8S@BJ@6cveI^$+4#=Szi|BW z)`mB^%SUc6+IOI|(P_`E^|#Nr;GBQlga6^MX{n=|-U;W;OSR8LM098zie0et$bk!c zk8=Wx?bkl9TI4YQlWlSJ@iCTpV#C%Afwtk?$@*rAM7Yn!*01fRSi-7AkFYh{N*A7e za0@(S?bS3*fs*0{YAJ{VwEIsSSL?%~U#K3)qw5oA;)q+hyEaY`_MvC%?1nluP?)(!NBIYgp=7h~sJ+ zuK;T>AnGEIO(24Xc5lOtyWod6c_OtVU*8sG+5{`zFjdxw&EeJS$nHmv*^~5(q8RK( zi6mM|@f6+l)Yp;EJZ`ejn7Ud_rFsNZamuf}YOo^&Q>Gd>vE{N_73;v>3E|spgon*3 zlO*Trq2=ntn$*Wy%r_TA-n{zLY1kSHVe#8m`;t6o|H2WT7Hv|Cr@kbBGJJiWI9zEK zhzAQirF2gNSmd)y1nxA36obPz96%kF3#=8S>W58sfAWu|(ZQ9TGq8o3CV4maB2yJZbE+{zi4eo3mh*s4w;1 z^C}85E=ISQbX!WwCSoR{)aA1AHft*(R?f$=6Y2Jp@R1O6DS;-N;b4hTB-sM!KEm>h zYHeratIQ;XZvdA>yii4~F79*uWR9-Y=>Fl{yu!%N?waZJ2}{c) z{c~+^vm?jC?}`}i(2Whs8c^2L*31(6B|k@4ewnv!gy(c>cPDHwZ=Xd`rMuOX2bJ1x zM1;Ij0Ssnx($`89L4K6tU^kIIpDv!X=A5+4^EAqh>?3{6yN;mutxxBUHe4G!!nl~N zJ@5Ok2bF8>q;)XKPU++iiQifuRRRcs3p)oas$TqbDJkv!13 zs)eoo$&wqCn05od#wxPZJ$mvXk4Tg8ii&jbg&AlMsf?3?ieOt!;O(T7V406nBvVaI z3U;ueF6~xqV^NeL<<*s`WTG%xg^yK=rLGNB8qCfm_x0dC8DyH26V_}kn@oh!W-ifO z0xCzdf~Q-|NcpmbM*O#V_hM0!wG-?g3>+?)gm>JiYh8~HGsq6Y`?na zX(K+D4{3|roAXN=j$>1McDxpdhwD^fmNT^lL%5SCPnuzZ?u|>f*ETmdo2PB&XW^0F zNsnu`fDaq@q@i(3D;eA;*}N}&6kHFm{Biu?BA`$UUY*N|3Jb40<&}|bzVO3zqD`yQ z0xEM>Tj2Z#43m!ABx)O&^#|5hsC(=G9x??b!^6Wr*jkX&Xcddga8=Z_lC2Jr)Ql7p zhll>z9X%w~FZ-LD&%0hKNN@lP-Ys>wPFNI9=!A+5STK*`(}9+9!R8S z*mv6cboF#oQ`6=qFx4mC*wmCTQ%Y3Gv11RU#S1GL0h$K}>vrS}@fl<}<+S<>9*p2k z5w}*gEQVrtJ-&1h$fTt^29-aKA5a8to2*>2Ff$_}EUc{5wSa2%qnAadX~_$ZkQS4> z9ivy*vDR!npkcu2^GUiBWk+63d=o*L8M@RY1}9aJPHX3Q3x~r27~IC)m9m(FtI9~h zrvT6(#}C0vS~rAaodj}|+Bdmk&8DU%pD#juG;&pQDr;BT7Ini*K68A46QqZ`ol*nD z_?)E19|2kqNVofsF5IuEIDt}2L585wXq5-%@RGBxn97_K0?l)8S>7zGHe{ZvcXe}v zmt08DwsMW@1?sCKN!wM|_U1hduE!_2M=_sB6p2J4dj?c>ck}Wuj>RdB_@KLbj{juV z0*JVuO1Xc3kbs;Agwk4*gGMc@ya7!6ka73co| z)eFt}+u&OMXg4=EA8&8(bM`vcmo8nJMbrG^cWBBa5t_598?IZWokEErfATdc~GcuXnG%_+$q3)v(bYvv@w`_!D z$h)EXJT7K443>PP`I^T)!#iWj-dlmzd^>yO2OQt!>h8W7sLn3rysn-TY(HP$JU>4_ zpeD+&zJ54dd2?Hvo3~nFQ!bkb*8riu&XD!9~Co=vAY!@0^{Tf&J9mw{Ef1<;bY0D!+h$1VB)Gs~CmdH^NLU z*?y&APAx5SNXVz8SLqhYTl^63p%7o*dObPWW~kBRD%> z6U>t07*zGsPhZvLsFM_;wXDnsrG^=)%-8Iew*Z1%(`g=}^)$XOc0?p4X#QThDg^Fp zrn{#nY}2MqFRicUJRJ=kt1u}-!`)n50@He8`NBDePPk;Yv!R>?RaaA5|&DE(b`IX#oDZ-MRG7F~p;7U7Q-@gCzzw9vx{k zbTI3rFL)FA62hvZT3e`hXKi1K9FDX3|(GU z<_MA@{)^8WN-HW}i}G*(N`L-Bpa8u{%(5rUEihldsprWGq;h|a)MulijdgWr0#4oP z<6J)?T=O59-_JVCUJk(Wjs`~OMlu8EHX3R^%=VN=Zo^LLOnl;#%b+_DPj;9VGD^3re%mJlKw1D;lhrv*V0Ag5juFSpr9aF%Ii+vR9G=o8Wd$t7f|1vhvnNjr)xt`UVR44-M!1R z>GlZ-VS`=5+t3k&FbT0yOG|4wQ%8CtB`svxBIx9-*BH^{#xy?KZ{4m7?A)m?a!puU z!Y9y;)yf)cpXS(SH*&}WDC_Bzw$4QN4fhD7^2qr(m;)<>l^)J*z$-yXy9Sldo#zyg znXZP_Z|bJ5Bv;>Y52HH{1A{j(1?PCj8Kzg3%yO1m2YfA=2gwi4zMbyu>A|g*b6Z`a*jE&!n-}fIiq-G=;iuArJeOSG&;*2Bviv{*oa*zIJ&sswnGU1 z`C|Q-N?BX{uriB)un_WiyB-FUX-JZeW7r5u6PGGLty7L&oAKikqw@)C zEKIq(z73pu)exkk4Bd|dQ8PLpP(ArbWOa;OUarj(I^{X8Sh1oJ&q{X&F1cWMg4y4n zkH`q?LJr@G7WWMl>ZCAz!FGuvWI(kuio1p~!n&{d7E#Nq#f%BViHOG*jRKlnDw?ME zF)e2X&xXy^OkT!rrU{~G&KWa**X525P|M4mdO0|xtE;}s@WoAq_XbqLi#!4!ESQ@$ z;-YcwRrBCi`=okYat*J*Jec(6oGvh)m+9Je!gliVF;;oez{lUz!5z8;%gCKx06hXr zH$RR$Pu=pcwRF@j`J^C?CQP#rdl#CgPYalTd#%|Pu@_IzLpf$K6viS5H4Chc6Dz!7 zee(D(%e0Fec`OSX{ZecA^|MT$UPo9)Sd#&Hd{jtfdragal%Z|&4Y%LF6I%t0R<=fW zuPR+wJ-7h&JZV}P+7JiIE~g}uI`SZVPZO#J zLIEbQ7Q);kh8R|vNO+sc6G9Lk(4YO?iydQvAcS1lrY^0srwd|UsCwSB(+yBso2+we zo>3VsDGGp!PE?c=+5x3d1xzqxbCL$C5&1<$ ziGgGFn4qAaYP`KsEof6X{H1A$Qn$}Lwb9qxs}Gn&WlC_jf8pyabgtMZv)6IZDX6Nn zv{d1}b#-+CK>=JaMw(-O!TY>z;`t5dk`#l@n=4xUYW>l31_ihV%u8kCs(c&>DjJ|x zrzj4596z`S6aZ1YlK1z#ygYEWaX6nX=+i8lP2cfRA@9}kPN0r4XaFiF4?&eoC*wET z^B)B9*#9DfQ>YKNF&thZMW)CziAS+~WAh z+5RB{C)7ZZ;hrwa!^5D!$rqcb=VCJU-h5pJ%vY3mSI--uT)U7aX77+Ng5zdX$jnNl z#}$y8g@RG-3QG=+UD^+1Al3 zG&DdR{yN^|CXzM)W3$=f@CWl-^Lv5XRrskvT1LIi{Uraa%9hptEO*Q2?k;-IqA$Cu z-_^nt&PbJ+#)=i8_OnK87v=2BP*Vj~Fh8p2;RRu~kPXAYFg@$|dHH+y=F{Rz=y4#H~|HOAa}z|%Q@ z3;Ygz*=->m8eo5H4*{A9T;`uv{i{Y5$_s75jPZ0)#)%OKy01RMe|hkr*x!+X(iZ42 zQQ9F7uZ^ffP}FY4o2F8UZmyUz9huxIk0-Ce@o0J0FF>GTt=0w}L$tJBFOj#b$4I97 zlQNE?Ns%>8Acp+d+Ve4{&zaUzmde?5Y@jA+iqT$Lai3(Ht}m^k1^2=n?HrjRgw}9p zxQzVEC-_ebt@Pj z(~@_Tpm18|vg6-uv^*f6ydvn*cu;N(9>gwl@Ywf{dGR}G1oGlHNO$)wFhwEfd+JGr zh0Z<1=sXA*;Gaq*Kn*_Nr$5ekxp}&+v>uu^2379j=V|ZKVi%XEhtxu=7{>avvwzv{ z`m1*J|C{^%3V!XU%J}?m&v4>F#&7^uM>#fme{rTw;&rWnievq8Uzz-YcvtYzFQqrSl&EG@Jw|vm zH5IJ+(7osU*v?!-qYE8u-q&+-XRqlU{Q!&f1pMW}R}D#b`#7nLrE{7{QLi?FP4{Ya z-AGw8pRLFkK?}zJRBCC9;fAmiSyudgl-Kt_J4RGOSkqbcHAUTNWu`aB;`AK*QYA-$R+;^lg0I-nFO(^|i_}1yqC>=%(4oJ7 z7l}^xz@S3HEp33>O&?MF7bYA3243f$_Gi?V zm6f#zkOe>n@FJ-|5X|{zpnELY#1ub%Kyfn9t^L46vMQ|l&EPy>jzJsFXX^o}`{y={ d9sXS6>ClRASe#Yv0`39r-($PGaHrRq{{{pCcQ^n5 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_027_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_027_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..50ee771ae30d946f5f7af88a0ba79587f50ec702 GIT binary patch literal 12484 zcmeHNc~n!^-o1c`h={FEQBcwPtQM4@C@2E4PH2@ukr@IM2_i$7F@z8t(F#%@LWBUZ zMM36C<{_X3TE+qf2!wz@h$JKkX@U@v`<+1hY*%03`rcdp-g>UjKe#uGb#v~$C;RN* zK70S}SeTh8uT)zJL6Gw4Q^(IkkX$(gEelw&9Q-GSYo`EC2021|71MKUEp3iI;W3+e&I?ocM#`2>5(!t?Gc`=Xl9mtb|X@k>8f8tTpyq5g-yRJ+7n;jT43H};i%nd6b`;ZAyMw6~3wacMRDRuG? zwDtL9xe5fmwcJS#55SIX*Rb2NFsz`i0JWlp++{hfRzs|g|)@)bQ>dl(@ z5rXX4c`>A;4Ccj>lUK!KBco@T2m*GFF} zWGpO{P+(i*g;y%G$W(%4j`@uW{&h{QuroH|nMN^THk4rFTRD+lR8c{L7xt9V&ok!Q zLld4nc{1|^f%kk2uZA|rUsbAm8P;3Hpi;_8D$Dqx6p>Q}w{)O+em)F4-%Vz~^Gu>M zs-GKjdgfcznx~r%`aN1$U?CB`j)86GD6H@AZ)e7l7cRn62>isEDM1N)Kb4hrFhb06 zc8>TdO+!F|?;Ymt(jN*B#PR~k4!#tzP+~GWCadGK__q3#In%kHGLTLvVG%LDqM|~= z+A{NX)C2SIk+savRl+Q2{r#FY&iLTd0qo3-1SReANAN6o%VQ?u)Q<3RUGb@0^h`3# zkj3k;;a{OOF@BQ|&n+Z=|mZrQfNOkNoTze#%?$i33&1%V%IUL$&tJO|fcPWd_&ADUUao$3S_0jf8Ye z!EdopAF_slWu-JFpBB7foVKXZnDWd>=^@lVW&02`sSc707-G<~sGT-hxL~adG!{Ss|5BBibpf;Y z<>eCLPgi7I5Gx#^x7WG5=n*P3q)=E!sR=Sjxs%u{ta(N?Dzhr^9g4#}!(p_jT4qQ9 z@hMo`bp}x*YIuBa$FzJU^!=xPGQ%pUH`i3@V&Oqd1fL|Dl6RP+=0{jD-Zttdv>+(e z$pOuut<}vx7PUIQxZNNdp0%l+i5KHiv!m>6Iw(dxN|>72nkglz?9_mw;RfQyv!m3iZvsADghx%h_qQR*Mri{v!BNZcG zX*CZpgr#Z5KZPcjPUQ|pd_OI(>S$qRBzWl-0fRL%Hgm^3{9AbC%OQ!dOf*CoxwBI^ zq&{mrTVZZzYx}w>AUJ~h;*pF?(&D_Z86Al5S4vC-JcAI;-qRzsMT{8?TWsu!9_w{z#fa5_KSkwS{@A%- zC6o@>G;;I7@V9<*4Ty+yqWw@EkFU8%nr}8af}uVE&;AdOldpZQS=-p0DW=hD(iD3q zg1$)W)X~)~ZvQm8#uL@kH&%#fYc(L96{aV0Z~B%wv>zOeu2G?D`l_m`h6bz`H472T zT3cIlihuYLlSDkAhn+kl{c>E5CmQ$7psxzvUgaF9t6Q%v(*1|y`!xec(|S3ATSn8( z&0l!#SF6GuuP-(6L0_+uE~+;DA;Y4UztX-r7S-%dbkgI!c(_uSj~md1C~}oAv-@KiExbrIFKq$09+}$VUiMq^(t`P+@i3o0rwaE=Z3BQtIEsEHc*4Z5l(A+*1G4)tkAVGcXC8*p-F z>Qy5A=ux@{aDiT4+1}pX(ISiVqs6qzj@If{z=OL1588ReRq1CBz-lgjRBkj-ZTq5W zMRL@e7o1#HrFTy}qlNxFPN7N?D+-PuTdqR=jP=l*_i?j%8u%%(;Wxncn+YTm=MrF<>ra)+%S2$ zx$#UUvlDf2Tb7B{1_)Q(BN0iLTf>QTx`}=UT%=nQ?c3!i$CaQsF?aIfO*!lNPaPn|fUdf{rW$`t-x` zeVc(BC-Zwb%D9pE_;|3Z51GAv%_p`WC_e*IbxlP{i4~~Vjrd)b-_X2;9%vLAonpEk z*DckBgCr`KpsZ8Q4r%P_I=`{en|76bG)r4&c{dQ7fcOA>PU=0ndGqEzpaW8U4TJ*Y-7mo)DD8KdU7Jw1O1{cXI?&o(;C(*Q<<5Xm3XTp ztuA*Y#NXe4r$=FaPF|jHG-L^t2LLJ)$>g&3%LVPX96YG&O2D{jBOWwAWDC7rr}$iP z`z=!9K(U~F_0#-8U!p5^^`GsA{JGxBhtdAY45-zh^7SY0*jQVGolM{0_LbH#Ved-$ zNl?o3_j0`bdT4%}oFvi`6728;`sND@`o-sp{tkr=zA1b5>{0e_K96o$eZj_Hi80L% z`3)aQB$0HB)Ih;y7lO;})|I_u&RrxDY1}Fh9g#pCWfAb8{^Ls89Ti@V8a%26yQklQ zG)c(l%f}Uhklh_92X?sq6FnVzq={Zl1?FDN32OfQoYskOG zqXM+Gcyg9c@XOQX0LyYf37i8r>(C7x?CsS?9z1DH*!(o_X|_^yeUQOs-RvJ)*}BEA z&>_QhSNG}b>wlLy%c=$#Y|S2Tb@b?Q_5h#L&?(CL#cgeEMYXlY*UtR4`}y;0WRC;E zRfGF-Hp~02E4zF5?%_js@$SLF)J1wf^6O1q!0dQ`zr7s_wPp63voY4$R^u#Iu%$9L zq-s@5;D6-~N#`(64jR^wn#L(p;Tev20rd&>a=g?KV*-=Z-PbqIkbN#z(<3F=8Y|(G zo!gB?lc2&yD?`JvD;y&g-<0IzbE|=Q{MnG07YdJgMX6|LQx=#A(NG{W-X=k6_ljd# zDWMG8d+Q*V^Vr+_>NfcJ`X&HV>{&8!e@$Wr(lTqOfXVbF97LUvf!>+`8*xLNrdf8> zCIZ`%tj2!TN)VM19C~_tTdZuHtk53fg9?zJigw+@YF==@x~A{cgw)K%0{52U)wB%K zX?W&NA{S}(2 z%O}r;MpIaGxZ*K4L79fAW8dF* zGS~@4PK<2-5@a$}!iVLU`4V9h!n?kCxK>XcTg<^bsrs;wOm_CJ@ydT%(289xSWiMa2Y85W}STc zCqda|D+~lLEn7~gI$cN~Jj6=2+#>30;<2&TtWY7%V~UNHh0dy9RXTg(H6x&94|6AS z?lg8`RKq#lDXnvt4GPQ5OLZ0;b)uR;k>a!9PTM~lmO82dKkOh*He;<={2MzBU2WQx zAeSUX$H={NB+49VX3_(RGhz9^x~ZB#k#H!C5;s}kI?AfLoXwgQ=A!mCOQCYAC*IH7aBYT;dE(uB1d_1L4fZ?;e6nrk@e6p`E3cZ?uOycS%9J` zxMH52eI}c#sXrKGc_?7)6sW3N8RUpC81GAl7g)HGi%_H+hy&Js8`kG9SbvnN0YPm3 z8ux$fWB!r9`Jeg!{;(Pprf+S2PR@gqX@ylLfAPk>1YEnc3u;j#848~)*#_@+YL}%u zH6V;FFpE0lz|?O%1Upl-H8~LwH4qIwJw3M$3M9n^1wT?;-B1Fwp04hwLGf~A3tL(e zvV%)2D(nDt%#OjtfX$Cc>`Y&xvX{wKhX(G*$cS0{m(F%hP6rk}-5`v0VQF=>A@5k? z%3SMg!i&agcAIxZ1S1%&{F@46;S5}{7c>9dJO0ni?T5Skdo%Edm>lD_<>uxV6&CK5 z!k`UZjMU|4=@+v-C}jA0V2T|%5!h0G;LM49)kEv*>ROYr+r4!1Nbm`#C5P+55-6j+ zk0>cAxuemI2HEun>b@z`q9+gp8UrNC>gwvF#t$+(z4b(1tp@7J!FqIq>~ZuG60C=WZEKNm zoA-lvPyieHGiS~mOD=jK<+ zy(}2*`K>q1`rm5ef;5|Rw@%}Sa)w~Z?2ZP-oyo)atul}cBuhMKMc-n0rQoqN(>pZ% z-P$Jn2GFoE4TOa>3*^=B=!e6a4>51ZDKtNu6FY^*Bdf*_j~cH6;h?50@sbriRp&5X zYP7w4*F3S*Lh&Cz77*2W4@B{aglRGIcU-+T0m8P02NWwGT{`(^fy%2f#jRf;q*pb4;3o@zYIL-W+oR ziDZG&GVN$vj2GuMc}h@9sh8@Csw2bCcMS&HOfcT0q(x+gJ)Idh?`d&DiYeN15Y#6x zt9o)$7%O3Qaf0rJb?~?v^HJ@$J{?G4-Ra4o6lEZ-t;9)=Yb5#*U5TdYhP~Gh- zx4{eisVzDG(rD-=Jf!mlg~G|p-1O$z7JUecj;q_zPj=#`_-n|5=`(o;#dZK(i`5#& zj(?LFK~Nn`uG?V-wCB#$DMpjjNDV&~-#iPG;iFr@h=*a|N! zRQqOul>38a_%C7WPi!;$Q||ja%dphw@?tHR5svrtSkwCYHUPKdCc2nLPFzfo?S4s+ zt;^s8b;DT$8$k_n-%#wXkfoGaS-0VAM)%(0#gq>q7&wCNcsyQ;U?7(kvyo**KW8JE zB=$r|mAmcXmA~q!V6(Flr8)ICxIiDD+}#L7tTcnnrn2FEb^m6ec^?C>|3A1d2EFnfTXvB*n$BynQmZ)gb}EOM4xl~q+OON!~~D z*(Yn>WrU;a@~@omEU{;f#jQ@zRoQb-V&!q` z7n76TApO%XmYE%IZH=xuw3VOL(c0>bumx_oR71Qp6$Jgt{N`DyzmzgCHR$z^+g_dP z-W*ErB-1Kbsa}MB()L##iHTf!&SJycMNAS61$rz-6&*K}v}jkgBIGXzGyv`Pp~d3; zY?u0lhbt@XliJ3mEkj@@sTOlH5vdOL{C|g*A5J;f7D{`$$1cYc6 zPy$5OumuncC`pKbVPC}%Swe&W0kWL`J80Y6`?q)gJO7=zIwLcj!<_l}a(H>ZcX^)Y z(qW7JDvLB0K@g;J;QKvR5TsZLL30BZ%m+_m1P)5zW*oHFKFAt}4GM7&z(9xGgZ#X4 zLEfj2uf}5n0#D<7QM#M-b+_uQJ{1(?7ig@f=kwbNU0i^N-V?{*I8u%54na5&$03JpJT?pIbAX*y+KgWX7gpjx%o$CQuS6VEK|^4t+>>| z6JLX0y zR~#%qd=$JqNzNy^xQt%5yP1-bGRE>S%XJEP{w+^W{z}i2f(uUOQcQ%Ufp=l?R@2Ta z2a`zhX&J{gq%##_OI(Wju9;X&o36D?)}hG9(P$Sk`hPXa@pihuZuVlzD2JtYtNA2mKrmBt#Ep%Ts}m6 zV2cWEOzawe&8LP+XJ~L3d}4wbm53`Vf|tBuT)^7V+ML)!D!4PdVYT`6jsRwqtORoV zVm8(d=6V}xVO%P4M3hD$hJ|(xxirI)2yv&Kl~!u0T8^do?Q3mXX%2knwW;e&19?V# z3a-?X?h0)#>6*ynmxs`V9%xDHrmsw)tFiQj3T{{%J)Mc5bb_BYdg_Vl4+(>zH8zE| z{*IRt`> zU|Avb_N<5Lkb^81O^AKNNlzBdAQ;`yZ^IZIZSR^aNbB$_5s#LN>a_V3l6<}EO{x{6 z>M)gS{GxAOWb|skIXw#rM+(K7IdF@XyjLsEA`N9AYAYcZ6!QxfH8BVQmcc@wl(4D+ zweqPdS-C4gkZ)Ob`(@*S@F-mIO61w7X%sn2CcYapaY_ z((F6IO%B#5+KHNLx0LltAH!mCnV2CXBvUUq*m24uiq*Pi8qu;wd5s=vn#s#y>S|M9 zDW5X7%L$|tQZt-mKCKg{<3uhoul?uA$KCsK+6}_@TB+W?Q>_=}vz>V(dp2!Nh#R>06 z@nk|0d^=VX+DEMyX(E|z;-CHf~MC;+M1uCSRmYEWv=c{{{r_)Agf^z?LwE3$EpJ8jVKYcYjmcnneXh zo~V@_hm1OpYM$wd%69(l`L$Ihwpr!!nFCtY2Ok@;nHq^^lPU2I9*xhtw&X@1^Pp0x zyOZ$lXt-~~%LH~mvF_F3fgoe7t@Uzxrmfd@weJgyind8|tGkBrC78g#z*4mzF7kN1 z90tS31&d8Oq)uo=0N9!6OXga4>aJ`mQ=ngNzjf=D>`v9aoa}6O>~7<*{`#DN`>a_6I0lW5{dtV%c}j1b^%5`<;V84$EJsPx$vzaPJUJc^%w{*WV}!Em7&4PR<* zZZ^MPze2EdUi-@Yc$E=Q@O3k7sb86jPC0DDVZ6zQetHiYUZt|04!tXE=z*#ScCvqD z#J9DpD|!4L>nt|6l@cEs4?yEQd_e}w|CEV8z6ktjCPwP?%>M_f39Jk= z)Jk8hiHQlu%ggJcwU!x^$?V5qn_9ofF=B(V-o<#7I5+@Ov%O?d#|B?JTieONFE7+q zSD%kZ4nzt8r0m>`%*;bGhq1e;+(CGAMd|x?04V|`M&!7-AZrx?zT`7zpx+z_x(NEq zPuGtw0x#Z7gfZMLOUue!G-9ex#jb1VddOxWmAO5!q@)BxAP^cZZ2mlfjU{1c@e`E& z9zPD9@@6QS>g$n_l@;f%b2H+h?t?*v6Z)Xn3@Yi&DJnXBQt_CJi!K0ClY>fAtKX2f zhew*Xk56l2zd?b4AsX%arJ7o1wg#G+PJyw8TTxUF>wKcagtA3*{6v;wkhQ4|O2x}H z%CSmNTU(1X7_BWWZ)yZ>ZEX)!G1$CgnK^lRCzH5tNh*&XM&N&?N!ysPkPx~z4rd7x)V|!-VcMo4Z$AWO z83~Du(=L6lJRBkjMwU{kQLcYZ-TB1$_S}iW#VdT1GPAN4``221S!;IG&X_x|+RZr0 zBA!CgyK?2qKHC%6CI?fn3yS&*|9j%ZczD#5de*TxIbl*Mjl*IM-))K?iVSm7df6<% zGapYbFSO~%%E%bz>ny$%6Z3A+`a#^^-;Z^0bWB8g4O=QV)=`vhl$(*=%;a9Xr0LE~C5-jOo>EgcyW%k^VFPPz-L-9Y)Ck@@?u zpn5q0N{lzg)I(!Bl7ENYvGe1>{YvrY==)#C``sgMr90KnO`LTyCdK3|Nwi!+R99{4N3V=Zh%i&kr-EtdKdjMpuaQCZ&j`cfAu+K9U$5Qr<>?y6M?QKuvEkZd%V<}ZYH7)B|t!4IU69-RN2_>0D(kKo z2({&h)bCY`8Q%`pu0_^5GHhOm%VF8rd81PIet!3 z?Y}>WEE&#W)*3WBp?(sj*YU}uY4ZL67YO=FS3zyXCG=D@dR_ULc6km>bf#}*w>=RS zle)iEfGQ5p1rStLR+iEC6;HN#d3BpON05Sx5tPbAbD&7~1x{`!)3;_O#}fESA&aGz z)?6{bkF%`tk|P97K6U=K!an&1fnzEjhdYQ8K?>LNmPA-yerJ1Vj*hPGWVd2r7^U5) ze46dDQ5}lBzO=By{-~-+R@bhFGl~$T^knzV4{=iX>l6;=Z?b`5#IX50jsO5I4k!c% zv}#$W3=?JTu*TgkV@GG_Ri0gcBn*B{+?~F3AWJRwAAIT&8d^kpT3tHG1`q0ju`0wk zt_K#2Km2QNyy_XO$1~nx^cR#ELYxhBWgG`2fe+G_AIr3b&&Pyv6I&Y^ei~wFIC(T7 z+bscizVY2MAS9jVZ3Aj3v}ehu>qi)YQ{!QbuE%R#TwV2I_MOPv|Aja1C7_r<$ri9X zJ39fHY6?pBLN+!RjY68sL633@937bCK#7lU-RTGJLy^5rt%HMuOVV^O_l9=|?{#)| z`z*C_;3nXv42_IpymtU%00Y2iOnm}+h$O-A@XgH3jmRujPz_)NJAltK^hH`?ux;#6 zdqdB{9_nEzrNqh#@`E<&|Em>VA#RgOh>W2J2G;6vHg?Yrdf)E zUi5a1{l8W*fH?f8>c*$%A3_Aq?xQsisSsXGOiVPK+Om(Z=Slhz;U9CO0T{yT5Lnp+ z<{GiRoTNHboUs2AGVWWx(G!ybZn_``e6)d7xP4+8l;uS1|+Xk7nC>jxWI$6{pCkeexk6wf6uoZEJ zr>C(Tg05a9__?zzObU+GmGz>xtJ48>uT$EymzO~b+#OoYv%8H(7FC?vWD>?L*NJIN zu#|_~ub(2h657kt&3ZwcB9|^H)VBaOh;fpCeIqfncN<4r#39{df_UuP(NlSQ0v}>2 zn|8qoS2}^f=_@FxRS%5Tn2Wn;lreMe?pq;pv2Ccd1ZE-;T(cUyk7kJgO?F8OtR>*J zBrT-$k=kG&s8%dk;Itw)X;P7=1dq6q>*!^pulWTqKcqI+S4vM2bqhC>AZW!>VYIT6 zo8*avsS3*sQv9p0%atuBG$q+ZicrPHg-%;{FerEQabV@=U}k`z)juNt!2iOvvhsl{ zR6VdZ7HxJzF`3&pABsG%tZ-ViH8;$FNv9|BJ!bz(7y4b3kp4MEcbkt1C4Ct>~77 zNO=qbK&iDs<3Be-F~p9nclus6(^WnuuR&2l^X`POj;;J9LN$+hKX#RnX5{6g&(%AU zUTB~v(opkau@?UrJUf1jumO+VdGsl9&cl6uLPPdN%@%<+{b_dn)AtJ$02Y}tT z@_s5H5XU|6&%Y(NP$v8Br@%Oi7&O2^`_0RC67-CMnIW3kJSxFy^plt3V;2c=-rhH{ zx!ZuNt!W_Whx_&VvoqmUAPP3MjA!d1?gxv>)c93r0R>WLD(;9@MgHR3U;buD{||Bw c2i}sPdpHmDQ$gf8@FCEFy%u}2cDeodKfDB?bN~PV literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_029_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_029_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..78d930ab1e55847681ed4539c5876758797f34df GIT binary patch literal 12477 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_030_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_030_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..36afdb866f890b2eb3457c376606a946b2e090f4 GIT binary patch literal 12527 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 O_V01no%6-XZ~hbg%Uk~d literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_031_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_031_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..89d28a73a6010a3de2a005fcb8c396220d55f6cb GIT binary patch literal 12518 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_033_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_033_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..df4b37255b4624081d9a32d9306b8e6bfc7bf585 GIT binary patch literal 12145 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 Y8NQHS^YE5|hd}%H9^6y1%j@ia11jP4YXATM literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_034_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_034_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..8f15fe0c35690fcc7ab0a06431f478e560ec6117 GIT binary patch literal 12138 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 S)+jIsbl^LOy@h*@pZ_mu-Hqu0 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_035_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_035_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..03191f238f132c39c03d80b588a9fcf74829e51a GIT binary patch literal 12158 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/plan.txt b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/plan.txt new file mode 100644 index 0000000..1eef50e --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/plan.txt @@ -0,0 +1,39 @@ +TURN_RIGHT +TURN_RIGHT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +TURN_RIGHT +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +PICKUP +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +TURN_RIGHT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +DONE \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/run_log.txt b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/run_log.txt new file mode 100644 index 0000000..cf56dee --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/run_log.txt @@ -0,0 +1,39 @@ +000 RESET pos=(1, 2) facing=NORTH inv=[] +001 TURN_RIGHT TURNED from=(1, 2) to=(1, 2) facing=EAST inv=[] +002 TURN_RIGHT TURNED from=(1, 2) to=(1, 2) facing=SOUTH inv=[] +003 MOVE_FORWARD MOVED from=(1, 2) to=(2, 2) facing=SOUTH inv=[] +004 MOVE_FORWARD MOVED from=(2, 2) to=(3, 2) facing=SOUTH inv=[] +005 MOVE_FORWARD MOVED from=(3, 2) to=(4, 2) facing=SOUTH inv=[] +006 MOVE_FORWARD MOVED from=(4, 2) to=(5, 2) facing=SOUTH inv=[] +007 TURN_LEFT TURNED from=(5, 2) to=(5, 2) facing=EAST inv=[] +008 MOVE_FORWARD MOVED from=(5, 2) to=(5, 3) facing=EAST inv=[] +009 TURN_RIGHT TURNED from=(5, 3) to=(5, 3) facing=SOUTH inv=[] +010 MOVE_FORWARD MOVED from=(5, 3) to=(6, 3) facing=SOUTH inv=[] +011 TURN_LEFT TURNED from=(6, 3) to=(6, 3) facing=EAST inv=[] +012 MOVE_FORWARD MOVED from=(6, 3) to=(6, 4) facing=EAST inv=[] +013 MOVE_FORWARD MOVED from=(6, 4) to=(6, 5) facing=EAST inv=[] +014 MOVE_FORWARD MOVED from=(6, 5) to=(6, 6) facing=EAST inv=[] +015 MOVE_FORWARD MOVED from=(6, 6) to=(6, 7) facing=EAST inv=[] +016 MOVE_FORWARD MOVED from=(6, 7) to=(6, 8) facing=EAST inv=[] +017 TURN_LEFT TURNED from=(6, 8) to=(6, 8) facing=NORTH inv=[] +018 MOVE_FORWARD MOVED from=(6, 8) to=(5, 8) facing=NORTH inv=[] +019 PICKUP PICKUP from=(5, 8) to=(5, 8) facing=NORTH inv=['red'] +020 TURN_LEFT TURNED from=(5, 8) to=(5, 8) facing=WEST inv=['red'] +021 MOVE_FORWARD MOVED from=(5, 8) to=(5, 7) facing=WEST inv=['red'] +022 MOVE_FORWARD MOVED from=(5, 7) to=(5, 6) facing=WEST inv=['red'] +023 TURN_LEFT TURNED from=(5, 6) to=(5, 6) facing=SOUTH inv=['red'] +024 MOVE_FORWARD MOVED from=(5, 6) to=(6, 6) facing=SOUTH inv=['red'] +025 TURN_RIGHT TURNED from=(6, 6) to=(6, 6) facing=WEST inv=['red'] +026 MOVE_FORWARD MOVED from=(6, 6) to=(6, 5) facing=WEST inv=['red'] +027 MOVE_FORWARD MOVED from=(6, 5) to=(6, 4) facing=WEST inv=['red'] +028 MOVE_FORWARD MOVED from=(6, 4) to=(6, 3) facing=WEST inv=['red'] +029 MOVE_FORWARD MOVED from=(6, 3) to=(6, 2) facing=WEST inv=['red'] +030 TURN_LEFT TURNED from=(6, 2) to=(6, 2) facing=SOUTH inv=['red'] +031 MOVE_FORWARD MOVED from=(6, 2) to=(7, 2) facing=SOUTH inv=['red'] +032 MOVE_FORWARD MOVED from=(7, 2) to=(8, 2) facing=SOUTH inv=['red'] +033 MOVE_FORWARD MOVED from=(8, 2) to=(9, 2) facing=SOUTH inv=['red'] +034 MOVE_FORWARD MOVED from=(9, 2) to=(10, 2) facing=SOUTH inv=['red'] +035 MOVE_FORWARD MOVED from=(10, 2) to=(11, 2) facing=SOUTH inv=['red'] +036 MOVE_FORWARD MOVED from=(11, 2) to=(12, 2) facing=SOUTH inv=['red'] +037 MOVE_FORWARD MOVED from=(12, 2) to=(13, 2) facing=SOUTH inv=['red'] +038 MOVE_FORWARD DONE from=(13, 2) to=(14, 2) facing=SOUTH inv=['red'] \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_000_reset.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_000_reset.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b8acb17dac6708377bdbac1ede4849471ecbca GIT binary patch literal 19491 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_002_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_002_TURN_RIGHT.png new file mode 100644 index 0000000000000000000000000000000000000000..94d8777ac94b9e56a2611504d3492c0c92a0f1ed GIT binary patch literal 19514 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

    *)_ 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 z zu^KeS7I#iJ_Bsf-2f%es82MLc2|t1cCI3u_7!*k99{Vww?8z;bhTg)J&QB@{qVMfK zg7i&(fy1PfpL)07>wbE!E=>R`iu z>HQ?p@#_f*4TFPs@{b<(@*)+T8Ml8=K}w;>F-2W(-V8H}OuKFa_6Ek*5y1#Bc>LU6 zuViv0A3Yu0So-H9pBh=`TW=eH7fBQxu(7cT3JN-lGI-YYq-fF+1r)uhso+9v*;vW` z5OATBtv_Gr-wgRb_jJ|Y4PE|ftv}Bv#|9AN<0&s+zC40ydJ@oPGG2ews9(P$bq^{y zIGExhS#Y7wd$#-mhRkYw#7;S_OZ`{NIxXP@!p@@5=~r&|ohs;R@iz?>o~RhEzVnN| zBeM47Us$qSEg)dVPLn{b<$&4rwx>s_uC8v6uC8lUr*X-)LoMXRvNEJDoT5Hp$pG#> z%E6K0nG(5L%88vjbMx}@BJPxWwkiV$1M-{u=1#>y2e+2K2}^y*qAfNqUopIiY70wE z9!5IEO785<>jmsR%yz~VdA=Xs1ME@x<253YXpcJ}7#^(~WaGt|GLe@PEI6$JqXx7T zFq0+R2tc3z-PH5{YYy^Xfu{T`_W-}7hs=9XRaJEYXo<0LW2J8NUqv6Nw2Mu<;6cRZ zMD1(RwjuDivNA1inz$hAe-##WX#<&Y%0QakT`-zLx1L^k#{(F@eE*IIdkH-@`_1W1 zw&u?7nRvrfuWua+{ZPb#7s_~JFh<47@?T?Nb8?8ccW}tc%BrL9EF~1f>?Z0w`UBH( z`~5uU)Z^X_va;6Om19@l7_l`a$I8Vev#iq_yz%43{f#O{XwC7EdO7QE8}*lBJ47G| z^I-593}4aTWsMm+fhg^zefgXzJV794-q|>F70lqvhW>j7|6hpLpwSdT2!pw+Scx!<^6{(nS*KF|OF literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_005_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_005_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..27156ee27109a746d5e8315b8c5d0ac971a14398 GIT binary patch literal 19438 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

    HFanY%61h&J-Gav+xZ;0s44{D}^F$HnXB zhzBZ2H?LGSH0$Cg9nYSr$sN7WUGq)a9)QYQlO(DW^FR^v_6RtMM+iPuZsbRjFu|nR zpszp8mNsvkkkBHtl#OaFxj9u`*rc*Xh2#cBtX-ZoG>0Lb<_(%!;dF$Y~vP z9w#!Mh;Io9IuGcrlF*AmlR%mqabkz)f^o!~WkT${ZQdx3c)h_NCCsEm_n6DX-U|ph zWY0V}1G{`KmBO#^S_Qp5C|=FzXj4|c9p>bOebIo=VeaYV&Pf_}3-pZy$g@s7Dla#a zxv3K7>UxHv$Qi=(?vEv0p}?Re^do`WdRqHG&H&gX5 z?78qX;g%tE5G3(VU#r`cdmWjvJYfkY}Ccbe?NbSz`2>v{{ zEpW&3mQw0=Lsb>Yo9w1_=~9>L=sXzDG-zpwh%*^&OSfh%fD%l1c`dBej=kB6_R308 zQn=H+5UwzIwvN+eSa`?5F1ayp5pFD`y~ib#W(R-2HX;5EV({AW*rQ$yQzO5z+ku=& z?ENuI zGJI{v(nS|$X&jco-sz)59nVRK2Q8YoQ6L>liL-SJmV`zhS=UaUV`i~y)acc;x(c=x z@eMuCxO#MI39T61obc{cjXa^s9DP0uPK(vrF=8MAxot=gJ1o)+zVg?F3Yoqbw}AGsZ3W9-tO7SFcLhYU%-+8jE6kZR1EC+>^2E<66fH z7=l(E<}r$(7)aCJaL2OYIiwYkrWH7Yjk}#$$1Q`;7+qxvP&`Vg+H*TIcUSV1hykOK zEk&**-5J1aXqA9+M9TuK=i$}}*k^uefl{}N&fzgELRQ25deryLCW|)jvyIcMov=W? zTBCMiiY*0sdV@Ty*2Cu}pF{ zOhsS}jDkAg+Yxt5I-6qv+O9$Jp~W$IwVbCdx6+oI!U26oYbc_e3g0*iQlb9y)0;7t zj+-r5cFisU&u`kfd~9edzBE(Ie5*dyY<90{BSXadh1Ti~po9$;LJ$df6Swz|Ok=2V z$WWIpMMQgFi_l4{?CAWWIs@;jiCpS{DbwT5DZ{oC)<30{0$`Kk5b8N0a7#kD+E^m-GN!dydzem z8k++ho$9YquZy!&CfWdQb5-nrH%b`UZIg$-k^T%+{DTef|As>86GI}FbVE*aWoOf9 zDVL<0_O-~wa}$#)ylLtvu7LRFHYPnz5jqCkTI)X69u_q_OW3IYsMeP>b{=N9)3J7H zl2eLsl*g_k8|H{}yL$i%(`>4_$j)hj3eV>!@c4xobJ{?dWm@sf3drLNum$lpr7c=5 zT|YdTtLTtB&5t#;jLU=dhTSe-3q;l+eLmop9AsY3;}-8EUvlJWBW0n3GyoI&o)8TQ zNCJNEaHpgpxZukHIlgk9teTXE<7Ny|Lz%~B6BWJh7~WP%X~0NADd4!Az!&QBX$S_d zla{r?J_Cnh%`k~rhy6LERgh*^jp^6*N>*`~`9(rl(gV(tZ=!Vw(Wr^kLcs@qebu}MS+hwCbLOh__U7k<{t}*DC_fw9Q?pQWSW@a zY4tMTa$Ts=yc@sC@TIao%R5{?A!e~&8PO16x^;^bfZi7$te6M*PI=IXDHMiJdEM~c z^XLuWJN4L7pYsHb-{7J)V*{vi|)*n=LWNabr6f~x%9 zQS}3FE$BKDi)Lch$sqRCP@=!yvGYJzx|XLst{kRoRI_ir;q;4&@kgL2@^!lhJ_?&nVmZxo(w{_MFw^~PzHui1TrE;c9c4c#9;d=0E_ zRJUDF`s~>|;ekV==M{amN++B#V#UTI|1VsUU&@V{nK)pJ z%Z;8sKAO7|qnGKf2taqa)dHJ*DsI3OtDCwm0ilxke_2Wu%LM^a@^5JcyR%n_Mlg=Q Vd-l`tQ}7h%xar9wh2J~f_%DsVCocd1 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_006_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_006_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7557d0a68a0e6d783b459b40efd794719f9360 GIT binary patch literal 19433 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 IcDVL`07xMejQ{`u literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_007_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_007_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..de19ae948cf01ffa6f99f82ddfaff392a2d465e5 GIT binary patch literal 19400 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_008_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_008_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6dbd2745af3fb88199e4f1a55e739b0467613a GIT binary patch literal 19133 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 Yii+mDt~nZl>mlFS9NC}ujpwER2XND|%m4rY literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_009_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_009_TURN_RIGHT.png new file mode 100644 index 0000000000000000000000000000000000000000..71c9b9df615925a0c4b5674d9d5ddda36b0d3c47 GIT binary patch literal 19409 zcmeHvcU)81w*Ns?oIzwz0jU{vtdxLMk>Wf=#)4RhfD}QRbm@=~)KR2n92JnNFoKGZ z2_>Niq(o@}kx&8&1gQaHD1i`2emgq1zjyDQ+unV@&;3J#n6ppWYp=ETx15->XUrwO zl>ZWfAc+&-9Xk&}qID3oL1xoN@SCC>Tmkqn2sFDKc)`~-Fy!hD7s%pjpr4m-pqGc! z*TF6~0z7ACq@H*R|b}-5pe&1OKK#=TK;U5vV ztaspCr;JV<`}SgJ`pn=Lq1QG%o?u~r46NunmAdhoY~5GxU%#tASoXF3SLt$#xJHTO zIO?0R{e|e`Ztov67pKaeBt|jR+n?yihFm;8Iu&%(_1G=(uA5C?JH6g@$~2@)+}dCf z-F|aHT1>n2ry?YaXBhU<;6z3`e=7ar+KuZkF6MV%2Um4;owru?I`Bis!CgBbC`$X7 z2Ka}^JxB2OyRX2bfPUI}O9XB+(TQN z4IwYQY#28YaBtXg`rNWoYc@isGd_)$koeeM1RBEF)*!H@oApRr~|WuQHltZG#<^5g9}UVneTle_x_5xJIR>l0HHXR%D1gMH#YbvHeCw!*@IU?xK6_?z%e> ztZKcnG)7p5*?^456~k$+G&Z!6gB=VT&!A?Jc|6HGHB&G1o4XiSM;^?FeUp=uGdk%T zIiKdS0)vh+^|yk@!mczwjCL?5-9|4dDJaBob3^xxKd?0BUNuMUv#4>T_*BlwkVBia zlsTnTUm}WkI`(p835IcX><**+HKfrK;|QgQ?ZwQ=z&Be}?dbjK?f%HOr|i$yL{V6& zNS#T>rf@dp`~@x)RelD(($wDVu&=ku6p>cf@|YyEFvJXuf?A8a}M!A zUbNzk?_SxIPDwd@_v&m_^?5WJeX2(mas>ewWv(fg_<)7u@r;-2B%9v6dGqQq{X-{> zvB^)W^nv;Ju*v;?Peb?2tZ}GVLqU^XjXzJ^(I}O>ob3dC*nLZ6=v?}Z<^xo^{Dg2R zaP7b znWhvnpc&lfk{n9s(PUX@0T0H$+N9+%_nh^iKFv~p`1@Ye(jaV+hcV$VFHa$eHZ?_@ zZiE9^3P0{S)x5ODzQq09!otGCZ|zjEp>K4c)*z7Gl+FCNFH-6J;MEyA-#hGKX>oD! z=DKZ`hMMZc)w$3XTiPKNj6MAF&yGAIZ02bPky%bg`3wYhS&Vkh<|G;%Oj5U#XZBz* zcf@6r?h8_Ts`jc^FT4w7+R_c$JSCwn?D@q=F_2@w8UF51(r%|_mkI>UpJ3DK8qL*W zWqVT-;6)pt`TJn1_V$-}To?e+tK+Z{a+knvkr3wN%x!-*Eq8XYEe}3`cn5!$k)cOtI!v|03Ycsy?gD?H`QEKwb=n{MdTTPpY=Mx;jC1SH@ct z#gw$ieH2$1FR#3h=BmegUJm{x{3vZ68gevEUh;GQM-+}PEDKf4lc%| zrg?w*uvHKjNJNJh{;(d@;ORV_=`4_M zHMO<1s}aqHU0q$^IjcEp9?W-$jZQ9Qmn2YuG^?x*Ca7aic(du?x zU0n)p(_O2B>y~e^Py-!#6Y<*|WKAmP+{QLQ5V2m|8T3BCvg`TJ0sqKY{M)8x$rwrT3>>UQNH$_oq*PAb;Y3n(sVJHt7r1wQzw5_eIQMo{Bg zB8d6t2=l>YJOiWIK zFMy<48tdKG>g8FChIL;ml~YnmIIg|D&J0@O7#u>x-MlFhkl)$-NTuZm=G4^7#q1Z} zw5sxSswPR%*`(mAKv7;kwmTnT$$F$k-i~>{pYP}BGv;cWmNA{<3O?3&?ja!ro~OL`Mr^Tsmt?GjTCqcK#jTQ~i(gRm^4W=W!K)QKl zWo6JMiH%}nIZ}V2f%yldg8#)?`g=Fi|AfH#XI|39m)+M(Y2sMx;=KnSoeb!4&rDM! zls^VB6FmEOq|=zr&dwe3@`vyTrY0w2@OWLSO@f!_qPOSB$cUz);T6)e`9p-2aSDy5 zY-eX@QFDB3iB-zr)V8*^;dLXHIvJALKIWc8qmE0Z2f|-UNtk`^ZY2ti>WYerx(J(w zaIjX|Cs-`Z?5xjkMsJiLtaT08)Uog@k=Sz9Ri6S!+kCXo>^P-;=G&S71n)l_I{M#= z_Jbg5ZCH1DURiH@bn;obr#4x7Br_%D9u9|lZ2#zR4rpWt+PyqWaRuFk0_lKabgHe& z@}O1a+e%d*$yV=*KFU;98n3)GAmS_?PwDBAU7UK(`%!Xm(=SPN>&(ndXLq-YmriRd z-s%X|2BoF4E;KZ>Eb-KMH|Tvq7>`+z23CFY6R5XWgpI)sTQJrUf>^1-?{x(n-I8^E zn>TO%yd7in4{K|0&qrW0Coes|u)^cDK)QtfamwJ}OmN9YA5*5Yk1OS%k2!OM^CTF+ zMxC3;U;G*z@2{PV&s)}`TbPuBIDi@HQVQ)9()4^2!B%r(dOE%_PS)Jl*HGu!WF! zBQo$+K&RTBR z=Y*~1-0&8WkOI)D_B7K$5T5SeB(mjc36k+!gWlMZG^? zHLaSugguD)Qr0{}WJ*|3pSM&m(G-NxRdcin0dbJMvc`#J8IM{rEQ2po-p9-mz5G{O z9!SOz5Bp_Z?xn~GRR3iLr&$E6-As_W$jbi8UeT8p+`psqzAq`Ap|K)Ke&m`-v;sXWUnupM;&>Y zUl=L z&I*~}`=5;y4Sh$8lWiPNH2fKv639;fa0*@>c$^}d5+Q`dFBG}7B+Yd{2Ax*=T(8~8 zvR!a`=UZubZICNDbClauH3qcRF}-B$Sb2+jWdj%i zAdK|JarE4StcP^5+Udm*^iqg_mxbOV`02&M+nj{Hp|691HJvM+fdiBRQ|ix5i@ zJ*J^iP*}!@)t`H_dt@R9lPHN^t{)|`YIw7As6BC?#uUb05*@Ls5Y^{4Ki1}7w?X#d zxWLW9l8YSbdlITMC0Wo9U^@`@2O@b?di%mbkz%m+avK2(UByoDRmCjWN6eI7s5s3= zk(5HNgq1VqpjKtUf~8=)f}T%23ao|)!QSolPmV~M7$jwe+XOC5(>rb?UhY&fe|6c4 z7K{X-xKDG1$b9mqjj4rY+vc)mtM?nv-N(E~_Az#LHjdh_GGxWCMpx^UEq%-4@1_$lpJZq+lL+FQtr>F0M z?sd66q()1PDb^~vYlr(w#^LHkMUlvF8gIlB7?7i@MU8#EKc;V|RiL{2%G?oUg75S) zk-sxIlv(Lq7b(_|oo85GIKI)ub14IcuYoYvf~&Ft!mO;ml&e?$;zf%}CJfo8({t?E z3CU{FC&3S}GiR&zbOv57T6s7Zh+IzUU4DVS*O|5UQ{m_^{mh4Nl42RH%CSo@i(&5xlzZ$**2@cbAha$fIr<>iqO{geZE+>G>zOx1=VGuKP$*v*ip?cX=yP zWvDN^a}!=Uvrx`;BB)VryD26fuVe+HaVa6u$g5f;G7ALq*uC9}DHmEc3}L8lStzH; zchA_h4abB9<-&3N$G4=$Gcayopz^}^b96h)h~v`>on$i-ji+5Q5OKVT!4W&&G7nHx zzY7%U6!bBT4sAGcSbY5b4Uy#$0Ddt#OeNLG0w>gnWta!mKd*NPuTf1BHds!bb{@;D*@Moj6ux5Io|> zn&GWY%cjB$1ZdD%BG+zx1%JBj{ z1Z|p=-s|TOR`JA55RIxCd5X3i2=TRRsSfL+lrb_FM`33WSo^^agLU(1U>0UYVarDi zSz%;PcR69jTV10IP+gQSqE-qn<93}nJo*rDPUrx0(;VcGN#VUIyf#iFd9 z9b@p~T2R~;2lZsp+G)SB$8Je^^oo(pGPe(P2**Mao_g20%S`q-@5~WWB5UpPbokp4 zXRbqy+Dm6=-0*Hz!t;@}djv14jDuVa^D6U;kM1CitHnmCWx`hLVSK-4a@)Zg7M(vs zZ*KX*F{YMQ^I0eCPe^#1!jp}=^Dv?N^dF-rXNm3wQdQ5dww7xl3)odWQjC}v)-Uh zCR)g-fUZ>nzAc5W_{GLtJN8%OjEOoiljXYT!NcV%Q~52s8ym-~CAQX1hYa|W8m-+j zE@h&-f^OqHkjUdbZh=m_+WB0#bCpekkN~D3lvB2XF0S^Ww7G3uv=SX3^bKGtS1+B` zUQRlZ5X$PeWvuWB4edu*isKm}wDPW~Bd2-@B>Luofuh~7&HS>C=x-MU z%&3hL;|N_U%3n%oToQJGsTtu@FN8c(^0-MrixOM5r!WDmOI&Y>zf0iC;Q-k>!SjL!LWG|>h$_TWP zZd_IX*+`GJSQui_LS8qfC+uVg?KwrsjTrRm$OMxa7nI{XDmC0=U#Uy+85nr@f*(Fl z37v;;95F*+4>-g#0o#n^wyy)32=6KJJWkmA?2Lv*hAu2Ek&e*ViE{-XYr;rIqvxpI zf=Ihn7L}z=Z+Y1F9yz-`~ilF!Ca}X5T z@%oPVh!HEyQn=dUmTH!&L34oI9f@Q$%{fPJP{Li0e&+vXPRwM>to_y&gMMdF7ve2W zH;l1kE=LH)%6#f`=SIevdW}Xo&Q!W5|1lZqnhxMbf508f>vd=d@3~7cxc4fXELbJ` zQ@sg|dB%$`%09jpA4xnidkcNC9$__R(Tt0Hpemjh0j$ zs>?&~EeJX1GEToI0X^VXFM$Ky;|#shy)%1aW=0KWWyJNLcp9CQCFZUxjI0U)~q}571okD{BAC zOZiSfQ!vT}!K%ukMX*vVw9HvlA_S);fo=okL|o&< z^}YTB!jOpBA|cT@)t&DaerfC>XvrpKXDOFH!Oh1*&-@9q`LDq7Zh9=j1#@urOGNcS zupx%AnS_BGr_zJ_J=kw8Bj4$WfS_Qe@L?j?O8rNgLWjj2cI@80n+xrnjqt)4==%C*%abncm+_24@|70`7(FC#d-w{wV|Fhn={a=N@0 zf=X^}+GrE5y?kH)OR%!?K>^-lejD7lU`~q2sTwyTp9Aa0=JICEf%{qWSZUM(WGrz6!sF{NnEIJ5ECq>R=%KkNqDkBA14 z+NFgx-2w(hB~7`{U_^^lXzG(8^g~~O)4aV8PWJc9hW_%h`ey={!bJ0T-b2p$0;~K* z`_Q&jopUcPrdA%GANWw#_KDxY02tBBw>S;;e&7?^lktZu-b)m9mil|R(VZ*)&oqNT zWR6+w*2>3}ck2~@20&j1OdVbXdWDeC)&fp>X=!P>Qo&8S=c1;bmggv5*VtGYaGq+s z$Md6{qloU@G9u-F0_fv@u&oYXJdJHme@CY~(1tbtH;|)$MN0TvRc!y~!|}h7?mYr1 zXTj2IPs*#9lh57_=%kMCC3*V@$-)fYctgXn_=JQ{6(b`fV{}>=VbX*RK9afZ-tMT@ zwpN?Q8F$ox@_RzT;^LxNwZT-)2h*L1&-LfK_{7Afj*cI27UwK2ElWyE`zY71+2;G& z{)R+S&qyxsHqj&GlnU&%iu)gbhB%Md2q8|DUjfORK~$5r0%?GhvX)YL%43u-@ue%{ zW05{H;L3db{50f;4+CK8@6j**|2Xr1QMCE*dDF+A*%VkYt3RgdcxIn}p&gPiR_-+L zJ67IJ$jVb6dl%?}Ai$S8`EV=)JU0-j*Y(1Z8)pFKr$@C}3kWbF1p7!%Q7J1cE7|r+ zK@M|I6`nFqI!_%xemuLn+6ZVz;tTEqfzx$25V5Y_pg{t|^l@~77RuDrw19ha{wN4) zuK7W&PaNi;If+Da2I#$zF=}f=4fby*WF@%ozZD0~&dhkbZzz)6u|q>os1Z0X9BGkb z)i40sB-@pM@ggB|)n59k4GS*9P)rDbZnC>1RHV3nKmO;%w%Q9*9U5u$BVH{@YMNO< zui6{oybd~g`x$MOP*1u}uQwGx?R7;UMzmK_ikYIQ z{r3Bg3|f%pTvwLiR1d6dPE5)<=ePfLZDa#1)_ZAS(ZSfn7TNl2p4Wt%%Q`42^uGoiwXO{qilD17<@b)wo$jmiP0Zr3szJEcs*VhI{MiKlyDE0T;ZE|4PXu#cU~$1? z>-=88!%;sMG99k`W1_*4BQ1b^7RnX(@!Zz}RQiv?PTTq0b^wY_Yfk1wqx7ZU+doZx zBFu#KKnsTW`fB#Op#0<33N@WIMwy!N20P29rY0L<5om93zX94Vq3ZUn zv5jCLR<}d!0%AaB;ZORiPy71+KjLyCWl|a%6377={mq*uOKsK=e`Qyxt6nyAYx%Wo%~uM#UZL+GoF9k3A9PCb;O_)+hZEFn}NcWUEqsS5fW4l zLPy9wV*ri&Jt1u+8JS(Mb4L1Z@vMR6Em z7Z6a6e826?eoGPP5MZFYrm_4fEQ1jTkJN}VS)RVkr-$3>&bJRHnUVAC%Z$FaG-Mwm zOKpVC3%@*JZnAO?IV1|(Pi8I7KFH=B!1!{jjs#y(}{0l zN%N_AVYsf6q~OM13r|)mCUX!8>Wl%~eIk%t47gRl`8GWgxQ@=b)l8QD&i-VzROtZP z+O)HCUE!&gB`IUz|8Wfu0_7cGKc{b7M$SDLmFjtBZlYe1RpndX5^-|rCi||Dz;Mfz zDnz|+RteJ+bAXIyY|GkDuiOEBy$#IAHA%ydN0DP%SqI205PBBYW9M2pafq2<foUU(ipl7aj#EF5??8iBVdwIUIMiXU&<=$_38tL?cGU=bGC z*NO35@v`hnaS(Q;+IS^zkoDsg=eo= zq}YzkRe2zL0HN2OaX@J1;_8sTDz;Hk0PECk632eH9>Sx*Bq+bCD9$0YQpQv1q~*|V9npGPUt zsK}WlYIE110pfl2^wcpOe4%t5bkrEk(c8?`5Brky6!>IE)0XlOuM1(}LyT%=4wtdt z@9JRh8em7ex`{C{7Q1ms?wtO_liTt(mcXTT48%;I!)l|$!#pN2#5o>|6&QsQiF^}h z+n`bOR($ zdEsKUL^8IujBiAkH;vTzb_?ulh;rpe_`~=Xr{wlg_M~WgJlbRd-B_u-^m<3y4h*q; zl#z08g%%gOz>)A5V0_fcS&=J~L0A}=nQy?%yb8Vg3NTYShQ!%?;=LH0cMzNz5W@eu zy=Jo5zxysgzLTgUMG$l}Bb*7P@g%Im?$3)`F1w)VUnFSlN1;rO~WM<78vrbgt?)$Wh(@n;nkwpeBCP zZX#HnTeZs)yyYx?$T-m`H91UN^SMac#}Eqa4Vl*D)X7WhAos(dv|Ge>AnU~Kzrq#B z6KZ%7nwkd2ImI>1VgyO__R{YtL9myqJqd%Jl>1>= zfeA6b(s=&C46_8#E3I$BK_b@%!zaW-H51u!**Q78Dd?r9vKcgrIJ&cn-JIsUj1}lO zWy@nxGoB-N;K-||(8f@$*RES4xqT=0Wo&m?d6(RbNT^v-@N`S-HBW(lWMDY}P={#Fx4z*)RjE z*)_`>JIZAV4XbS68dLA5Qu9W~MW9yc#Py;j8s8Iv6+K7DSXc)@SIgenj}sTRX(r(mp2asPw$Bz~MAKLfFd*opU(_ZP*AX>K1U^ zmR$D#W?997dy=a-s6{r^nys0cEgQ)}H2IpaVYvDj9%*hH2M*gih#O&;l%>arHI3X% zn@!}Q4Yx1ZuViTkkFSl6$K?kbs@_p5^QJA@ ze(TFC4UhPRM*Otx6w-)kzqjkmmRP8J5768{)%$P#Y{RTe_q5|*>UuuBY;XQv` zdds_jU!H)$kUoC&dw{*qMMXHe3jHP3(>aUeHWa>pyHWQa(F->ZMF9ba5ug>_067ix zDg^I>L~md)bp5QH_L00!G}_O1AJTn4kelY+HemA>z-JO$wjAGWxbM%ZiF2MJqBp)N z49%)gv&AtV^4qR$GwFMa&?$T}7aMo8RxjUr`>zpK%0WvOM}gaiO{^yTG$9 zJ$<}^f-B=UShfq{uhU0B0{+GfB6kBq_|5BoBRmD_Kq@`r=wFRCWqdCk-SGOP`IXAa zv9g8CeCK++T9X9y)81PmV~_7V+Q4S7*>5usTJjML;EpIN!Usotm*X7lzaqpB=;Sa# zd-edpfR34Ai$0`ekt+pOFb>zwAej`wF>-05h(nILpzWJ)oyy3%oN0CN5s>BFW9(B6 zyE091C&<}oK~azQ2~U(Es~XWjwmi;m7q76bIu5$FXt3zq?jD~F1HU#l3|~H1vjuRZ z!e7=PdoayibkrF?{~GQC0|pw=6pK@(bbL9W+! zWHTCZK+hYtgkA@wV8Mn=6gVb?o5{^0(AcKG0K@*C!hqZS{Is3sY)nkd4h01*;E(`* zAA%Ou#(QswcYs#$q^r=f@Oj~ljs3y8`djqr3#chJjo zjB;|8N%;?t^EbbI<6n<_{WWXrzbRgSz~iKYmj?KcBbf}G$+?{9x6iHXiDdzVrH%m+I@`PZ&G zr)BSo;_-NG`DbhiKBd*47|LJh%9(LToCaJvT4zkw7KA3V(Uzp9ohlJ-;Xz~ZOv;v~ zyF9%{@Tv?MAb%e|jcrfw=nFTakbEIEVLc_a5`7Ut+XE%rd9w`{O5RodaLka z^Jm9#40s*P#MIOwyu9?cA)`7bS_Ju^z`$dm1uM7k7kGIBlQHGZz%Nj;&SwMjMMSr2 zV4${q=h^kLA_G+Bn=5Lc{Po9y%YXacpx&ymfWrjm#KTRI24);G@FkTC4a-6ai%`j8 z~d>uYq)_cGeqH{jcwPLS!hzBfG4 zzMgIlpZh!A^l?LbsVS+dC}}Hv?&|A%!$((H8TFSll+ZU_lxwX0TEQrv-Z*RN13?nI z;eSFd8E?V8&WC<|`s9_sM>9j820q&yHZB1aBz>_cW z!7|=Ql_c=ymRyTsr7KhiqFw&^y(OFX1Qcv8xXpgiH8xrDIsWX8Ct~|{95}2{xI^Xp zerv!ISNFO`X^ajuGaf zVD8Y*U)&agptGkofxmr!4_=7RcZ%+Spc9e@_JNbsPpg2F+#>D4|8GD0dly7>#py7T zvacMQ&kG=WWLg|DV3)VWPZhQqaJrT>Ap6M=qxm*3fmc8tUKnc{jS$`yNn9CdDuW&i zfjcrHN<4ZKaY_foNls7$5jFYIdA_n`dt!a_hTChQDtT0x{7`vpTgwo#L&I;u*Qqgg0t=b27 z8LW<6tMGMGu&dHG$6M`1hmK0gEpvqI^LE!j%~IB-UW#(ZxfQ)crEu=3Tw;gT@#DJ< zx$i_qtqC3iQt}QJuQ%cFa88;pVI*|j`ml5mJs*{Cqx0co*3iuqy z(Yjbw1VXwkgtpk2PiE?~9@Ny-B$?Uq7ZQy_LPEIfz2rDnC{qu+u5V57e2^bHCO@_& zSQ+M150cDnGFNRx+tDFZDm{_Rbz0-4YNDc+r+Vw7kz9J<$gQo7myN#@N)iF@W3i6N zrb#8*1-m^8U1;d&?!FrC#Uirflrd{f1SetLz3bzd1Q6d|c0+HUFTOolSUdwn7+F^eMi8BM@vCyJEPR#fKb-PzGW`hvAKWkL4b zI}uEolRz0tQaZ3NB52gjEW`>iW!bi#)~0MzrgB01-FFMzl3qKh#pN$Ls15uyYxj5;}@`Qo`GM(~bF;Obg=VRVvxPUM9d3W57Zi?pbe?&sQ*uz8{NDZNu%Cl9D&W zfZ3RK3Lwa;{s;JV3?mxXsJgnc>y@n4)xc&gio8xnApHSWd$O{HAkjP!#vU5&Zwp^J zNb;wmN>LeKi#F-4eGB#BQGQ{QaP=~w;yYaADckSTJlUOJ~#5o{B=uJGQIl|az4reK_6!k zI#2D=`O-Y!j+d?crTJGhyXRyw`PtNVNX=;Dp4;nDtO5>|&u0k?&KMiJv~USBGm3GL z#Kp>)$T^(MW~Dv(KNE+;Iq}TlrA#dpMkrS%8LND3%LxPc_9H((yfDD;IpLD#XTD}v zez%fE(xc7C1=IqgO}|#)K*>!WesML&p(RCQZ0)j{ehK2XE#l|OK!dqBJB8^{IYD61 z`W-p$=Wzz>&*|I)ItiJy$uU9IvwE2Y6DkpPUqTNgTniULd{7E}`VzYAK$-%(U*s+e;gIL7z1SMNZ_D}#) z!KUnG47ZoGQsO=FEV0gdc)iEXE(A&nkAK0|1FrP*PmTYJ+l`G&wiAMq%%a%4lnmT2 zR#o?ShW?-kC1JrPRquH7<}BEHG8)J&kn7I;T{~e9oi6s9j=H1W`pca=cAR!`aars+ ze5<3Q19)bJvooQ@@(th3i%{C%V&LvYDA_pRk85g*0|T6EK7B*9nn)zZDjY~dVYF4W z)Qa#e1}kPhMZ^}bm5V;$H~8QY58Tl`CDyxkFrD8ui2Sdk&VMfWpTy?hS|!{iym`*D zUEolK-^J%wQYz0Z4idamsa-@6I-^0@Fr)e%AI4ji9BV}^HYeM~>eT#K`x)$6Utgaj zg&H3;tlC!I+S+}?}_K7XS8&%0ecJc=@UUSi^6W8ql5WOsDY#LUbr z28&HiE${DfKFY~X1_yz`B;N`Z#qo%B{pxl!G&?hca@}0Gf8RcpQe8z`l6tU60nxO3 zq~wljq4$>+6&2H28q*m@P`+&?f!3n_jE=qX`t@suGcaw-Mgw3={nje~J~`HZ?(p}mJ>I>< z3eSEu)q{^d_w4PUMhcS-*_$Nrw?R_Vn^t?}6EczyJ2u4U0- zI9qL5nru$y`P{sDysp09CHN}iCt%7q{Wq+szu^~a5=T82$;>Mo?&$56Sf0%0{3vqY z#`~G79}b6Om}earhYiZpOT+!6yE5 zA5BY38=L+s%TOFRA!lOiO~&QtD^GS`WFL~-RZc(WI0>@97W^4!b2*6_xIO`jn{6rWO&BaWe=p}>W;j)MxYRE=td^7L3nc~AzYGZ;O83NP*UqS}g=Ze?f= zfzR7oc!LAw`q^mfsi~>xV85=ghWqI6qU2+rOUcN@uB@z#Pfi{uNCNkllZL{RlJ^QB zfOD;Xwg{Z-g9i^j^~rJc0z=l#oD6GjX|^iIgR#=6cLri(V~q|)IcJn+Q&k0Jkp7EIiQD4tWxb(@gs+O9^-csDM_rKOy$CF?v z@$>sTr8H|bdTqp}dh@X$Q=yEHyZZY3*U>4_xYAOsU54DbK7f|E1Z&(10$2y6qNs_c zNlVxTerx03@8rbgPg;=IiHZF_ZTe074EU>~8wi^Mk~CN%tR4?A$;Z#b`HLC#LCiFX z49*~vPU6gl)b^$qU%x0_=J~a+@_6KCRQ$e-+`7yM_yYc|7VptFjItR5wGo>iHsj$9 zvY)ypB!5ABrnu8#d9pk2(Bq>p5^3rUYV~>~mxBDs7*iTVryI>@VTTptY|0hZ6O=^~TS?2wRD9lr23laE#&-PNvArc)!0eG**AqY(Snrn$8(r)Ebse zrIU0? zH{RFGBmHf4#vne*=so{kYtyLM{ro7FY?!Mw!NJmVuuPRd-Nw&F9J7)3+md}BUQ8wS zppO}X)8D2f#~-wNUW=SA4G5i@zz>0o*JNQIz~GEdI%Kg(^o#i@NoAguOcc)fuP zwT%6xwBQ_%UD?U-D9)7ab}}K;1@o`v_$uZKZ&q<^o4ji?+zW1AM4(iIr#E;>YGdUDIE=am8<=%+Ux+D zbwTHlre~iDZc4a$C;aY@2C*xLWwdC4j%%;3xX2WKgJ5GYkZCEVuqP2C^(tM>UwOCvx%yT+)CF|+ik}^h<0UB%TkkuNuPgXV#9ln^_ zSr}f;g(nthl86is3JPu>HLq=K-E5j+UN6RuP2)2SYokg@^5WA0ClrF$izb7;=6u+F zW1>^r=UkoZ2`~B7Gf#V)w-bY zXcIBOlPfy4bB_Aq$pJ@G`}W!S(VB*aGVkj?mk*cBxz*RU%B@}Tm0fzjFl^fv>Oalx zXggCcw&Lbm9)OLjM~TG6GerQ4l9?;7B7irhf2d0VUU8THQu_k8ZC1*S+seG4S0ANC zR67iecQ&XVSu3Ng^Mxk=_134TwS{Z^L=3gPFn?&ZeSL;3-~(o7Xs+Uu#fQMbjHu!* zix{Fm^hX+*36#gI59rU8FFH&cVs>{craCs2lEtk_oR({IKhwth0>~AKL==yJSFXmv ztQI2kwTNLAf_U?FUAE?G)yPWyjCp#TfX>9Oa%*1;Xe-OX-1>X5*lWlLsvLA1w;{bb$mlCJ0WX(@Cv4usVB>4zbCT0N(NKU5NgK)h9%<99qP%mrMByS zvY7heS#8RXU(lWSd4bCe_X|1I89ZmGgq`fc7ffHxI>US@5__(fKCa6T>hPQPaiFhQ zJ8~tozk&;F-Z1W7x2!bt^l;uv<>+k3eY;!bvesysxF5E+Vpq}v z9;DGY1${GgG-W}+LS2-R!^X-5p-;=OjH`mCdRE`grD3m`MaaO5z_p_+dSVd^Z}z3; z)@}9L=kDr|N?K_1W(fj~W9)pc#t0Vb`WDc`4?<`+&&41EP_|8a%sOj2Y5u{&wmIN) z+uJLI7LoNP`49y8yoNFMz@DP?y%IZky6KhmO5RJO=3T_x4mrDv;p&ryT5+}YURBQ! z0ur03JV2#N*&S9P>+A*=`;)X!v+4#l#2gNtv5zq^X&!%HclgL?Oa>ou_(gYMN3`7@ z<)DW1&c0z0mYvBVrw*@3`)kP zpk`CpWv9rA+kSWB-9vJfBHwu=GeJgF={9G&=EMO7xb@yLr zI8qO2CF^v-QcG!l2C~RtR#qmX=W7EM15tGOO5IHU1s6aZN_l84GBBvTgJ`f&@B@MU-E-i;}(WpGQ#{}Qn7QPC}PbN zOzN9biz@owjqnPPRfpGofkCHN{d#k;%WSlJ;}uM~+j;I-+m_L17I=AN%+%Lr!Iwe> zoM9}WHeZ))>4Mj#{d=$v5TLXfO=E?+tQioImAu)7?3n=!S(D$33W!HLU5Um6YLyeW z)BEk!DY}S&r9s8=N$+-|BR%qon(2Vftf-5q@aw`{grLATukLOi)n^5nRRIDp1~4zg z`R@F1jqt!W-dKIqW|@Lu%3JO0Yp3M41}Hypl9?%Zj907!$#iG!^<0eoWt&RxpSi0O zVF$h0eW%)#^8io$h>17?gUZ_LakGD#&mr{W=bs9CR-?{e#Wd6Wl%s)TErV& zpUTH70*+KbGl~{B0>$6j%Sn{nec52wwV(*+jpQJ8^LFvt6b+9?>~J`FxS*h5VG4z^ z%iQ8B1HZ$jy=}{i>Bc+S-TBjiApeJ`@xNW?U3_ky(;ci_bQUgud+QPHEc@@|7tI-z=|rmK7>9$TJlnNuc%$5QXC6G}kdm~CM^ zlo+c0{$t^xQ7V~i8P*KyjgPf)+T}LAQUXB}E;qc4TXOe$dN}tqqEHSF2kza!Z@r?% zypx_TTe?+4Qc5cNjQXA$BZ$4SqFMY&|Bf9yl2Tz{{wOD_yr1T*#mR=zdVztiy851v z1@z?)1+=wAxBZP9Dw6Nu==KNZg>a6U7EqD^$O^cCpO1=GCTYXl`Vg@(J`fNcz()DYJNVn1`(p7dZ3y z{8}n)g^-CCgP=X9Robsm7DJ*BmbZMPz>Jd5b8ReypvRxzzLj}Yw$Y|)o4Hz|1;VgQ z8$6QpXEi4}_n_~ncT3cyyl@DzK!*8UPW%))VRvAkYYIIqg8BBQ5cI})ldx&$@UUT4 z!gdH|d|gwf^2y;=nL$H-y{1jSoKXal9-R^!2wD&Yqx$;!wLBmD1o|GkZA%KHT3F;! zf}5;w`^nD2U(NtfyYmG_2`C~IJhD3M_!(WljOFwG2jjYT_vL6^55$}F012E@VFCu; z4F(45zdCo{aIkAEEo`NK>?j1O-vPIn9LHf{IS1}&)3Job7#9Ti;S(t0Hu%#l;Fj%S zSLNxt|44eEL+FUGoa=zD5Oe|r8Pnd54pHR#+eEr4I{0#nh?5eDTsCMVVS7bsD+Hx{ zy-B$9>9#)lS`CPM>@2Q>C56qSl6lraIzk|(`QAv{oV3E+h74Qo9;>HFAf@Hj+wT)F zD43T%Vz|~Y#(~I7&y<&sfdte<4_Hhk{fkx#^~hd1xwSXO4uF~%W9C;(zUV`fc{V_M zQyg>u)bAm|`P+WxpAz|;fu%!J#JLK;si&8os|Um~%2A`5T53%dc)T4^m*6#Il}?^6 zY@&Z^7Wn68@ghIxqO|hlR20g;2%BOlUs}@8(6CQV4&C4ONJLjpuZbf&i|HcZmzS4~ zh`N)c_pbx?M1KHFV4u~`O{3o4yxqBbeXp7n@I+6ZJlXJoSy@?CuN}Qg+VFTh%6vw+ zXvhYXQBujN$t5?fQ^DqX_wHQ+uX*ie$VhJe%|CqjFz-_c$^^QSOw$spSO5g5 ziYwbmqcI$++;WHkZ^A4QX$W>qI9fp%I)OW_qJn~DFlE4g z-e)|ADl|4!O>&_0N`ue!A8^aMMhsqF!N3ZO@Y-JZ>^cBD1cie_H4f-VYDf+rs z)y2=R9P{q6bU_K&1l%jC&5fGP)Hd>%BKpCz^NAIj5R_zoU|*8CV42MCHJ0AVZ;_}T zD0b^y!BuBvgjaZg-RXAZ_N@utq0XL_NL&pzQ~OUtj(D4t z{~nN~0i9ZPjO@-2KLbZ_zG`H%@@g8cM&3L(Qmg9S&O9NY**UXGSj}I3RU$9AM(8JTJTL5hcN-|FGLa`T7=7;fM&hbAE`EIjraKrD~rb*Zgs=EKN{Ow<`_x@Q$-aq|F*;fDnLX@y8^|A#Hn330kC`Ao! zh)DX&F&8des9RlKHOX&$^tQj>vbA;4J;U1DdSu0Za`0YH{a|zM)xo%)dH`%vt&m7$ zR}OCWyn*yhN_<^cY+PJjU*EMIJ9qAS*0r= zsVkvv&j$$LvG{X7y{_rmR-sq~d1(Va#gv{pOuCp3W{`k>8f1S8>T zw5TNON`KUO%&bk%@Gz2AuDQWzU0CT@XZ8#Y;d9(ow6*ue&OHLP>3^@xjlE|lBk8;t zavw#j(qTNLL`#IAK|baB{WfR2W1j?0ynUvc5fc+r`{SYW&cPZGWPf4thATYajW3ge zScVy4*A=|b*mBp!9{l`!7S}b?0^}%+oubWE7Mteiapn6#mVd%02!@>g{a$iIK=&pS z7jRX9d*|SR7Y|j}aq^B1yc&6ugsK6f0=R9r!?&Lp%^I>!6)ex{VVH|zueIuhGxU3x z!BQ)ZDE|1^h`?VblyPG7A5hwY>=Y17Z?Z2KEE&{TlNMvMy=d=)!64$F)wKV)o5PAW zl|X(I4z9#A{~&@rUFYD<_7x~vgQA3+Q~IQ=w6yfe z-Z#$n_SJ*U%>>Q!{e~_0ZlI#rkWCPt83rg#!LkWg`whndWE0D6_{z%vSL*8jXxso` z^gl$1{=2#g2p3?zt;h1pN3&GqmHSwNu%)A=rlv(5n7%HD$9Ne@jo*1L@3kFZgHP>b z{E!RpzL(Ea&-C*3?HY8y?)-rQrdsiQKGsHukp~wo%*?RKaAhW5gzYiZvb~xLpf1hzEb z*1?N8LTOdDlR1wK{qvQ9W1xq{$t;Y%vWR=lrrgW7kz(^%e%^~MTJ^~;>H9Od?~jbC zWvrP;&|kx#=eQoVNN$N(~ffT zNQ4K-jE)Mne&~289>1Dl1~Vq#Hd0Py1n?HK5`+f*s`E?*mNVxi>S!3=bRSy|xo^9_ ztraPhE#eZ?IYaa-Ekx%^yY@VUyjeMW%ItC=C9+PqH2~%Q9kqS zlj&_-H-%7oBMhUB#_8oDHbZYrHVK;)k=Jv`QQMWP=AJ-&4ij)GZ>fdJ0kb59V1u;RI!HU8!cI~U@E zX_+l`Wv?#rv+6k+OO4vD4Wpy0@tALVZ~7a|f4{I)*rXI4E2X9BCnE$otAYETrYuI} zlh!8}xP@5;1rtU3L2MUFij%%~XM!HRtH!MMnN;2j51s89FOQ2)_uJ;Nuo&)WX8sYV z+VjwDp_K6iYcCkJm48Z96kncwyVOrJEI4GK&Fv1H_mhjkkOlYdC6okq=Z#GOl(+Ne z5@9Hb2X=uNYI~!RzMe7lRa|D9|4Hi*1vliLnfR4^iQRr9USrPziLtSuOGO#HT*Qp- z$P-*{OHX&t{;Zj`M`cSRrS;zOyWBi2MdUuE5kR-#eqhaq2UZSTmeKPwZL(=2^Qhiy zVZsHyuhQtJ^z);{0)pI!nkKK6mm!v4U4u>>Zo%Zro^Sw^#!)l*w9dsTzd+wpk9??F zqvK;+DGinS@=BFie2J153Z9r+U18`tpypGuiM)5rN%Nde-QFfGJBx7j>xJuY{I)=6 zs{#6vlASa4nlOU-3->9Mt;9pY;`&RCt+D&0!pGN|fJDUjH9%yOW_bRD$zWyq6DJw+f=FZO>Gd~wBsRy`E5`I8&bwjA zFh)RpH+iijFkk!e)Dv9m@__gx^_2|txiD-wa04NaJxoTB*DCJE758{xTlbDlET^J_ zYMH%gQVC*+=;Jihly|}0u_+kD^!I=#PML-q)`BYL1v@m0ABEHzH+Bk3uy~Pe62`Z- zOV!C`hx8w`;2k?`e8v$3CGYl=TQ!Q)!BangE!|MCXsB$);;igc^+xhoHJl+1UyWc6 zSWsfRl(E8)aze3UjKu6hS0KODxOQ%Q$a{$Kt|BpvO)-==L-Hmq>H#V`X}1fiw%K@; zqh>+p)&@r=$4?J(me+@y*cP||is4|e<@7)~!oaWEZJu?X-=;nFK>5LZ!-Lh-ROOh4 zY!)%H-ix|VggcVCz&)Dv=n{Kf2x>MuuBDw*~3QOk1C88O_#0$g=>BxthI+@(DdQIQB(SP4J4v9sA&Ii$ad z4m-s`zbRX9W>#L*kQwiFMdC6>D^K1q{x@#U}tA$m$!qz)xVLd^08 zPOPy&E9clefN(Vdy`DA31aEF{+$P~-mG1xvns2xy{SN6FDTVa=mb+esL9btY$I0h9 zak;VxUE~Z$OhZZ_P7tOP2|v-%KXql zzmph~!O~~5W8xwKv{fFm)-(%q$SZu*!jaqh!}!chtbAVC0l3N2*g6%-1})Sg_qVtf z(9g~#l9rw==u`j}#A@T^bByyNkr=L_17)65zc9L@EO!`=ob@)X@9&7skHiL0gbk&m zLX>!I`^clW78WTT!*FXZXdh(P(kWQt4k*GC#K;{W#L4kG7Yg*cJMgOBEJj};zcp|!bLUvcdsGx#5Z2;hCzg-lO*w)D z(2w{DgaDCCw!)9VX0`cKEbnpH|QUZ1)`j5 zq|l&TK$C2!AOWY|2z;T628hz)Rs>H=#OVIEuM7dMAge3^dZK?vYWV{i_p8G9SDjrO zWUd?_b4!9lQa`ZF3H-tGT$p7}-6#m%BPU#ZV{|p+uLU0ou1pZvRy+92WASk|n~GY)cqnV2^(H$6l9Tn3-G0 zBYN{}^*VEoyMXQ-V^CF~@Np>6oap=ksr3?ZC+mO3cOB8}8q7>ZwG3J{gbfYs+_me> zLBx^Y>{7=)vADnGOR*di`)B~|P~qGM#O&XW zvdX9dqgF>6Khux1_C70Jy72wAYZH+kXS|}$vq;A@y@osop%d=F@X{@>S$-xc8}=A| zGfSJv&I zPa<%rAc(58}P?Vs^P1LR3T@QwPNY6^{cT*6m0r;`EE zz1txB6|hW;&F$ku*!4A(2v(L>1M=qM8y^}4@E;?1EzC_4%;%cIhaZC200&FT2d4>tz`<&FfO2))-RD7UAgRFFJR^%m9F)J3*U;U~o{jD?H?z<`z_Txv3U4rM%=vPDRNF$id+Z z?ZERgAKQUd7XiY6!ndMOAKErNJv2N$fOiPb?=JW#YhPcvSo#Er=m{D= z9*5X|9u|Z3sJ}uWPV7JQH`+2%Q22Oi3Q)T+7%PugsCVetH(sY&P!;_>&G`7iUi{F1 zT8jRl0)l^#0sDKs85=_Rds1FW6WvKg!66}|%7O)D&}6{)4nVjI0V%^CCH?+t4nQ){ z0(d@-tEv_-JQ(z4^qd0UIOA0-^LM z+^hl6vVD@0g~V>{(gWw3@hj!!`YJ`{FY!Q$wb34w_rla0ga1J5P%a+M^s={qT!kz1 zpRsaGefoNrUM|9xLCRQZoC+edalzWsRVGri<@%(`#>x~`|3IT4@ z|IoHP^+IyTu3dF8Mk>XZM5~ASTtmtAJu;XDDSA{6#=#DP=A;1J^G6_H{=aN|`#mQ8 zcPPs`P^s+(T|Nb&{XkxMm1UCO`pA1`y{2!q`mD5n-?!fUHD(*=TmBSo_%v`AsB2NF z03_Ccv0~>9toZW8i|6vQ`5z=VlE=o+J*#?~Q~|yb!WE6i=H)3l=3Er@wXord`Q%(Q zHa7MR2uP*wVYdObAjc)P8E*hW0^Y$I*3V228~a^F0h;saFYIMpbGHM`X1Eu-cOU!q z(*0kxDqp@X$OSq@Yp^?DHl(s2^q5`+gu9EJ7?l=6* zX*01eWxs?VNbJP%qvs$<3WAQ$|j=Y8y=w2(d`p`m(ET~+tM*RI~)H@x)J)ZBml4OPs|t7>oTd|JR!Hr+UG;{`#| zTj4)zuHrv{bDeZJarC?M{;89FqQOsnup>hDx7`yiYBo|oReV`r{l%6qD<1i;G5EU6 z3R_0!+^oL7y$yFPJHFvsfuZ8~v+c#}wh>XH-*0a{`=X&8^_^{d&fdQ2?@M>ve=4kg z>-g@9hLFmwK1VG~F1vhlp^A}j?WmE`mt?S%#(40454Y*mGuvD%5pZQ&T~nsSz`vnZ zTfn_TPrtdf27->8tOcL_bQgXQUyE(o3_(X^m1Mv#X&zMvzjW=M6ZreXSO3))LO;eB zEsi`tzn}9)BIHK7&aSH2XKHb@LLNPcI_n2je+pkc&PXDB1tElICll&JmL{cxrpmHB z*BlW6=W6;Q+bVazF%(*_D=+)Y`Mt*Ka$j~{PsIrqI1^Wm^~)AYo1qi{OR_<+#C&dzSLnAl1Ji8NV4 zW4`V<9VsGVpf086C@(6l8a33IK(3(A`ESnZ6-~+Vm^*QU^CGj+L58mPQ|0^}W0HR7vfA*OYmwEdZMMW2snIj^$}-BU$KbvK&fW=}tD{LI@2O$D#+pi=OdU$Z6s8tnFtfHue zYpVz%I-<`clP%2iNn*-`IXF{PpXC+&UfwHy?Zy48L1XicA3}b7mJED zEHMzqHn=Y*uJRmA;WU*TD2r>c}93bdH=SPFK_$(#53;fBAj?;CP@64XX;bLo4F7{U zllv4msTxdIiyWkGYrU7P*K{(^`VEI#xsa@qPMrJtuN`M>mTZNj?~$mG#?g$T=cH z2mWIZU3R2NqxAqonQ%k6!Xs}mn*Naw16F_HRZUb9V`iukHPjF{v|xGq@U!5x6}nF= z{EepP9S=-s;1^B>EDj=sx-kYb@Ax2UylRdN>$};gGDJEIzRXPZYPr@eT(^ps(8;~@ z>#pNV;=(zk&}Roxf2tHUQP`-;xgQ(+EetrL(M$Cm*Tyrd>?ANo^Ia$u04!sQWIUXR zg3-JWX|ptzov$ifd2%eWfhX?x%IUk=+1ZERIoKmT-)TWjzVH*x@ZUD4&saFU+=*Pd zu&@_>_3G6fx5x^9_VytQLmWD<%Fom&&=5l>?hz0xO&;U=8j*sT($UP62D1tYvi97Hgr+7Z z-9PRB(7hNb;-#U1b{{UlC8x}37j>I8H`}g$jj|sEBrym2KpVK7-!zZ>!-?nLU-)~{ z^WS<(8Rv4XvgaKAo0GN9zBr#;am=fi;+aDGg#EM=5nha@p6+%(L{&jn8Jsp=nH{A^ z*}M^4^Pte0To771Xm^*Q*kn6psx1`P#~eu|X-h6*6}?!r@zLx-F_wDx~dN+RK| zd;GMvr>AEkOKSq3k&$swQ&Y28r$N4>qeBvfLJhlkP2Fh0{re36478u0&+fclDeYL~Vt#&q+^|QxJi(`TSUX@( zn)kU`9*@j?7Ma0&MBi88KAijpy#ZCTC{}QDsDb|>p-QtaMFTzG8Xg`lBPW+KWuA0F zPhY>WJ1M2i2CeY``>`pfIEfT1<^D)wcRs%?BR^kltn(~y7eb1sU(Cn7A)Zbi za2P)|e^#T2;vz8W>Fb+h70YfG7q5SPO#SuS(JcIw^ah`4QE3R`=l>hy|79!lyWV!^ zK|54T7tOaR+Py#S2QPwa3{B5tHA}lp;Uy&{4{B>`_oW=l_V)FSFVfKQ0+86f^!zj0 zRCN+s;rhkPdym3IS*@%=+{Leeb*UxYKC5%kd zod$dU@gDPcy)b`gpZx#gJ^b~E>*7M`Y3eoJvwOF*o10s?&K0ZCiHQSOum0y~W&8R^ zqeLQ;6;oAJ_1xO5FCp0AQ-oafd$}Du!a+?cBP)BT!S#6884cXc^hr+3yMOdIeQhy@Njb}#nCok4hM6j|kI z0fd3WRRG|-9yQrwzxDT!>z&@1hMW%!26FwYvQ8ty z)RYG=L+b{@cJ(-(#a2c)E!Z2 zQ*h-u7YmepY3_tk`YERvNx&eU3O7&DuDc`cD3jpeYqNtyV1z8OiA{<@6KCtEJ;@5v zn81z{=g|+(JQNb5siE@0)ve+%@+EgiIU)ZoZkb9Tu@VfHdiv>Wk#>LDSr}jmN;@ zmfz!-Pb`eEtt^nGUpw+XIt)%mT6HxciZ>kZh$H3oU+6KrPv#H=d(A`t-q*L+{7e z^35F;WTDVg+L$c2VOp**`nb=4rj8%|t}M3k_kvGBx(Y0Q2lUYWj1bZg#4 zMPuEWpLD&$b`^xIEb=pq7c*wg4lvJN4Gn}bKQ>b>B2gRZIQwK~nl=B!F2SdypgLZ< zFo+YRf8g5KQJzDgx}cRS9zp8Du@e~-DdCKoaI2Yu&-vZ}R+`7*M=pRR2~FOv=I_&V zkX&m42+^)fj%N0OwMER<1hxW~mNiUnR4TNX>{hN?TE30qtxNOl^P$$=H&e8!x+ir+ z1zuCFZeoBJ@zXA~aO5&my1Ev-2XJarKz!)=}k}*Kz6PH@>rb6x4_$?hTp+|2tu!6X5B7Uitm0ajv-Mb4uRc-_e!h5wG9$JvZ zSJ}P3u-`nXYx%ZBbX|TRs)<&SH88Hn8LddjVx{>x?x=xifYbwDf(tj^TE{kuR6cer z&r&;gotdJfe%f5wb8nTLg+jGHEUT-aXeUU(gB6UGsfTU|bsZR7A=%1#rB4hD7x(Gc z7PbVKSJ(dXX+pFH2MAdixV5s<_%T(do-B^~!+hS4ZVKRxXAU zzD@oz(kkstdW-}^N&+wB9Sm%?7%xx1ouEp030jjL1=gnDPf^@KcZBoKtt4D5w)Sph z)wYzXmAQK=c4JlPw?kBJMY0ZBC(rg?aq{rg)r2701)|byf4@_J;E_V+?pw;-VZ(WY z{`vX4c~?ohL{TAjyD0fcgbpLvtD{6B(GG?S%?B`k53?GFeQHlzP6zjYe?@TX;>=w_ zt!2x?^(Nd@yAQIJSW@B-05r6~TvrIKUYJvbHimAW?ptip7aLvoxGh#N!FYnD_My7* z!qyQz!80GEHFYp{H>S@cl=0~>h#78F3a{6l5+q`rq(UlJ)?OZDp#+y&qmSk5extb3 zJ_No%9;6-C)~3{|tR3D8XyR&Lm5b9|19cgal9oo#?&DYN7TVi<464!q31Z%}-zo3& zEf-&YkHSRGPItw3oy*mBKc`?p+cP{#wN7Une0t?dyJTaT$9vOW;9ervuLFxRC1?<{ zV(KEL$>6|n1T|0kxXe;e(8tbrwFgueH5mIT%suHEwM0h6WKH(9&C!hyN%M|)*f zV$n~^11#MH0)jJFqDqdN-Y%!GWKc9UPA|vW5v2Ryf5zccdUcp0$ z#*Ts%K#6k)V}$|Z4C)|*n#=eVQG~_Y#{Aneo$*wo!hMT~;HQtTndjhM8KhB**xGou z|8lFOgwYx59KG<8m%XRZ1W;tooi8tlx$jgbz>hB^`$}Vc-KIUMXVQfqCjE3YbIpV+ z5zjrkx1Kz$w@VN2bNqa{lquCyEjkb7C_m`O*n!evfa8T+8JXI13ya6jUvriFvCMpR zx2FY;y%-uLu&a!x5CIe06UPgNS_Zmqya{Np>S!q#3^P`!a9pmuxG1bNeu+XA2p%9} zo)50v({b7sWWEDN}n}aWG>D%AULVl8H2!;&6UBp{(exBCcQM#XY{< zjq8<{6sx*&Zl@7(zNB>OzIg$+MW5V#6>sQHThpYv`ulc(b_YTd@?J?v3BNv#SGOU* zqIiHOo<}zB^)?HhkFRLp!Vwo13{)8FoqV@~?e{VGqW6}!cet2JWr1^le7vEO{aT*Q zZ4(ZOLbnnupb$$J1NLfGUxt_Xx-T<)PyJz5s%5%x86<5)zM~v3Hp+bTTf`2zSe|20 zhh+Zg6`)|K1C4-ZK1y9X46niwhtr3L9+vjs5`B`9u~T)avs`x(iF2%qojza6tO{e^ zv9^~KY6e>@u!>srlv@nAP5TyXt9y5Y4e*=>3W|FEdy9~*KrAfq@XiT7%6HGE*7t$VTE5j@wS^ z^`IQ>?4rz1)z)*uFD|{SFZEryJ2NOP;eKz)3=tIK`RrV{G>Kp5xj33d2Gzl}-Xk@u z^`6(r(X&qj=s6e5ZeCg7q_BDVdV013tX)dNi#4`paHV*&&I=pK+9L8g8CkLBH;~Ey z*bM$-L=K^cWz{QPYMf}mdpvhgM+3c`moW$WhCl5*O!7+G6N&flZ}G~$pVSGc#uOVs zo^Y9$e3ynr=5cGzJLq0ayzOjY7jbaXmBcrJ3(M?Si1r13r;v+CNX#RPl4ERdG zE}ogU@G7FaXfHj7n`<0GK~^^6LbjDTFSBX?%F0T6UtezaD!(2*oeFl$-(eW|eW8t!lf@(uRHjaC}@`Tij{ zJoQo>V108)4R<(Xc@ROS(dSFL{216eb*Nf%%bOz|+c38^yQSYG=P(yT=8N!kZobuP zHq;hgX-wyHCkYJIyKA7#@Qv$}GyM_$-QJbCu<3)WMYXrQ%g!gYCCIFYTn*JKzSK0w z;e-!QaU+q-&N&Vh+L=AzIc;@!cQ0^lf3j~$wvKxXQ?)QW)0t0D9In*5YXP=8Y_+KT zS_Z1#wiR56JrKDq4>fO4^#8hwo5rrSCtT~uWxP5OD9QF!I#0`n4MiOzHG zEBB!-J9x^>dx3IVcWI(13v?gQw9J;xn$3bGHUh*VWXGOz=eh`gI96J^J2^cH{Q@S3%)}FFqjl&qu;XN%I&>uRp3|di5p5~vRN8(ZB3Q_h;QGE+4SaG~Ue-0a zM#7kA;2i*9XkO96ToebAdt!5pF7saL^jp!vcsq}9YUPyATWQEiHXIxY(8aI^<6cIL z-pgxLKZ?!OxU3?FEhNyE8;6;QnEQOXZ&rUTD~0`1m*|HO5PGpvo$><4zi_Q9MwIB9_< z-ocGdJX~I0&I}b1-^ zqv#)sZF4C>16pXx(P!tbO-VI-+L7H?L#n}_h19gf#Crt=1*7zbHqVNRirhr7XJ~)I zEB$43?;aU(1-2#--BUsMZb0}q<<6HC7Z;Zya(`r_SF^;BtsDXoJ1{U1k8LiyiF=fN z-Ex^oxp!BobYnlAPQR=Db;^%Fu3422*0b@)-sRdBUteWv*=#jj|3Q#-C_qgLdA)wh zWE=$xS5s!=gMvrCK>csu*t+R=`q2M*7u&xK2fyD-in|UF%6p5Z_e|g@?c2} zt+xs2=1EJe+S;R0(b20}9z@ik2^eA9dF!SmcDG_(u}wf-uUm1&g35tFSzKIv;;7(* zoZZsgTWQxP#K)Yy%)+&U#*<%pRxH)%wFeaP5 zl#DlQ%H5t*yvQ16^}+}01Kq#oTQ5)|{#H)M{|_+&3gv&)5Be|r!e5D~b)|n4nJ9pN zK0r+>wvt2VRux+{H3P3oZhw&7WQpJ%Q&8QTnfymJ2SD*x)oJHY9 z!8ZZktK81<+ z=^03s5Xf$?uQkT|Q-+MwrkcTrhfUUMu(q!uzC!t$0zRzG{&$jGR}1%U?^)H@1(M&z zqdrQeA%Pd7B>I5dy>`{L;~Lk}(lvlZM6GKLcq56oy~%uEFgnAotr1Qa+za1CSO+Sd zgJC8nkp}{}FRnn=*`0fgtW%NvC&p37@&j+vK!~tCvercOyp-yG6u|)bVwuH47?Y-V z?(zUdQlhhxjI9%MAS`5@VQppxXsQRa zFCZv0apPU7M1LoTsO9A>+RBny{_>^TuIImg6u|E#MXK-^OGqPQqhLFOnL4jtaq!5$ z0FGAM%Z>R{5lf7@_=|jILjAIdcOa|>!9MTM7bO5#Hu|5siIV_(k^q&&s}6#WQ94*Jr@Npx0*&G||8Ely zUmJLPr{Ge}-9)r-4+K3rsFZm4#km)?z^j=VqyZqgqyE1z8vZef?L*#4c)x0iD0<9qP|;#yN>XtI95O%`2m2ymnYj}fBV1t5jnjPlA}jN6nIiVWT5@2en3z}{keh86 zeXbS(xp^jG{Xeze|EGH7-*PbEUzP}dza`b@bh#fGb!^#ps5v&0aX&mOv(qHID-c#y zTyEED4)_I?tDu0zX3!Pjof~(JSF;xmI)QPM5z)=b+~Tz6jX#M2JW4zTAG?+;3m;XWn=3X=b1d5kT>|z z(jpqB9NR(P^Hya8ln7k#)tWD?vN@9&oW9Y*dy9Gr9KU9d5u@sIh_?!3s33O5FS?~N z-jsGLV2gX)^Oz_y|8@$B+Y{u>o#WMKjgEy&vM?punL`+?nvC4k;I7Z;YuGWA>NtW4N zM1&8Lq^-DYjAoY5JR&MJwFfKTUz)}Z^{t`@bfjcJC9tVxv6?GHT^ zs;uB%z)i8Loe{2>74R69IZ-sm_G;2Kfu-L)!_)eQ=1CLo1yrP>G}qT*D=c=clJa?e zmC8Vj)V%_xP(r&+*NVJ8&UtHv!7b4See#1Ga_k7IQWHxL{f84Q?itd3E_+YW`=;jz zDkJw4kiJe6OT{{MF=}k(+e;mIf%gK_#>B+Le8Cu6_0m5&mcJPMcGI4RVf&=RjMy{e z)_o$SXp%#+ptwi6HMUYfj&#Q3{Es!!u6Qme*|y>Y+`)P|jN2mh3nUUNNFS4_}lhdTj zpd+SAGEQIif|&;n82ET;Kw|A6n=bvlPQ$sS0`GgdiRRdduXM$}RvJ)ogF<)$PM)DqeI8kAU4y~D9;d|sEoN8)zmHKN1AQ&IWpmr* zSffSPU;!7e*297T6(aoZF@=n3c6BfON3+cL7ri(mB%d>$# zykKD`#ho8fCGc3r!hjBfB;=F{6drSLpySqJd41CDbScq5KaWK>gd#&8fe^S57t3SG zB*S166Ke5|1=XR^vCiz2*FF%Wf#0~^^-1n`Wsk0Axu!7MXS-X_=-6YEqE9M6(5HQT zCQ0ak{kPVHo;s?2L~>;&fpoy4Vjh@RC@$mI$D=HH{+{-M{rI{9eff`FK8Awh(-imh z(7PkxS+rB6lg7FV&_4_Z()$>(%8Ii03|VX$9M$U_@g|G)5$mAPC>5XOC?g8Jd%8d# zTk~y60C#xi^@qb+4974tN?o@fRwu?j@JMRuxaeTvhB4gP?1tre_mUmZ*CJqjk4{d; z8e0==(>|0r76{5`GQN@QbSHoh*MNdh^Q<)$751Hlfgb%MZ@rN#hd#8hvz!;Hpf9B} z6u8HHs#YO;W=I5awrIQlKOVow86QK#Mxqq`?Ps2NX2_Jw#J z7{9m;L1#saA%&U6yoXuJ)_HFHauC==;Ts8)zj++^wq+_<_hoQ5EKR6By@d>A#@5jX zej)lHB?FmVx(By1N`-qkILgX_c(q=Q`SHMsv#daOvANsG!Liwyd5y=?lZ4r$Nphl@eJeh1VZ&2BI>NSyIr5h}Qi z1S-nV&ZJL~ZsfZgAq~E?zo;{RypLKrFh)Z;*Bn3KP_8KsV(;A&fHrL)x0%nw6MsXa zCJfRy^@x{3Lx0?K8?H8f>}YBU>m>74U27EBD}&qhjrTZ~bX+=Ua1#f}>(Z(5Dj^dY zpM?qGrl9D=03W0TRP6@j^yCS!&3zYo`^Vn-8}KI=8I8R8`%6qVn|Q!?)Ls@(V}Ilm zOa!}If)~-wZq5b*W{D_DX)H*M*mbCeB+q2*h>)(a^=sD}TIe{fpSzE` z2~tn-{}#l#1GcaCwtxsRvs{T>9F=6h*H4Qudm1Jj3p%TSzh_-Jc7gMA0`YRW&L-&5 z&}#7fo(m=&eQM*c_j2B_$+aW=*DZ^5HG73vaXLbuP4r5|&Ubf|t3Xi4v9%(n9xG|% zXC7wNX6W=G{FXa;8Rb`;ZHHIdgp~)UR+cUBU6~HP-B)Z&L?EYfIFg=UI}PSGzfw?8 z;I#2P?&%AMH>gMqgyj==-4&8aM^Bv}bjJkQ5r?(%uZ>bc!Ege;CVc^aa4;LWa(&@t zyF{>;`DWpepPjGk>}`gF9D&5P8{&pWniLU?EWqAV&KDPJ`vTC`=*A8mkpG8vzO5T* z55i9KFO~}PENA9Q3}#$==fahlZ!lsHaUnHw^sit~R7Pbb_J=A(fP{hjPN7nFr(vm+ zoW3)dTV6W)RCLgqC9vy2Y!BhTv>U9aI-Xg7gEPWiVh9EN2J5P=+~H>Q7!_VFu%RO* zq7`Li{3im+>|T1ZS@|(?$d#c|_AP-7&ef}rY9~KM6qxCdRoMK%-uXOCeOIO269Pde zk2ur7A2BnQb$74o6M?n?(W1?{Zs!~1QV+F(HIfc&3Z4w0wD;l54~5Jn;bIkHXgcwV z6_|iTZ*q(%ZhY>Pfu3S4-5Y5z^Wd?6{|Di{f*{3x#z=$3pq^`4bzw%ck1v)^6ObFA zBibMb$}-IOt5w=tQMCh%k`Yj-9W&tPjyJ@`(OtP~*de6p$6-L;AXNfUJ<3k_3-NX>^;7zHCN@Kt2> ziZX_$@%jFnB_wnfq>^a74WHYVD=>8x;*xFtcQLmUvCqrQ zwb0GIw(ncZ|1PJssR`I&KRIxWd{VUCBg!rV8iAhu6_i*6kS`JeITHOjsmTL>%79tE z{mdl58*BIB{v}LoNnSwF&2-5WGP8WpNWU*-4Wtf&&yfe)))?6B1l5!1?}$->9xdqY zpY)s%-%wZ3C?2s87jv<4Aii`~kd0c2H?J3io&xj8aNUF$gng^uolPn5<|3HZ>8iDss;dGX9W7sPWuWJR|^z%vb{Guwy^_=JAK2m%Kuw_#2mFQEkokeAY~17N)7&&y*J|m zr^LtvjMCIMuv2|`*DFg-Rk(83mqZ4`hQ$;QyH`e@0 z$!=~71;*)m0N3GO;U>r_4^**Y;Ef7!KdG@6O56pa@ZWkn!&%VGb_S{uU7C|;;?5=! zoqIpe1G%_8_}JZTlc#~s)wc6<2TpUqjCC680E;*SvCYd1aoxkR*;a#KHB;m<`8gUS z#uJY34=GjsMacQgeRZu0Ib_>xuiWUEnEJN1pNg$&Y=N(Yi_MKG9tN`Dl*Aa#tS=1A zgI+`rQ+^1c=>z#Wp%e3!NK>ZeIBg>jez(ODo@TPG06c z9@g&6(egs?0))E9jT`E+1F&)O-}A=*?U!}@9ymEu_^l-4mD9;u=qKl1X!=DCm;M2; z@BkY+)rVpOXX#TsmnPfF%1TZaZZQj}7)9TMvHS(YW?pfRTcsQR6 zxlTzgEB+a8eEl<{d#qA#tm@OC@$|OOobJ|NhB4h9oL_qbha&}aUIXP4h4$^->}>64 zIo$@M)slN}t5-JG1B`j(Y|jBh$=hM3ZS-Z&HsgG)CyzI(eo^ZGF#NrojLcr#8T;bv zaRufdz-WSPx~fB=uDGp7r8%V-cpX=E$~9oD$lo;vWd(V;M5C$V^^0cOwE$JJz@AU{ z#UZH1B(-TmJ{HGBb?; literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_012_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_012_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..d98bd4c177c602d1b5586b147602ac1ac11345e8 GIT binary patch literal 19465 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 b5*a&8c!btBUjh;oe6fnn>0_l|xZn7HaIQn5 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_014_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_014_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..db4ddc7bf8153d54955e6df4974f93ae232095df GIT binary patch literal 19425 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 z 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 I@7%BdKfoAdEC2ui literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_017_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_017_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..f374f9cff154f71e00d8dc8021b447c52360db5b GIT binary patch literal 19283 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 z ^L4|t}QRSPcD5%pJ7Q&S(=qI;>t-5(;1qhBehs>a;8b7zaPvR?7=(b3Tez<;sq zRal9j$>bBc8XXC$}#w)9McufQm8 zZNE=ZS?^G=ud^zmllNgO8VOzQItb2Iy1tjf?L+JypDh*<*E6i_rfUh)4@^D08Uf&@ zg5BkL$?@sl?!A*w)Mf>v(rW(VSsJdtZ{mfCHEH`!LYM8Dz(N3e_5C;62W4PmGH9qx43?@v zm*;`fsdpdz!h+xKJlXICN#m9XBxj@xr z*<*HH!T=@ju?HHoCIBgqY_fZBPzUtPCSn?UGVi7Z`P!N&eEj&aHmc(2cl?^5U$mT0 zJq@3A*&@m^vr|;jDVBA$P76WRP&g-am?D zl+UL~K0@mrtsFRvn%eYp+XL_e>FDWQ@Vk3czZ2<}#uLxs(&$t0lzWB-4MzEP$ko<~3>kp!Q~=&S z$*KINMK7};6r55h2^`C257_!m3mzP+<87lfz$sJzl`1r>^?ebB-I{7-A z?BTEP1I#+02E!+PkaPiAUYc{Kv~8&^r?VaIloSb0gO)U~6TE)bFR455MZ=)Mhq^7- zq4c}>cjspY8wYw~%oe;vBVTu+#@ze|VSxlDu6xHbz~4a=nupfa^9PcH+U-cVZ&%A7 zfuJc-g|-4fsb7B|!$11#ivAbE7TDDO1>;8wDGCm2hn5!o(O zW8<7bIcTW`owe`>rYtHdsq?S{}*! Ijmy>l2YE=^4*&oF literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_018_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_018_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..12e6cd4531b96e89dd36523051971db889c156d8 GIT binary patch literal 18996 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_020_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_020_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c4744e3a671f2ac55207e29f6539d7d3af6781 GIT binary patch literal 16958 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_022_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_022_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..9b07f6d5f28a46e7673105c86b7d6191fbfae87f GIT binary patch literal 16636 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_023_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_023_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..a93b66279434e90ad328b2b8965d13516b52ea06 GIT binary patch literal 16944 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 E3%zTsNdN!< literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_024_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_024_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2a8dae33760921355a800d6fa6dcdced11dfe5 GIT binary patch literal 16951 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 BgNOhC literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_026_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_026_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..d27ad41fe340e579c113de932a38d59d1b5a227b GIT binary patch literal 16938 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_027_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_027_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..e18aa1bf9589b11e90f3e22b491d3adb127e1ebb GIT binary patch literal 16951 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_029_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_029_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..9eabb7d098a5408d83513365839178f17cbf9779 GIT binary patch literal 16921 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 HT(0~N4H~7$ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_030_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_030_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..9186519c5e323405bf4a9e1450487670cd3ab8ed GIT binary patch literal 16971 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_032_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_032_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..29cd9f88a9f6c2043b4ea81c11535e57a8752b70 GIT binary patch literal 16996 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 bP@>#+kBOpvCJ=)m==0;JP4oZi6!rfA_dJY_ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_033_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_033_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..a2edc8c4dcb93b96930b5e7a99e525eda1735c58 GIT binary patch literal 16592 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 Wp4$G}<1Dxf^rfZsp`y>-uKW+Oc(la; literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_035_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_035_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..9e98f86911c97afa16951869e230dd99d403209e GIT binary patch literal 16542 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_036_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_036_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd88809c63966e944a195bc2aaeb453f419ad7 GIT binary patch literal 16583 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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_038_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_038_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..27f66a38b49574322d9124638c409816e81bac63 GIT binary patch literal 16604 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 or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "prompting=standard", + "config": { + "prompting": "standard", + "observation": "text_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nThe environment may contain:\n- Keys: pick them up to open doors of the matching color\n- Doors: blocked passages that require a matching key\n- Switches: toggle these to open or close linked gates\n- Gates: blocked passages controlled by switches\n\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "prompting=verbose", + "config": { + "prompting": "verbose", + "observation": "text_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nThe environment may contain:\n- Keys: pick them up to open doors of the matching color\n- Doors: blocked passages that require a matching key\n- Switches: toggle these to open or close linked gates\n- Gates: blocked passages controlled by switches\n\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nRULES (domain logic):\n - PICKUP: take a key on your current cell and store it in your inventory.\n - Doors: keys and doors are color-matched. With the matching key in your inventory, move onto\n the door to open it\n - Switches: face a switch and TOGGLE to flip it on or off. Only switches are toggled. Linked\n gates are open if at least one linked switch is on, and closed if all are off.\n - Gates: you cannot TOGGLE a gate. CLOSED gates block movement; OPEN gates do not.\n - Closed gates and doors you lack a key for block movement like walls until resolved.\n - Use DONE only when you are standing on the goal cell.\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Manhattan: 10 | Step 1/100 (100 left)\nInventory: none\nFrom your perspective:\n AHEAD: out of bounds\n RIGHT: open (1,2)\n BEHIND: open (2,1)\n LEFT: out of bounds\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Manhattan: 10 | Step 2/100 (99 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,2)\n RIGHT: open (2,1)\n BEHIND: out of bounds\n LEFT: out of bounds\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Manhattan: 9 | Step 3/100 (98 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,3)\n RIGHT: open (2,2)\n BEHIND: open (1,1)\n LEFT: out of bounds\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Manhattan: 8 | Step 4/100 (97 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,4)\n RIGHT: open (2,3)\n BEHIND: open (1,2)\n LEFT: out of bounds\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Manhattan: 7 | Step 5/100 (96 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,5)\n RIGHT: open (2,4)\n BEHIND: open (1,3)\n LEFT: out of bounds\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Manhattan: 6 | Step 6/100 (95 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,6)\n RIGHT: open (2,5)\n BEHIND: open (1,4)\n LEFT: out of bounds\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Manhattan: 5 | Step 7/100 (94 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (1,7)\n RIGHT: open (2,6)\n BEHIND: open (1,5)\n LEFT: out of bounds\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Manhattan: 5 | Step 8/100 (93 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (2,6)\n RIGHT: open (1,5)\n BEHIND: out of bounds\n LEFT: open (1,7)\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Manhattan: 4 | Step 9/100 (92 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (3,6)\n RIGHT: open (2,5)\n BEHIND: open (1,6)\n LEFT: open (2,7)\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Manhattan: 3 | Step 10/100 (91 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (4,6)\n RIGHT: open (3,5)\n BEHIND: open (2,6)\n LEFT: open (3,7)\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Manhattan: 2 | Step 11/100 (90 left)\nInventory: none\nFrom your perspective:\n AHEAD: open (5,6)\n RIGHT: open (4,5)\n BEHIND: open (3,6)\n LEFT: open (4,7)\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Manhattan: 1 | Step 12/100 (89 left)\nInventory: none\nFrom your perspective:\n AHEAD: GOAL (6,6)\n RIGHT: open (5,5)\n BEHIND: open (4,6)\n LEFT: open (5,7)\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "context=current", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "current", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "context=last3", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "obs=text_only", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "obs=image_text", + "config": { + "prompting": "minimal", + "observation": "image_text", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "list", + "has_image": true, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "obs=screenshot_only", + "config": { + "prompting": "minimal", + "observation": "screenshot_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)", + "queries": [ + { + "call_idx": 1, + "user_content_type": "list", + "has_image": true, + "user_text": "Position: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n TURN_RIGHT\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n TURN_RIGHT\n MOVE_FORWARD\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n TURN_RIGHT\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n TURN_RIGHT\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n TURN_RIGHT\n MOVE_FORWARD\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n TURN_RIGHT\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "list", + "has_image": true, + "user_text": "Recent steps (oldest first, action only):\n MOVE_FORWARD\n MOVE_FORWARD\n MOVE_FORWARD\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: \nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "query=step_by_step", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "last3", + "querying": "step_by_step" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 12 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing EAST.\nEnvironment steps used so far: 1 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: EAST | Goal: (6, 6) | Step 2/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing EAST.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 2) facing EAST.\nEnvironment steps used so far: 2 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 2) | Facing: EAST | Goal: (6, 6) | Step 3/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 1) facing EAST -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing EAST.\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 3) facing EAST.\nEnvironment steps used so far: 3 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 3) | Facing: EAST | Goal: (6, 6) | Step 4/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 5, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 6, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 5) facing EAST.\nEnvironment steps used so far: 5 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 5) | Facing: EAST | Goal: (6, 6) | Step 6/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 7, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: TURN_RIGHT" + }, + { + "call_idx": 8, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing SOUTH.\nEnvironment steps used so far: 7 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: SOUTH | Goal: (6, 6) | Step 8/100\nLast result: TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 9, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (2, 6) facing SOUTH.\nEnvironment steps used so far: 8 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (2, 6) | Facing: SOUTH | Goal: (6, 6) | Step 9/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 10, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 6) facing SOUTH -> TURN_RIGHT -> TURNED \u2014 TURN_RIGHT: Now facing SOUTH.\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (3, 6) facing SOUTH.\nEnvironment steps used so far: 9 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (3, 6) | Facing: SOUTH | Goal: (6, 6) | Step 10/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 11, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + }, + { + "call_idx": 12, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n (5, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (5, 6) facing SOUTH.\nEnvironment steps used so far: 11 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (5, 6) | Facing: SOUTH | Goal: (6, 6) | Step 12/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).\nWhat is your next action?", + "assistant_reply": "FINAL_OUTPUT: MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2)." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3)." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4)." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5)." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6)." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6)." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6)." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6)." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6)." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6)." + } + ] + }, + { + "label": "query=subgoal", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "last3", + "querying": "subgoal" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 4 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nFor each turn output:\n SUB_GOAL: \n ACTIONS: \n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "SUB_GOAL: Advance toward goal.\nACTIONS: TURN_RIGHT, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD" + }, + { + "call_idx": 2, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 2) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).\n (1, 3) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 4) facing EAST.\nEnvironment steps used so far: 4 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 4) | Facing: EAST | Goal: (6, 6) | Step 5/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\nWhat is your next action?", + "assistant_reply": "SUB_GOAL: Advance toward goal.\nACTIONS: MOVE_FORWARD, MOVE_FORWARD" + }, + { + "call_idx": 3, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (1, 4) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).\n (1, 5) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).\n (1, 6) facing EAST -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 6) facing EAST.\nEnvironment steps used so far: 6 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 6) | Facing: EAST | Goal: (6, 6) | Step 7/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).\nWhat is your next action?", + "assistant_reply": "SUB_GOAL: Advance toward goal.\nACTIONS: TURN_RIGHT, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD" + }, + { + "call_idx": 4, + "user_content_type": "str", + "has_image": false, + "user_text": "Recent history (last 3 steps, oldest first):\n (2, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).\n (3, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).\n (4, 6) facing SOUTH -> MOVE_FORWARD -> MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\n\nObservation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (4, 6) facing SOUTH.\nEnvironment steps used so far: 10 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (4, 6) | Facing: SOUTH | Goal: (6, 6) | Step 11/100\nLast result: MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).\nWhat is your next action?", + "assistant_reply": "SUB_GOAL: Advance toward goal.\nACTIONS: MOVE_FORWARD, MOVE_FORWARD" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST.", + "subgoal": "Advance toward goal." + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).", + "subgoal": "Advance toward goal." + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).", + "subgoal": "Advance toward goal." + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).", + "subgoal": "Advance toward goal." + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).", + "subgoal": "Advance toward goal." + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).", + "subgoal": "Advance toward goal." + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH.", + "subgoal": "Advance toward goal." + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).", + "subgoal": "Advance toward goal." + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).", + "subgoal": "Advance toward goal." + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).", + "subgoal": "Advance toward goal." + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).", + "subgoal": "Advance toward goal." + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6).", + "subgoal": "Advance toward goal." + } + ] + }, + { + "label": "query=full_trajectory", + "config": { + "prompting": "minimal", + "observation": "text_only", + "context_window": "last3", + "querying": "full_trajectory" + }, + "summary": { + "success": true, + "steps_used": 12, + "query_count": 1 + }, + "system_prompt": "Task: move to the goal cell in the grid.\nValid actions: TURN_LEFT, TURN_RIGHT, MOVE_FORWARD, PICKUP, TOGGLE, DONE.\nOn the last line, output exactly:\nFINAL_OUTPUT: or FINAL_OUTPUT: , , ... (comma-separated; one or more valid actions)\n\nOutput your complete trajectory once as:\n SUB_GOAL: \n ACTIONS: \nThe last action in ACTIONS should be DONE (when you expect to be at the goal).\nYou will not be queried again \u2014 this is your only planning turn.\n\nInitial maze (fixed for this episode):\nThe world is a 8 by 8 grid.\nCoordinates are given as (row, column).\nThe top-left corner is (1,1).\nThe start is at (1, 1).\nThe goal is at (6, 6).\nThe following cells are walls: none.", + "queries": [ + { + "call_idx": 1, + "user_content_type": "str", + "has_image": false, + "user_text": "Observation:\nCurrent situation (this step):\nThe goal is at (6, 6).\nYou are at (1, 1) facing NORTH.\nEnvironment steps used so far: 0 (max 100 before timeout).\nYour inventory: empty.\n\nMap contents as of this step (keys on the ground, doors, switches, gates):\n(No keys on the ground, doors, switches, or gates in the current state description.)\n\nPosition: (1, 1) | Facing: NORTH | Goal: (6, 6) | Step 1/100\nLast result: Episode start.\nWhat is your next action?", + "assistant_reply": "SUB_GOAL: Reach goal by open-room shortest path.\nACTIONS: TURN_RIGHT, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, TURN_RIGHT, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, MOVE_FORWARD, DONE" + } + ], + "transcript": [ + { + "step": 1, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 1 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing EAST.", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 2, + "position_before": [ + 1, + 1 + ], + "position_after": [ + 1, + 2 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 2).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 3, + "position_before": [ + 1, + 2 + ], + "position_after": [ + 1, + 3 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 3).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 4, + "position_before": [ + 1, + 3 + ], + "position_after": [ + 1, + 4 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 4).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 5, + "position_before": [ + 1, + 4 + ], + "position_after": [ + 1, + 5 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 5).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 6, + "position_before": [ + 1, + 5 + ], + "position_after": [ + 1, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (1, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 7, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 1, + 6 + ], + "action": "TURN_RIGHT", + "event_type": "TURNED", + "feedback": "TURNED \u2014 TURN_RIGHT: Now facing SOUTH.", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 8, + "position_before": [ + 1, + 6 + ], + "position_after": [ + 2, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (2, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 9, + "position_before": [ + 2, + 6 + ], + "position_after": [ + 3, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (3, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 10, + "position_before": [ + 3, + 6 + ], + "position_after": [ + 4, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (4, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 11, + "position_before": [ + 4, + 6 + ], + "position_after": [ + 5, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "MOVED", + "feedback": "MOVED \u2014 MOVE_FORWARD: Moved to (5, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + }, + { + "step": 12, + "position_before": [ + 5, + 6 + ], + "position_after": [ + 6, + 6 + ], + "action": "MOVE_FORWARD", + "event_type": "DONE", + "feedback": "SUCCESS \u2014 MOVE_FORWARD: Reached goal at (6, 6).", + "subgoal": "Reach goal by open-room shortest path.", + "full_trajectory": true + } + ] + } + ] +} \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/report.txt b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/report.txt new file mode 100644 index 0000000..2a74c97 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/report.txt @@ -0,0 +1,15 @@ +Runner/Prompt/Observation/Querying smoke report + +prompting=minimal success=True steps=12 queries=12 +prompting=standard success=True steps=12 queries=12 +prompting=verbose success=True steps=12 queries=12 +context=current success=True steps=12 queries=12 +context=last3 success=True steps=12 queries=12 +obs=text_only success=True steps=12 queries=12 +obs=image_text success=True steps=12 queries=12 +obs=screenshot_only success=True steps=12 queries=12 +query=step_by_step success=True steps=12 queries=12 +query=subgoal success=True steps=12 queries=4 +query=full_trajectory success=True steps=12 queries=1 + +All checks passed. \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_prompting_observation_querying.py b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_prompting_observation_querying.py new file mode 100644 index 0000000..97fe4d8 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_prompting_observation_querying.py @@ -0,0 +1,397 @@ +from __future__ import annotations + +import json +import argparse +import base64 +import re +import sys +from dataclasses import replace +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[2] +if str(ROOT) not in sys.path: + sys.path.insert(0, str(ROOT)) +V2_ROOT = Path(__file__).resolve().parents[3] +if str(V2_ROOT) not in sys.path: + sys.path.insert(0, str(V2_ROOT)) + +from nlu_benchmark.config import ExperimentConfig +from nlu_benchmark.env import FACING_ORDER, FACING_TO_DELTA +from nlu_benchmark.loader import load_maze +from nlu_benchmark.runner import ExperimentRunner +import nlu_benchmark.observation as observation_module +from automatic_maze_generation.mazegen.models import Door, Gate, Key, MazeInstance, Switch +from automatic_maze_generation.mazegen.solver import solve_maze + + +_POS_RE = re.compile(r"Position:\s*\((\d+),\s*(\d+)\)") +_FACING_RE = re.compile(r"Facing:\s*([A-Z]+)") +_GOAL_RE = re.compile(r"Goal:\s*\((\d+),\s*(\d+)\)") + + +_ONE_BY_ONE_PNG = base64.b64decode( + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO5nVxUAAAAASUVORK5CYII=" +) + + +def _extract_user_text(content: Any) -> str: + if isinstance(content, str): + return content + if isinstance(content, list): + texts = [blk.get("text", "") for blk in content if isinstance(blk, dict) and blk.get("type") == "text"] + return "\n".join(texts) + return "" + + +def _parse_prompt_state(user_text: str): + pm = _POS_RE.search(user_text) + fm = _FACING_RE.search(user_text) + gm = _GOAL_RE.search(user_text) + if not (pm and fm and gm): + return None + pos = (int(pm.group(1)), int(pm.group(2))) + facing = fm.group(1) + goal = (int(gm.group(1)), int(gm.group(2))) + return pos, facing, goal + + +def _turn_to_face(cur: str, target: str) -> list[str]: + ci = FACING_ORDER.index(cur) + ti = FACING_ORDER.index(target) + diff = (ti - ci) % 4 + if diff == 0: + return [] + if diff == 1: + return ["TURN_RIGHT"] + if diff == 2: + return ["TURN_RIGHT", "TURN_RIGHT"] + return ["TURN_LEFT"] + + +def _plan_to_goal_from_prompt(user_text: str, budget: int = 6) -> list[str]: + parsed = _parse_prompt_state(user_text) + if parsed is None: + return ["TURN_RIGHT"] + (r, c), facing, (gr, gc) = parsed + actions: list[str] = [] + if c != gc: + target = "EAST" if gc > c else "WEST" + actions.extend(_turn_to_face(facing, target)) + actions.extend(["MOVE_FORWARD"] * min(abs(gc - c), max(1, budget - len(actions)))) + elif r != gr: + target = "SOUTH" if gr > r else "NORTH" + actions.extend(_turn_to_face(facing, target)) + actions.extend(["MOVE_FORWARD"] * min(abs(gr - r), max(1, budget - len(actions)))) + else: + actions.append("DONE") + return actions[:budget] if actions else ["DONE"] + + +def _state_to_maze_instance(st) -> MazeInstance: + def rc_to_xy(pos): + r, c = pos + return (c - 1, r - 1) + + return MazeInstance( + width=st.cols, + height=st.rows, + walls={rc_to_xy(w) for w in st.walls}, + start=rc_to_xy(st.start), + goal=rc_to_xy(st.goal), + keys=[ + Key(id=k.get("id", f"key_{i}"), position=rc_to_xy(tuple(k["position"])), color=k["color"]) + for i, k in enumerate(st.keys) + ], + doors=[ + Door( + id=d.get("id", f"door_{i}"), + position=rc_to_xy(tuple(d["position"])), + requires_key=d["requires_key"], + initial_state=d.get("initial_state", "locked"), + ) + for i, d in enumerate(st.doors) + ], + switches=[ + Switch( + id=s.get("id", f"switch_{i}"), + position=rc_to_xy(tuple(s["position"])), + controls=list(s.get("controls", [])), + switch_type=s.get("switch_type", "toggle"), + initial_state=s.get("initial_state", "off"), + ) + for i, s in enumerate(st.switches) + ], + gates=[ + Gate( + id=g.get("id", f"gate_{i}"), + position=rc_to_xy(tuple(g["position"])), + initial_state=g.get("initial_state", "closed"), + ) + for i, g in enumerate(st.gates) + ], + ) + + +def _xy_path_to_rc(path_xy) -> list[tuple[int, int]]: + return [(y + 1, x + 1) for (x, y) in path_xy] + + +def _path_to_actions(path, start_facing: str = "NORTH") -> list[str]: + if not path or len(path) < 2: + return ["DONE"] + facing = start_facing + actions: list[str] = [] + for (r, c), (nr, nc) in zip(path, path[1:]): + dr, dc = nr - r, nc - c + target = next((f for f, d in FACING_TO_DELTA.items() if d == (dr, dc)), None) + if target is None: + continue + cur_idx = FACING_ORDER.index(facing) + tgt_idx = FACING_ORDER.index(target) + diff = (tgt_idx - cur_idx) % 4 + if diff == 1: + actions.append("TURN_RIGHT") + elif diff == 2: + actions.extend(["TURN_RIGHT", "TURN_RIGHT"]) + elif diff == 3: + actions.append("TURN_LEFT") + actions.append("MOVE_FORWARD") + facing = target + actions.append("DONE") + return actions + + +def _inject_pickups(actions: list[str], env, state) -> list[str]: + out: list[str] = [] + sim_state = state + for a in actions: + has_key_here = any(tuple(k["position"]) == sim_state.agent_pos for k in sim_state.keys) + if has_key_here and a != "PICKUP": + out.append("PICKUP") + sim_state, _ = env.step("PICKUP") + out.append(a) + sim_state, _ = env.step(a) + return out + + +def _full_trajectory_actions_for_maze(maze_path: Path) -> list[str]: + env = load_maze(maze_path) + state = env.reset() + maze_inst = _state_to_maze_instance(state) + solver_result = solve_maze(maze_inst) + if not solver_result.get("is_solvable"): + return ["DONE"] + path_rc = _xy_path_to_rc(solver_result.get("path", [])) + planned = _path_to_actions(path_rc, start_facing="NORTH") + return _inject_pickups(planned, env, state) + + +class ProbeAgent: + """Deterministic test agent that records message structure on each query.""" + + def __init__(self, full_trajectory_actions: list[str]) -> None: + self.calls: list[dict[str, Any]] = [] + self._full_trajectory_actions = full_trajectory_actions + + def __call__(self, messages: list[dict]) -> str: + system_text = str(messages[0]["content"]) + user_msg = messages[-1] + user_content = user_msg.get("content") + user_text = _extract_user_text(user_content) + has_image = isinstance(user_content, list) and any( + isinstance(blk, dict) and blk.get("type") == "image_url" for blk in user_content + ) + + full_mode = "You will not be queried again" in system_text + subgoal_mode = "SUB_GOAL:" in system_text and "ACTIONS:" in system_text + + reply: str + if full_mode: + reply = ( + "SUB_GOAL: Execute maze-aware end-to-end plan.\n" + f"ACTIONS: {', '.join(self._full_trajectory_actions)}" + ) + elif subgoal_mode: + chunk = _plan_to_goal_from_prompt(user_text, budget=4) + reply = f"SUB_GOAL: Advance toward goal.\nACTIONS: {', '.join(chunk)}" + else: + step = _plan_to_goal_from_prompt(user_text, budget=1)[0] + reply = f"FINAL_OUTPUT: {step}" + + self.calls.append( + { + "system": system_text, + "user_content_type": type(user_content).__name__, + "has_image": has_image, + "user_text": user_text, + "assistant_reply": reply, + } + ) + return reply + + +def _assert(cond: bool, msg: str, errors: list[str]) -> None: + if not cond: + errors.append(msg) + + +def _run_case(base: ExperimentConfig, maze_path: Path, label: str, full_trajectory_actions: list[str], max_steps: int): + runner = ExperimentRunner.from_json(str(maze_path), config=base) + runner.env.initial.max_steps = min(runner.env.initial.max_steps, max_steps) + agent = ProbeAgent(full_trajectory_actions) + result = runner.run(agent, verbose=False) + return label, base, result, agent + + +def _suite_cases(base: ExperimentConfig, suite: str): + all_cases = [ + (replace(base, prompting="minimal"), "prompting=minimal"), + (replace(base, prompting="standard"), "prompting=standard"), + (replace(base, prompting="verbose"), "prompting=verbose"), + (replace(base, context_window="current"), "context=current"), + (replace(base, context_window="last3"), "context=last3"), + (replace(base, observation="text_only", context_window="last3"), "obs=text_only"), + (replace(base, observation="image_text", context_window="last3"), "obs=image_text"), + (replace(base, observation="screenshot_only", context_window="last3"), "obs=screenshot_only"), + (replace(base, querying="step_by_step"), "query=step_by_step"), + (replace(base, querying="subgoal"), "query=subgoal"), + (replace(base, querying="full_trajectory"), "query=full_trajectory"), + ] + if suite == "all": + return all_cases + if suite == "prompting": + return [c for c in all_cases if c[1].startswith("prompting=")] + if suite == "observation": + return [c for c in all_cases if c[1].startswith("obs=") or c[1].startswith("context=")] + if suite == "querying": + return [c for c in all_cases if c[1].startswith("query=")] + raise ValueError(f"Unknown suite: {suite}") + + +def run_smoke_suite(maze_name: str, tag: str, max_steps: int, suite: str = "all") -> tuple[Path, Path]: + maze_path = ROOT / "nlu_benchmark" / "sample mazes" / maze_name + maze_stem = Path(maze_name).stem + suffix = f"_{tag}" if tag else "" + full_trajectory_actions = _full_trajectory_actions_for_maze(maze_path) + # Smoke test already validated rendering elsewhere; use tiny static bytes for speed. + observation_module.render_maze_image_png_bytes = lambda _state: _ONE_BY_ONE_PNG + base = ExperimentConfig(prompting="minimal", observation="text_only", context_window="last3", querying="step_by_step") + selected = _suite_cases(base, suite) + outputs = [ + _run_case(cfg, maze_path, label, full_trajectory_actions, max_steps) + for cfg, label in selected + ] + errors: list[str] = [] + summary_lines: list[str] = [] + detailed_runs: list[dict[str, Any]] = [] + + for label, cfg, result, agent in outputs: + calls = len(agent.calls) + first = agent.calls[0] + summary_lines.append( + f"{label:<24} success={result['success']!s:<5} steps={result['steps_used']:<3} queries={calls:<3}" + ) + + if cfg.prompting == "minimal": + _assert("The environment may contain:" not in first["system"], f"{label}: minimal has mechanism list", errors) + if cfg.prompting == "standard": + _assert("The environment may contain:" in first["system"], f"{label}: standard missing mechanism list", errors) + _assert("RULES (domain logic):" not in first["system"], f"{label}: standard unexpectedly has verbose rules", errors) + if cfg.prompting == "verbose": + _assert("RULES (domain logic):" in first["system"], f"{label}: verbose missing rules", errors) + + if cfg.observation == "text_only": + _assert(first["user_content_type"] == "str", f"{label}: text_only should send string content", errors) + _assert(not first["has_image"], f"{label}: text_only should not include image", errors) + else: + _assert(first["user_content_type"] == "list", f"{label}: image mode should send list content", errors) + _assert(first["has_image"], f"{label}: image mode should include image block", errors) + + if cfg.observation == "screenshot_only": + _assert("Initial maze (fixed for this episode):" not in first["system"], f"{label}: screenshot_only should omit initial NL map", errors) + else: + _assert("Initial maze (fixed for this episode):" in first["system"], f"{label}: non-screenshot should include initial NL map", errors) + + if cfg.context_window == "current" and len(agent.calls) > 1: + second_text = agent.calls[1]["user_text"] + _assert("Recent history (last 3 steps" not in second_text, f"{label}: current unexpectedly includes history", errors) + _assert("Recent steps (oldest first, action only):" not in second_text, f"{label}: current unexpectedly includes action history", errors) + if cfg.context_window == "last3" and len(agent.calls) > 1: + second_text = agent.calls[1]["user_text"] + if cfg.observation == "screenshot_only": + _assert("Recent steps (oldest first, action only):" in second_text, f"{label}: last3 screenshot should include action-only history", errors) + else: + _assert("Recent history (last 3 steps, oldest first):" in second_text, f"{label}: last3 should include full history", errors) + + if cfg.querying == "full_trajectory": + _assert(calls == 1, f"{label}: full_trajectory should query once, got {calls}", errors) + if cfg.querying == "step_by_step": + _assert(calls >= 3, f"{label}: step_by_step should query repeatedly, got {calls}", errors) + if cfg.querying == "subgoal": + _assert(calls >= 2, f"{label}: subgoal should query at least twice, got {calls}", errors) + has_subgoal_meta = any("subgoal" in t for t in result["transcript"]) + _assert(has_subgoal_meta, f"{label}: transcript missing subgoal metadata", errors) + + detailed_runs.append( + { + "label": label, + "config": cfg.to_dict(), + "summary": { + "success": result["success"], + "steps_used": result["steps_used"], + "query_count": calls, + }, + "system_prompt": first["system"], + "queries": [ + { + "call_idx": i + 1, + "user_content_type": call["user_content_type"], + "has_image": call["has_image"], + "user_text": call["user_text"], + "assistant_reply": call["assistant_reply"], + } + for i, call in enumerate(agent.calls) + ], + "transcript": result["transcript"], + } + ) + + out_dir = Path(__file__).resolve().parent / "results" / f"smoke_{suite}_{maze_stem}{suffix}" + out_dir.mkdir(parents=True, exist_ok=True) + report = out_dir / "report.txt" + details_json = out_dir / "detailed_logs.json" + body = ["Runner/Prompt/Observation/Querying smoke report", ""] + summary_lines + [""] + if errors: + body.append("FAILURES:") + body.extend(f"- {e}" for e in errors) + else: + body.append("All checks passed.") + report.write_text("\n".join(body), encoding="utf-8") + details_json.write_text(json.dumps({"maze": str(maze_path), "runs": detailed_runs}, indent=2), encoding="utf-8") + + print("\n".join(summary_lines)) + print("") + if errors: + print(f"FAILED checks: {len(errors)}") + for e in errors: + print(f"- {e}") + else: + print("All checks passed.") + print(f"report={report}") + print(f"details={details_json}") + return report, details_json + + +def main() -> None: + parser = argparse.ArgumentParser(description="Smoke test prompting/context/querying/observation workflow.") + parser.add_argument("--maze", default="V01_empty_room.json", help="Maze JSON filename under sample mazes/") + parser.add_argument("--tag", default="", help="Optional output tag suffix.") + parser.add_argument("--max-steps", type=int, default=40, help="Cap per-episode steps for faster smoke runs.") + parser.add_argument("--suite", choices=["all", "prompting", "observation", "querying"], default="all") + args = parser.parse_args() + run_smoke_suite(args.maze, args.tag, args.max_steps, args.suite) + + +if __name__ == "__main__": + main() diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_smart_manual.py b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_smart_manual.py new file mode 100644 index 0000000..71e9c16 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/smoke_smart_manual.py @@ -0,0 +1,164 @@ +from __future__ import annotations + +import argparse +from pathlib import Path +import sys + +ROOT = Path(__file__).resolve().parents[2] +if str(ROOT) not in sys.path: + sys.path.insert(0, str(ROOT)) +V2_ROOT = Path(__file__).resolve().parents[3] +if str(V2_ROOT) not in sys.path: + sys.path.insert(0, str(V2_ROOT)) + +from nlu_benchmark.env import FACING_ORDER, FACING_TO_DELTA +from nlu_benchmark.loader import load_maze +from nlu_benchmark.renderer import render_maze_image_png_bytes +from automatic_maze_generation.mazegen.models import Door, Gate, Key, MazeInstance, Switch +from automatic_maze_generation.mazegen.solver import solve_maze + + +def _state_to_maze_instance(st) -> MazeInstance: + def rc_to_xy(pos): + r, c = pos + # NLU grids are 1-based (row, col); mazegen solver uses 0-based (x, y). + return (c - 1, r - 1) + + return MazeInstance( + width=st.cols, + height=st.rows, + walls={rc_to_xy(w) for w in st.walls}, + start=rc_to_xy(st.start), + goal=rc_to_xy(st.goal), + keys=[ + Key(id=k.get("id", f"key_{i}"), position=rc_to_xy(tuple(k["position"])), color=k["color"]) + for i, k in enumerate(st.keys) + ], + doors=[ + Door( + id=d.get("id", f"door_{i}"), + position=rc_to_xy(tuple(d["position"])), + requires_key=d["requires_key"], + initial_state=d.get("initial_state", "locked"), + ) + for i, d in enumerate(st.doors) + ], + switches=[ + Switch( + id=s.get("id", f"switch_{i}"), + position=rc_to_xy(tuple(s["position"])), + controls=list(s.get("controls", [])), + switch_type=s.get("switch_type", "toggle"), + initial_state=s.get("initial_state", "off"), + ) + for i, s in enumerate(st.switches) + ], + gates=[ + Gate( + id=g.get("id", f"gate_{i}"), + position=rc_to_xy(tuple(g["position"])), + initial_state=g.get("initial_state", "closed"), + ) + for i, g in enumerate(st.gates) + ], + ) + + +def _path_to_actions(path, start_facing: str = "NORTH") -> list[str]: + if not path or len(path) < 2: + return ["DONE"] + facing = start_facing + actions: list[str] = [] + for (r, c), (nr, nc) in zip(path, path[1:]): + dr, dc = nr - r, nc - c + target = next((f for f, d in FACING_TO_DELTA.items() if d == (dr, dc)), None) + if target is None: + continue + cur_idx = FACING_ORDER.index(facing) + tgt_idx = FACING_ORDER.index(target) + diff = (tgt_idx - cur_idx) % 4 + if diff == 1: + actions.append("TURN_RIGHT") + elif diff == 2: + actions.extend(["TURN_RIGHT", "TURN_RIGHT"]) + elif diff == 3: + actions.append("TURN_LEFT") + actions.append("MOVE_FORWARD") + facing = target + actions.append("DONE") + return actions + + +def _xy_path_to_rc(path_xy) -> list[tuple[int, int]]: + return [(y + 1, x + 1) for (x, y) in path_xy] + + +def _inject_pickups(actions: list[str], env, state) -> list[str]: + """Nlu env needs explicit PICKUP; solver assumes pickup-on-entry.""" + out: list[str] = [] + sim_state = state + for a in actions: + has_key_here = any(tuple(k["position"]) == sim_state.agent_pos for k in sim_state.keys) + if has_key_here and a != "PICKUP": + out.append("PICKUP") + sim_state, _ = env.step("PICKUP") + out.append(a) + sim_state, _ = env.step(a) + return out + + +def main() -> None: + parser = argparse.ArgumentParser(description="Run BFS-guided smoke test on an NLU sample maze.") + parser.add_argument("--maze", default="V04_single_key.json", help="Maze JSON filename under sample mazes/") + parser.add_argument("--tag", default="", help="Optional output tag suffix.") + args = parser.parse_args() + + maze_path = ROOT / "nlu_benchmark" / "sample mazes" / args.maze + maze_stem = Path(args.maze).stem + suffix = f"_{args.tag}" if args.tag else "" + out_dir = Path(__file__).resolve().parent / "results" / f"smoke_{maze_stem}_smart_manual{suffix}" + out_dir.mkdir(parents=True, exist_ok=True) + for p in out_dir.glob("*.png"): + p.unlink() + for p in out_dir.glob("*.txt"): + p.unlink() + + env_plan = load_maze(maze_path) + plan_state = env_plan.reset() + maze_inst = _state_to_maze_instance(plan_state) + solver_result = solve_maze(maze_inst) + if not solver_result.get("is_solvable"): + print("Solver reported unsolvable maze.") + return + path_rc = _xy_path_to_rc(solver_result.get("path", [])) + planned_actions = _path_to_actions(path_rc, start_facing="NORTH") + executable_actions = _inject_pickups(planned_actions, env_plan, plan_state) + + env = load_maze(maze_path) + state = env.reset() + + (out_dir / "step_000_reset.png").write_bytes(render_maze_image_png_bytes(state)) + lines = [f"000 RESET pos={state.agent_pos} facing={state.facing} inv={state.inventory}"] + + for step, action in enumerate(executable_actions, start=1): + before = state.agent_pos + state, event = env.step(action) + (out_dir / f"step_{step:03d}_{action}.png").write_bytes(render_maze_image_png_bytes(state)) + line = ( + f"{step:03d} {action:<12} {event.type:<10} from={before} " + f"to={state.agent_pos} facing={state.facing} inv={state.inventory}" + ) + print(line) + lines.append(line) + if event.type == "DONE": + break + + (out_dir / "run_log.txt").write_text("\n".join(lines), encoding="utf-8") + (out_dir / "plan.txt").write_text("\n".join(executable_actions), encoding="utf-8") + print(f"\nsuccess={state.agent_pos == state.goal}") + print(f"steps_used={state.step_count}") + print(f"out={out_dir}") + + +if __name__ == "__main__": + main() diff --git a/src/v2/nlu_pipeline/nlu_benchmark/terminal_output.txt b/src/v2/nlu_pipeline/nlu_benchmark/terminal_output.txt new file mode 100644 index 0000000..7fc5003 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/terminal_output.txt @@ -0,0 +1,323 @@ +Random Agent +Step 1 of 50 +Status at step 1: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +Step 2 of 50 +Status at step 1: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (2, 1).'} +Step 2 of 50 +Status at step 2: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +Step 3 of 50 +Status at step 3: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +Step 4 of 50 +Status at step 4: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +Step 5 of 50 +Status at step 5: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 6 of 50 +Status at step 6: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +Step 7 of 50 +Status at step 7: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +Step 8 of 50 +Status at step 7: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (2, 1).'} +Step 8 of 50 +Status at step 8: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +Step 9 of 50 +Status at step 9: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +Step 10 of 50 +Status at step 9: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 10 of 50 +Status at step 9: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 10 of 50 +Status at step 9: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 10 of 50 +Status at step 10: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +Step 11 of 50 +Status at step 11: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 12 of 50 +Status at step 11: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 12 of 50 +Status at step 11: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 12 of 50 +Status at step 12: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +Step 13 of 50 +Status at step 13: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +Step 14 of 50 +Status at step 13: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 14 of 50 +Status at step 14: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +Step 15 of 50 +Status at step 14: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (2,3). You remain at (2, 2).'} +Step 15 of 50 +Status at step 15: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +Step 16 of 50 +Status at step 16: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +Step 17 of 50 +Status at step 17: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 18 of 50 +Status at step 17: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 18 of 50 +Status at step 18: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +Step 19 of 50 +Status at step 19: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (4, 1).'} +Step 20 of 50 +Status at step 19: {'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (4,2). You remain at (4, 1).'} +Step 20 of 50 +Status at step 20: {'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (3, 1).'} +Step 21 of 50 +Status at step 21: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +Step 22 of 50 +Status at step 22: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +Step 23 of 50 +Status at step 22: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (1, 1).'} +Step 23 of 50 +Status at step 23: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +Step 24 of 50 +Status at step 24: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +Step 25 of 50 +Status at step 25: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +Step 26 of 50 +Status at step 26: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +Step 27 of 50 +Status at step 27: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +Step 28 of 50 +Status at step 27: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 28 of 50 +Status at step 27: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 28 of 50 +Status at step 28: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +Step 29 of 50 +Status at step 29: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +Step 30 of 50 +Status at step 30: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +Step 31 of 50 +Status at step 30: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (3, 1).'} +Step 31 of 50 +Status at step 31: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (4, 1).'} +Step 32 of 50 +Status at step 32: {'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (5, 1).'} +Step 33 of 50 +Status at step 33: {'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 2).'} +Step 34 of 50 +Status at step 34: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 3), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 3).'} +Step 35 of 50 +Status at step 35: {'position_before': (5, 3), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 2).'} +Step 36 of 50 +Status at step 35: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +Step 36 of 50 +Status at step 35: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +Step 36 of 50 +Status at step 35: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH is blocked by a wall at (4,2). You remain at (5, 2).'} +Step 36 of 50 +Status at step 35: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +Step 36 of 50 +Status at step 36: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 1).'} +Step 37 of 50 +Status at step 36: {'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 1).'} +Step 37 of 50 +Status at step 37: {'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 2).'} +Step 38 of 50 +Status at step 38: {'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 1).'} +Step 39 of 50 +Status at step 39: {'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (4, 1).'} +Step 40 of 50 +Status at step 39: {'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (4,2). You remain at (4, 1).'} +Step 40 of 50 +Status at step 40: {'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (3, 1).'} +Step 41 of 50 +Status at step 40: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (3, 1).'} +Step 41 of 50 +Status at step 41: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +Step 42 of 50 +Status at step 42: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +Step 43 of 50 +Status at step 43: {'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +Step 44 of 50 +Status at step 44: {'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +Step 45 of 50 +Status at step 45: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +Step 46 of 50 +Status at step 46: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +Step 47 of 50 +Status at step 46: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (2,3). You remain at (2, 2).'} +Step 47 of 50 +Status at step 47: {'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +Step 48 of 50 +Status at step 48: {'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +Step 49 of 50 +Status at step 48: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 1).'} +Step 49 of 50 +Status at step 49: {'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (1, 2).'} +Step 50 of 50 +Status at step 49: {'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +Step 50 of 50 +Status at step 49: {'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +Step 50 of 50 +Status at step 50: {'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +Success: False +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (2,3). You remain at (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (4, 1).'} +{'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (4,2). You remain at (4, 1).'} +{'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (1, 1).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (4, 1).'} +{'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (5, 1).'} +{'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 3), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 3).'} +{'position_before': (5, 3), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH is blocked by a wall at (4,2). You remain at (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 1).'} +{'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH would move out of bounds. You remain at (5, 1).'} +{'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (5, 2).'} +{'position_before': (5, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (5, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (5, 1).'} +{'position_before': (5, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (4, 1).'} +{'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (4, 1), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (4,2). You remain at (4, 1).'} +{'position_before': (4, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_WEST. MOVE_WEST would move out of bounds. You remain at (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 1).'} +{'position_before': (3, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (3, 2).'} +{'position_before': (3, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (2,3). You remain at (2, 2).'} +{'position_before': (2, 2), 'model_text': 'FINAL_ACTION: MOVE_WEST', 'parsed_action': 'MOVE_WEST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_WEST. Moved to (2, 1).'} +{'position_before': (2, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (1, 1).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 1), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 1).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +{'position_before': (1, 1), 'model_text': 'FINAL_ACTION: MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (1, 2), 'event_type': 'OOB', 'feedback': 'Parsed action: MOVE_NORTH. MOVE_NORTH would move out of bounds. You remain at (1, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +{'position_before': (1, 2), 'model_text': 'FINAL_ACTION: MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_FINAL_ACTION', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} + + + + +LLM Agent +Status at step 1: {'position_before': (1, 1), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (1, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_EAST. Moved to (1, 2).'} +Step 2 of 50 +Status at step 2: {'position_before': (1, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (2, 2).'} +Step 3 of 50 +Status at step 3: {'position_before': (2, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 4 of 50 +Status at step 3: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 4 of 50 +Status at step 4: {'position_before': (3, 2), 'model_text': 'MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_REGEX', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +Step 5 of 50 +Status at step 5: {'position_before': (2, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 6 of 50 +Status at step 5: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 6 of 50 +Status at step 5: {'position_before': (3, 2), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 6 of 50 +Status at step 5: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 6 of 50 +Status at step 6: {'position_before': (3, 2), 'model_text': 'MOVE_NORTH', 'parsed_action': 'MOVE_NORTH', 'parse_status': 'OK_REGEX', 'position_after': (2, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_NORTH. Moved to (2, 2).'} +Step 7 of 50 +Status at step 7: {'position_before': (2, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'MOVED', 'feedback': 'Parsed action: MOVE_SOUTH. Moved to (3, 2).'} +Step 8 of 50 +Status at step 7: {'position_before': (3, 2), 'model_text': 'MOVE_SOUTH', 'parsed_action': 'MOVE_SOUTH', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_SOUTH. MOVE_SOUTH is blocked by a wall at (4,2). You remain at (3, 2).'} +Step 8 of 50 +Status at step 7: {'position_before': (3, 2), 'model_text': 'MOVE_EAST', 'parsed_action': 'MOVE_EAST', 'parse_status': 'OK_REGEX', 'position_after': (3, 2), 'event_type': 'WALL', 'feedback': 'Parsed action: MOVE_EAST. MOVE_EAST is blocked by a wall at (3,3). You remain at (3, 2).'} +Step 8 of 50 +Traceback (most recent call last): + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\huggingface_hub\utils\_http.py", line 720, in hf_raise_for_status + response.raise_for_status() + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\httpx\_models.py", line 829, in raise_for_status + raise HTTPStatusError(message, request=request, response=self) +httpx.HTTPStatusError: Client error '402 Payment Required' for url 'https://router.huggingface.co/v1/chat/completions' +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402 + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "", line 198, in _run_module_as_main + File "", line 88, in _run_code + File "C:\Users\arush\MIT Dropbox\Arushi Jain\Manifold\nlu_benchmark\examples\run_llm.py", line 20, in + result = runner.run(agent) + ^^^^^^^^^^^^^^^^^ + File "C:\Users\arush\MIT Dropbox\Arushi Jain\Manifold\nlu_benchmark\runner.py", line 44, in run + model_text = agent(messages) + ^^^^^^^^^^^^^^^ + File "C:\Users\arush\MIT Dropbox\Arushi Jain\Manifold\nlu_benchmark\agents.py", line 63, in __call__ + response = self.client.chat.completions.create( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\huggingface_hub\inference\_client.py", line 933, in chat_completion + data = self._inner_post(request_parameters, stream=stream) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\huggingface_hub\inference\_client.py", line 286, in _inner_post +uggingface_hub\inference\_client.py", line 286, in _inner_post + hf_raise_for_status(response) + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\huggingface_hub\utils\_http.py", line 830, in hf_raise_for_status + raise _format(HfHubHTTPError, str(e), response) from e +huggingface_hub.errors.HfHubHTTPError: Client error '402 Payment Required' for url 'https://router.huggingface.co/v1/chat/completions' (Request ID: Root=1-69aa5d58-453448530d1f68ae1f90fbff;232e3da3-6a88-4863-9dae-f8a74bd482a8) +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402 + + hf_raise_for_status(response) + File "C:\Users\arush\AppData\Local\Programs\Python\Python312\Lib\site-packages\huggingface_hub\utils\_http.py", line 830, in hf_raise_for_status + raise _format(HfHubHTTPError, str(e), response) from e +huggingface_hub.errors.HfHubHTTPError: Client error '402 Payment Required' for url 'https://router.huggingface.co/v1/chat/completions' (Request ID: Root=1-69aa5d58-453448530d1f68ae1f90fbff;232e3da3-6a88-4863-9dae-f8a74bd482a8) +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402 + +You have depleted your monthly included credits. Purchase pre-paid credits to continue using Inference Providers. Alternatively, subscribe to PRO to get 20x more included usage. +PS C:\Users\arush\MIT Dropbox\Arushi Jain\Manifold> \ No newline at end of file

    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 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V07_chain_sk.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V07_chain_sk.png new file mode 100644 index 0000000000000000000000000000000000000000..d58b71634afbdd8e6fa9c51ba51a4b6b18576ec8 GIT binary patch literal 19640 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 bfi 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 N44$rjF6*2UngCp`j?w@C literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V10_distractor_chain.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V10_distractor_chain.png new file mode 100644 index 0000000000000000000000000000000000000000..26add6a2251d849f22310c28e923f96caa575f70 GIT binary patch literal 22997 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 None: + parser = argparse.ArgumentParser(description="Analyze smoke workflow logs.") + parser.add_argument("--maze", default="V01_empty_room.json", help="Maze JSON filename used by smoke run.") + parser.add_argument("--tag", default="", help="Optional output tag suffix used at smoke run time.") + args = parser.parse_args() + + maze_stem = Path(args.maze).stem + suffix = f"_{args.tag}" if args.tag else "" + p = Path(__file__).resolve().parent / "results" / f"smoke_runner_matrix_{maze_stem}{suffix}" / "detailed_logs.json" + d = json.loads(p.read_text(encoding="utf-8")) + runs = d["runs"] + print("runs", len(runs)) + + issues: list[tuple] = [] + for r in runs: + label = r["label"] + cfg = r["config"] + queries = r["queries"] + transcript = r["transcript"] + system_prompt = r["system_prompt"] + + if r["summary"]["query_count"] != len(queries): + issues.append((label, "query_count_mismatch", r["summary"]["query_count"], len(queries))) + + if cfg["observation"] == "text_only": + if any(q["has_image"] for q in queries): + issues.append((label, "text_only_has_image")) + if any(q["user_content_type"] != "str" for q in queries): + issues.append((label, "text_only_content_type")) + else: + if any(not q["has_image"] for q in queries): + issues.append((label, "image_mode_missing_image")) + if any(q["user_content_type"] != "list" for q in queries): + issues.append((label, "image_mode_not_list")) + + has_initial = "Initial maze (fixed for this episode):" in system_prompt + if cfg["observation"] == "screenshot_only" and has_initial: + issues.append((label, "screenshot_has_initial_maze")) + if cfg["observation"] != "screenshot_only" and not has_initial: + issues.append((label, "non_screenshot_missing_initial_maze")) + + has_mechanism_list = "The environment may contain:" in system_prompt + has_rules = "RULES (domain logic):" in system_prompt + if cfg["prompting"] == "minimal" and has_mechanism_list: + issues.append((label, "minimal_has_mech_list")) + if cfg["prompting"] == "standard" and (not has_mechanism_list or has_rules): + issues.append((label, "standard_prompt_wrong")) + if cfg["prompting"] == "verbose" and not has_rules: + issues.append((label, "verbose_missing_rules")) + + if cfg["querying"] == "full_trajectory" and len(queries) != 1: + issues.append((label, "full_trajectory_query_count", len(queries))) + if cfg["querying"] == "step_by_step" and len(queries) < 2: + issues.append((label, "step_by_step_too_few_queries", len(queries))) + if cfg["querying"] == "subgoal": + if len(queries) < 2: + issues.append((label, "subgoal_too_few_queries", len(queries))) + if not any("subgoal" in t for t in transcript): + issues.append((label, "subgoal_metadata_missing")) + + if len(queries) >= 2: + second_text = queries[1]["user_text"] + has_recent = "Recent history (last 3 steps, oldest first):" in second_text + has_action_only = "Recent steps (oldest first, action only):" in second_text + if cfg["context_window"] == "current" and (has_recent or has_action_only): + issues.append((label, "current_has_history")) + if cfg["context_window"] == "last3": + if cfg["observation"] == "screenshot_only" and not has_action_only: + issues.append((label, "last3_screenshot_missing_action_history")) + if cfg["observation"] != "screenshot_only" and not has_recent: + issues.append((label, "last3_missing_history")) + + steps = [t["step"] for t in transcript] + if steps != sorted(steps): + issues.append((label, "transcript_steps_unsorted")) + + print("issues", len(issues)) + for issue in issues: + print("ISSUE", issue) + + for r in runs: + label = r["label"] + cfg = r["config"] + print( + f"{label:24} q={r['summary']['query_count']:2} " + f"steps={r['summary']['steps_used']:2} success={r['summary']['success']} " + f"obs={cfg['observation']} ctx={cfg['context_window']} qry={cfg['querying']}" + ) + + +if __name__ == "__main__": + main() diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/plan.txt b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/plan.txt new file mode 100644 index 0000000..b4259ae --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/plan.txt @@ -0,0 +1,37 @@ +TURN_RIGHT +TURN_RIGHT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +TURN_RIGHT +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +PICKUP +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +TURN_RIGHT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +TURN_LEFT +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +MOVE_FORWARD +DONE \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/run_log.txt b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/run_log.txt new file mode 100644 index 0000000..3215c98 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/run_log.txt @@ -0,0 +1,37 @@ +000 RESET pos=(1, 2) facing=NORTH inv=[] +001 TURN_RIGHT TURNED from=(1, 2) to=(1, 2) facing=EAST inv=[] +002 TURN_RIGHT TURNED from=(1, 2) to=(1, 2) facing=SOUTH inv=[] +003 MOVE_FORWARD MOVED from=(1, 2) to=(2, 2) facing=SOUTH inv=[] +004 MOVE_FORWARD MOVED from=(2, 2) to=(3, 2) facing=SOUTH inv=[] +005 MOVE_FORWARD MOVED from=(3, 2) to=(4, 2) facing=SOUTH inv=[] +006 MOVE_FORWARD MOVED from=(4, 2) to=(5, 2) facing=SOUTH inv=[] +007 TURN_LEFT TURNED from=(5, 2) to=(5, 2) facing=EAST inv=[] +008 MOVE_FORWARD MOVED from=(5, 2) to=(5, 3) facing=EAST inv=[] +009 TURN_RIGHT TURNED from=(5, 3) to=(5, 3) facing=SOUTH inv=[] +010 MOVE_FORWARD MOVED from=(5, 3) to=(6, 3) facing=SOUTH inv=[] +011 TURN_LEFT TURNED from=(6, 3) to=(6, 3) facing=EAST inv=[] +012 MOVE_FORWARD MOVED from=(6, 3) to=(6, 4) facing=EAST inv=[] +013 MOVE_FORWARD MOVED from=(6, 4) to=(6, 5) facing=EAST inv=[] +014 MOVE_FORWARD MOVED from=(6, 5) to=(6, 6) facing=EAST inv=[] +015 MOVE_FORWARD MOVED from=(6, 6) to=(6, 7) facing=EAST inv=[] +016 MOVE_FORWARD MOVED from=(6, 7) to=(6, 8) facing=EAST inv=[] +017 TURN_LEFT TURNED from=(6, 8) to=(6, 8) facing=NORTH inv=[] +018 MOVE_FORWARD MOVED from=(6, 8) to=(5, 8) facing=NORTH inv=[] +019 PICKUP PICKUP from=(5, 8) to=(5, 8) facing=NORTH inv=['red'] +020 TURN_LEFT TURNED from=(5, 8) to=(5, 8) facing=WEST inv=['red'] +021 MOVE_FORWARD MOVED from=(5, 8) to=(5, 7) facing=WEST inv=['red'] +022 MOVE_FORWARD MOVED from=(5, 7) to=(5, 6) facing=WEST inv=['red'] +023 TURN_LEFT TURNED from=(5, 6) to=(5, 6) facing=SOUTH inv=['red'] +024 MOVE_FORWARD MOVED from=(5, 6) to=(6, 6) facing=SOUTH inv=['red'] +025 TURN_RIGHT TURNED from=(6, 6) to=(6, 6) facing=WEST inv=['red'] +026 MOVE_FORWARD MOVED from=(6, 6) to=(6, 5) facing=WEST inv=['red'] +027 MOVE_FORWARD MOVED from=(6, 5) to=(6, 4) facing=WEST inv=['red'] +028 MOVE_FORWARD MOVED from=(6, 4) to=(6, 3) facing=WEST inv=['red'] +029 MOVE_FORWARD MOVED from=(6, 3) to=(6, 2) facing=WEST inv=['red'] +030 TURN_LEFT TURNED from=(6, 2) to=(6, 2) facing=SOUTH inv=['red'] +031 MOVE_FORWARD MOVED from=(6, 2) to=(7, 2) facing=SOUTH inv=['red'] +032 MOVE_FORWARD MOVED from=(7, 2) to=(8, 2) facing=SOUTH inv=['red'] +033 MOVE_FORWARD MOVED from=(8, 2) to=(9, 2) facing=SOUTH inv=['red'] +034 MOVE_FORWARD MOVED from=(9, 2) to=(10, 2) facing=SOUTH inv=['red'] +035 MOVE_FORWARD MOVED from=(10, 2) to=(11, 2) facing=SOUTH inv=['red'] +036 MOVE_FORWARD DONE from=(11, 2) to=(12, 2) facing=SOUTH inv=['red'] \ No newline at end of file diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_000_reset.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_000_reset.png new file mode 100644 index 0000000000000000000000000000000000000000..832c21221d1ec80f4ee3a7a4fd172b463709a502 GIT binary patch literal 14994 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 YhIe7jjM|srE|BwQ_0HscZFT4W0r4ikTL1t6 literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_003_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_003_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d7d9eb629a26c7288ca66bd45436c53adca252 GIT binary patch literal 14972 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 z z`t8OclSXOtvv8W%EErz{#y^^pwxh~}JxBjvZ*D83vNu$Fg}QK;*B=_bQ8oy6NDx!Y zsvH^X9}ANPXK`p`ZzDL~??6Ao&6%T6PFB0%^gtF3Y3eliBy*rl7{hJ6s zXJ^RB*QyRY9zPEkT^nEL^8NVcKNI|aw@LpG^fdp$mi~Ey|4Sw4B`8*aj#iLfm4JA_ zaS}b{z|w`9>ZjVawV(bIjK9zKIsSJ-<=@TF0Xz09bFE(n<3H_=MbdV|;n=peww0lK z>mL;r6{X@rpv?aq=$Z!IgtKH@eL*+O(nh~!VrnWT6iSwK&U{ag0A_p}=<++RZDcgC zytw$lMxoeeP!80ENS*bd8a<$`y%R{JW0xEYUdaI=(;2WO5au&|o|(3t`k5qpAKeey z1!*ZSoOcIwSd5Ne;;O_e*_`vVM0eK-dKNjSONVlbvi1tLKE7?Yph4_)iO2QYKW~8u zm9>^x2c1r5J#qKU9VPp1VoE9}iNd5P^Oua4(4c`(t^#sBtXi@Dn@kXX{(~wM97{+foiFb)++Y z^YbTJk94P=W{fNlggmHs7HTz{C43-XZhc_kF4A&PNF&Y3OwhfO6!5d|mCHUp3B|?Q zO4$}$y+}imw@N!7f?mMB{{CjK7%md@&_?*hP_qL;A>j8?PxF`31T*8#%x4e-=uzlG z`RJWR#y@n+E;rl03xdc<1{GoiL84Jm`i4eBfS#vW|NDN!o`1(k9C`WjKO769X+NQvF{aPY` p^Z+}OG54X0`<+AN#W|s<&MV9&G)w;z;2>e&7@2*Y_m%Ut{{dih%-a9} literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_004_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_004_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..6b406c06aaf0bbdae178d97ac31cdf6ea992a4f5 GIT binary patch literal 14968 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 V)N@Im0Avt!?6B3Lk^?SZ|39zwkp2Jw literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_005_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_005_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..78798a50dbf37ff0d7c67c5251d9b537337c27ea GIT binary patch literal 14956 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 YF;Rx7!@8YddFcFE!!t!++kW%^09)IiqW}N^ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_006_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_006_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe61ae08a9d407bcf2bf2d318f1dc8163d17204 GIT binary patch literal 14979 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 aAR(=HYwz{0PA<3$bn>{xv4W#6-~KNg3Yg~r literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_007_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_007_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..19cf1acec856d5f3e6d37e3769d1d15e04cf473a GIT binary patch literal 14949 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 B%uxUU literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_009_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_009_TURN_RIGHT.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd8d14bc71fe120fc6eebaa313da04e69ebb38c GIT binary patch literal 14993 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 NPZ^yoIBt9EzW~&a@r(cf literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_010_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_010_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..401355669a1462a6d474cfd6d672ca7268a66eee GIT binary patch literal 15004 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 E3x)=kcK`qY literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_011_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_011_TURN_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..6ede75ffe326405fa5c435a3c072972c0ad7b27f GIT binary patch literal 14980 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 bv6L3~K~~A(E%5+e(21jGj+7j_^xb~}2yDC+ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_014_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_014_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..f38311f4872cbe8da77f483cbb351c0f4380b109 GIT binary patch literal 14956 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 WSnuvn-3CU1zBpxmvh*|OTmKIr`kP|_ literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_015_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_015_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..6aee1031fddb69b21e646fed9f61343cb83cc533 GIT binary patch literal 14953 zcmeHOX;f3!+KyVa7KKukQNY?N%BV7ru~nfJ5fRD^K~Uy-o`X^q8LuJ&21t>MsDKE8 zFb7lyfj~rN0z?vK2#`Pskm=h8Z+pAi``r#-@48*<>knY9kh9M|dq4YqpZ9s6bNk{2 z{XHLveFTHS_I&--nM*L(wn`Z61HTVo z6X<7)Gx{yKmqzc`XTC5E$)t|#xtAFjIZY$YdmWLpRQ=Fm_tD4g_hEddTdkgMm-&vF zDXCLv_2k1Ft7JY0`HSU8soxx{*wc3jA%nYT6=$(e@$KrYj=V+u#iBO7bJgNs3V#s9 z_m%ONFK=E!l=>5vUqAZblaY)_6lY>t!)*;#71YWPiBNZx>V5XwgpTt-lqLa zZ}1m}-*Jr(20Qi9R$&+{dfx{M;G<(7+JN7eJ_aiT`};v3@b$00c()Y>``h(~?J(HE z?Z0@zKv8DE+pmqEn37|p*zdmdK4%lj=$*jUF5OTpoFl-Zv-WNd{RaC+90t=S(kI#} zZ%zv&ZWGXc69Th;04AZFGdem--v&$9H8KWU1KqRXp{}uMky(8GT6}$MTHXBBuE9ak zaB8{v0VJE|OD*s3i>zx36q2eK_G>TWE>x8jq@0(CTL|ssD73CnICA7j8>ybPP(z_e@j_NsRvHb}MwIh;{IGPst-{e~ z=Tgw@E1_lO>O)no-H!$;eI0iT2(-A{EkB?W6l>;7MGhQDI6umsRMU5NcV{o%f+wK7 zaiRGn%+>b$m18%>+lrACwJ671a9ITtww++hV&q~t1;<*Dtw%0Tc9cYMHrC1!tnv^r z!8StD_}1qGV7G;e_K2%CCaR5!IHMzj$|@?->Y3~*I2^~GP;A+<^T5X`DJi}jM!)_M zS+l}elM5Po?2QNR&jx3hY$}QCDf*=8{OHn6H4h%gL2?R>j9RZ+BV21&tgnsuXr;#l z6OU09UJj$WBdoc%UhFrwIpNJyfTi!*eB22|WGK6>nB9hnLe9L+qs^MvSF^*YL*;iE zu5Bit))eGRql1QAC*1Gm4~NYaO$bsst3<_49pQ&Mpschufr_L z;`SO)&-s2(u{7YAd{(t-E-Bteo{SBVp=(TKVmJiJ(D6IeVszwWcS=2@$U7AspYLbX z;q2Vp+}uVG&|Yddz~O`0d#PUscw?;OrVx7iR#SMdB&4L0J>rxk>$!|#(wGbN-jfs~ zoyAZ>yor%c;4OIgbj~d-;qM=g*+%X&;wbDZ?${pPbmraGhC|AM0a*1`Ghc_IV*L}p%pY{_gvlKNXD|EY{%@@-yhbL@$K^9sW5}Ek#L{))d(sIq zqpSHBYbT6oL0@Zyhxz5GKeb-!afFqAQVCnSH>EwLF)@`dB^X&vRw)i12{bps7pTwC zGMuxkUKtag5cDMiO%H%Wprv!nJSQYR2ZzIjj@ZG{1>WEChRNcmtn*Uquk{@Q0?J$` zRRZr})%~nLnCrPSoF!2wzt1^Scl>Xs+lm!ymtIn(Q-)F#q^GwYR09#fD6|_jTE?OJ z>MmUqxVO07daWxtYTqJ~$D)+BE5z3^M{8Us%l#(W)K>=_+lvWWi?#IE{xsz|GNYnK zlh&6H=giQT>)Gw~jk}~XKjy6%@ycG^u8dlWk-A6nANFl&N;S9B@a73^0tJ?Rsdl8Z zhc#;#Hj{T1zkng=(){5}|B^7qY$coC9=y>*x}h9c7BqXTB|p>eT%kpYLmCN5Z;khm4`PmXp8Cdmd2yt??n;h8 zs=hvml%k=YRR;%Vk zGfpO7`KBY}r3}ns9!v}0@cQ*v+Vt0-1tNC9(jz+`?uIV5i}~3YKaSeRb1Qau48q*IhMG!gM}JiR{Ktz8V;?fP&z%ROQ*>px|J_ zxJ;0&3GY*TCnu*Y6=Bw+P)o;-mMB-JK1=^n?+1esAO?A?m1e)6$sd_GesiYz>w;gC zkN@2&$&_0a^-bSku~@m6p5PaR4y&rTDWPz^1?DXqjJc_K)mD#*wp3qQld$57liWwE zhRdbR50W`=@r9VlD0l*N9H=?GaP+&x>EHqa7X!wv< zO-+rn-~O7^YuC0YxnFFdCr#_NS)r0%l*gPX_5FN^NTi|z=TT>eS65e6tIq_>HX$|l z2ne9kGAx}9n{g0amlsf3Sy_^4y_bD_jthP6a~ZeKm-Ph29d5`Ut2M7vTBxM*W46NV zD=43v{9dy2?-uuup;Ld|;TJ)E@ky^+xt`)Mi6oVJ?rKoQ(UK>|sKJ#i|4xmr{(fPJ zcCCl3#|s)Yo+m|Zv_w7=*CzvdkXTTR3(HY+?wUsdese-s7xxBLdepR_*UxG4DirKW zydPu)_SLeSXlsaV=MgmZ-28lLu`VH{i^E?v?P*>~NJ@HO853t;L&0jvm1~xjl?}k> z2GpdF9B~K<84yF=eD+LX`Dscv zag1h>O;zdca)9M9#cJYEZK%Hn24s^_u4M~OLs@xWU0t1jIOTI=?ShAE1laOP5X!4S zD93BMk49oJm~Kj`=5Bue=Ib9Q;LGC`aRbPYdRmcxhryoL_}x7Qu>F6a^MB#*7xDLd zs-$1LtdD!#%B^yR7Zw+j&*h!0vA#FZ^SA>K#Y>`^w6wHiL_|c6+EwGnW(5;?d^_~H z14$XcBb3=erq%CA$B}*YjEszwAIdv@S9vE+JYnX2bk4Bk;0sGK49}l$Tw3zkmNv=( zlqh2}dcOWXdR9Ntb#!#>dMvu#OR!>OWJIYdZltZDAvz-i9E`uSCf~fdxU#ycu<}Um zqsYj}3FMA+==zSP@2>~ZxB3ZxOiWDI(c%}su6X>l%kuln)4%TU`|+G=Rb=MA@{+^h zfb!lcIQ|oqSotOxB3P5-<5v=rlNBK_fM}eV5ek9CW*!Bx$VHr`Hn$(vZLZxpJu`D# zudHeJKDA4}F(-6#b8}CqstTPxeOgb|(AL(r>+M^Itlk%z?jBk1q4_+ryLQqeu^fxl z3lFbRF>4`|lBeo34AD?r6+>Clq%s$j=4u4q7&4AMc=A)~aP6d5czC#Qn2As#D1N5r z=gT^0?Xy&{opD-jfZ2BJhqsHdEGK<$W^|~`f#VRWZ7s#z!Vm{#wqEF-KSU1s3va(4 zZ+}2_@w518abmW$wH1(0#I&KM^3z_os^&t>45m}e+PP_X9yO_A&Xy}6^}N~(=XH1} zSUM+m;3#mvS&WqxWuMkqZ2C3wh5X7F>DfRya`E&`TwM+NtiTa)hR8xpvy)jP z^`8;7sj>0f&|VECc>6463dzCa@ssXZRRWKbSqVaEK?Rx z;6!v0i8T->Sz$0zeckOC9fcs%M>+4cNf8N&M7MG=DwSHo4FC7{to!>FJTNL@!zRM@2qvk>e>qlN&dZ zJZ~mLE0A4H#0c04)>j%$8SUxrJ9n6W#NBe8);zU{;Erw>qA0~uYnLO|;XK*CVuX}) zcBqpLlEa|Q7$G&y3N6O&ZHeyO6Mu&WL**#Tlt*zUFA#~GAANz`Q{#Rav`QuCRs?>`O1!TejwvC z7=4p@W>yWktmf$FchU~|&YyCBFX9tv?cha?3@hI=Om{`NW>f`h`$Vx~J)0gfrA0dC zcg36mRBaIbuuH<52v_Zro4sNT#l8~Ze9U$xe_%zA|G;mYS5ub&N6RA2c*+O+lv z(@{Uz8_Ab5_pHY2i;A5tb|CgdOBCAGRY$nd-Oc8O>#H5=MUC>SXN7Yq^A%^U`w4{U z`8Hu~hUrARLJi*7#y%e!ov5?&=Cm&*QSCm$X#2!@d7X{)>5x|$CF3`2m8!EVYNw+u z`i8_Hu?{HJ@|aT3Qwq?XsL!frpQfj$$EGcGi{1)WK&7AidTDX?77Z!f6b4prd zqw*H!)LBocGD#riIRM7VaJ?$TAlt2d9)3RaKN;heWG*gTfAq^If#i>jgjP4Kz-f;gSscDTn9_9PD~|Ih)!1z86cuA&9k}+9)_*mnJ6Y2X{)Sq z1`ub7UnpjFF}&onAFxfoHS$zC1+`!QXhL>W)9Jga*kL ztW<(uCvFUL+6fdUw}rnRPU|Vo=hh0kOYs&Pwufj!$C3Yq`g7OMRTGWyE;1?NYWL7- z0US1eJ!!S4SXxcH?+v5Rt$c045%mK|-hO)Pz$F}ia6qXLZwk(H*E1R1D6Y`+Bw`2V zGM68QjT=0Ci*qikpH=CKqVr;J-;zq8g)f4A<1tDMeHSO?CtC9^fK9GA@O&Gz%1=Uc z=Cnp>N%Xk_sgO!-tD(o90{ktnr{Lm6tOa2fyQ{^KH^)11pSK#GtEww04&Trh+=JWS zg&^^K*4Ob$goKIqw3>-%3Fw)zT62Y%w%pv9&#cJ^WUa4W%3#DRQsYe?hbv;cJR(xR zm_0!6Kv7D9>vfv@i#(?{BnLHxc#F5-3iY~+wade94VW?=Rs{?;U>g_|bYEW|zMMg5 zoUM_H6=&K?7AdKl(58byqH}ts&viU{#H~DJy&WN`FBQ2`Xe0f%_|Kr|`3^L55RlGH z70-?>SO|Z7?9pEfGxLdo-%QR-#otX_)(> zL4b@gs@qW+OWbRu-6g-BZ3@K?+ps2CJ3%Bf7+Im?M_MZ8=}r~5a=NBNYOi)|thMKl zF0Z!97AJtV0I}!;_Ic8cQH%aX=NL#ML9L1erLWS(8D=x?rwS_xUV8q5$IQ2xZ*(%(FE ze6_`q($(F)m$cp)+{PT=p02QYDI&%CKr09Dtc&49f@x-P)oCbFGGT;y(L)UV*!^xU z@d!m$fNNg6YVA(BXU&txZ7dlj4cYm%9)@J97Rm5J>m82`tRqSMu!e=Gpb4`4w|1Oa z^EB^46YU!zK3Dv0PA1t_T)%H<2*U9mn=odkxq(4EMD>{&jAGDi!Bm05R~2*n_H7YK$?O>G&+~yE2q(-c zgK{_Vf$=*bU*gD!PD;T*(eB;5(=#C18VE0TeHP0li1)(dkMtEWps#?A_Y>6YadmZ( zM7kI_eSb<(&&7Ir4@kF8001~Z{hAp42q`dk-+tTRru*{N59{i5__gMrLv2B5`;#e2 zS_(3$ZC`pTGN{XYpFIm(TWNrxr)# z<>V_NS8}Bi$HvCi$inp^o}Q9!Tkz8QAY^7wf{w1yXazK(@n?%n`o2V=y?xWI|?VnwoayIW2F*^;3kAwBgoGw)(L#ZvUGAqoXReO^lH!7BxN$2e_=ydew&v#mE^0 z-|;*8AK8BAy2}O@9ZQe&67FVnrnwi_sq(|wOVoOy>QhSoZgB9w>A5*nipFrnatAHZ zJHoNkIfBPwra5~mbiUIj>aLa~rxqLGCLg$y!BHOgG$1}&arDBB0B=cvvcEW_sgO7F zzLpS#_NSxuK;JW4acOjf-;k(qPI$X~MWZ5*u9zmBD`S_>_xz&vSy9-*Ls*YN2Y#g$ zXb`6l<&HvYcL>^6P^&pb3V~LS@6wB%g!P1$mX>yc!F{<5OuZurDJ7R*-J~xoQR{hJ z+L!<`q?79vJpG4rjVC{;X)+0!vZAf(^t!23g9Z?%8tT(G?S!wrSlj5Y z=N7_c?Sie@gR+SAHt1AygSYj(GPwt)07?3`ru|w7?mGeQcL@W|&D5U7{nBU|J4ZRM zYfg|vdx#9yi1M&{be(RFWSDEQtp>JsoClyg(`bO$cxzGa)?3*5uo4F_>19k{K8#n0 zOG-+j7eyZ^+5R94Y;o*Sv_p8)eslaRgENTc3_e88dI?sdR6S)7`twg-pTa=S79)+Z zZ}*a~^C_gKhVJV($+VY=X_B02SU3%Cq}_pLx1t-NNG#eh&L~FKRp7T+z(5#&=Q=br zLe;1*FNwo|BvFW>Xy z?EXWblnXUnpjMFVqM(Ws$|qpai$?KtPE964bft4b4ziadysU;WZ(t zCL?1o!UtrRzx2gFJlFpx5%>$Xx1Z^Y|E@n%fXmnqXK~nQT|g25M?eVx?RrZ0yOO}Z z?(Xh}!=DW~?1^?1f9a0H*Y3*JgBa&ewdfnq*)LX*f*ew0x557>@uWZ z4~hZ4!Xupgo^C+o!&mBJ{lkp!TZ}c~n;m%(k)srBMMW^^6?K865#QN)VXlzB&(d+O zFxL7nCH&7A`hEd;Q11Lq2F;%#^}nKoWBy?RsS!UihK~bI5{Qv20H%$~Xu&X!Ehvfq zqc{EoaE}9UcRmOp$w{7J{DUBB&p2-)j2_K6?nK7x9tLY??Ioh z^J9r1<-c~ga^-WtR;6JWDb$J&15?)>KM{KX3<{cjP&(Jq6`Dkpvz%>O%2g=hN)y6$Ep zV(U6J6rbLbwBv>WwNGRnMQG|nt~=*$g+*JEKUBb%9F`4tKpXG^!iRxK;}ZUY&vB7d zqr9q4+qb+EeCLqQ<)pw&nzgazr4jDjxjZ@v88m4fNAdxF-UhjkE03pHSv$@cBoQa1 zDs&d3U38WXR)7V>Z@tFnU#O~4wM;7ReS~}A304Sm>fKA5A*_7!!rJHs-s6y`^v0N1 zCDa^V!1rUdWUswM=y?VNvg>Y)egK2nXNSa{1PgXd{knlBbrkMt4^E{eD&(pKWNoeJE;HrDeDnr45;y*eYBDA8@gURQTxs7 zfeZ2d^+7>FvyULF%OBtI`fVon9|-Cn9i@NqSpRWG{XfGqm;(8wsEd!uWa{T#${3M9 z=K;_NwLq7tKVtO1*_M@sFN|{P8^8muG-r-Y^J2Qk^U|&N5kHm2W|lK03E*VC;l41p+-z^y?F7$KWpkPwZFPU5%lQbT&Ya@!2)ZOyRRVCc} z1)7_s_1YLtMTSN+^wG0`Gy&6#J8&Vy1a6+PO^YlrX(?%ZrIg!nWBpPi)ey;<+M&Cr zSd*3IOQZ&;?}x!^B&0I{z<Z_3n}^Qgp*LYE^W%8^Z! z((LSPmowJ*Q@)?=R}<-0($o|K#*MDgQLih3GS`84x_G=ov#h-QEKo%<4E;$SuC68C z7g9ohu*hzD#emAK^dpg+`gkZ{50J<$v&^2^9MhgH16~wArxqz>EtrXhG+Pd+_4Zki z+YHPF9F`qBcM2czx%|u)oKvpJcNZ2ypst(7f27IqUlbnxe-Z_O-Mi0}TV+8+As|3m zCN*x;es~4=wyq|sNU`!Dn%D~br^}atcmnxl)&(FI>>~6Zd0!=VHy3_GE6-DSTOw4A P!@fRy;mory?XUk2N#~ri literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_016_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_016_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5b40cfb34b39db2486cb2433a10ae994bc883a GIT binary patch literal 14992 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 CX@Qdf literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_018_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_018_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..a55fae58a6f2f5b9cec4455fa4cb57815225c787 GIT binary patch literal 14488 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 Dr~7-V literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_019_PICKUP.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_019_PICKUP.png new file mode 100644 index 0000000000000000000000000000000000000000..9518279330d69199a00956d51e354629941bb806 GIT binary patch literal 12510 zcmeI2d0bOx*2k|>MMaB!twKS;sZ$jff<{DHweD3wW#4g>L=XvEkSzg9)los}f-zt~ zYZW0tln7x7L_naDO+`QqBtZ2tj(45cE;>teN1GOtFtXIM~MS@Q!uEpkhxPiVlIC z55-1?V`9TY|FkqNBswM(6M?i`XJxr*&C;W>v5_&h2*mN9zF~=pMkDI|upBVU?8x0d zF%V?*Kk&~qbpBItEvv8gY~Si0e@)zzlJV*UPB6wDDQzjn1)6^K2}5+0+I!ciCY2k! zBltUGsnI6}vt1t4d+t~^|G?p8*DXty8tV@24x2vb^762#KWun7>+UzwU3agi?#UK@ zv1qh(9cjb2J&O*_?hQh-SfgThfko22-cpj}L|hy?P!+$sz)mol!BFIJ(daxCi4-bR zY4Fn^DAmFy<}v)tP|{Z6bO@UNFB~K9&__ZLt4ln|YQ99n-)jCW#=ZUpXNR*XIlf*x>f72Pq+n7r|8(hRhHV>}eR8~l6u^i^L0!_kt zZccoAbh1aF>2bq5Li_a63?4kQje7Y|7)oboc#Ht89HWbyAKQ{;j!4mTrUc-JX?QYS z)g!SCElTkcakV4dnL2ITn1c(CIZ35%c-2@y^C|&Eb)&0gfKlMCWcCv zW>Xd?tD8+RYe+5ye@xH}2L++fXr_Xp(?qMpw0vod8Sd>9DUq9udNW`{@12*W^2QQ} zBt@I>Eq43^b>k$-Tu0r7U1k;veiCL<7NnC&-!vK;;!i9$N)25WIqj;iLXeU&**)Os zRa&PUTJPlKG*N?g94Cs}^0l!E%C`K#xVX615*pw4qP;lOb+wm&RFjZvuA69ao!m_8 ziQ_FjNG7UZP&6+dF)00GS7`K*H%T&fnxa;MOE1_WakQ>UZ0`>XWGKlD+lf>4Y#RX` zqqBsb8%#G!EtH*OOq>%D@Ph<=zl3W)&XTTXNLQyj32=&@FJz&uHGfE|E?B`B@}QWg z_eo1Bco{hz`2t>Drm0|}xh+sP>LXyNnT*AaPxKy4#OE%BZhOia4i>nP>PysbPCKm$ zEy}kmZ74s>8!G&v(?5p&D68j$0JkCqFE7Z?Q+uVzywU~af@le6z&){+FI1#VoK7)r zV?a=I<7fWR?T*7-7w!G3DxJ!qyQHM#;_bwyzD|0-b(Wo9%`rt&L7wti!4(2SEy_|o zSJWwLFCh!RoQP!<72v&!^4T*|LqCt47Cc9sM=A+CLQXtX5>QjGs_v|fc=IRsta4Qm zvz;gz5@(;9oB_3M7fyfRIx@32D@EPc#`!)mQS!$-{49kJH?c!F<7N>}Q|OMFbgK<` zT9}vTU&tBqw3ivDx`Pdbe|g3=`K3_NlJ^O&cnBTHkdCj#Ck1Qee!-!8u>rRijs?wb%(w~asR-giF(4k}` z&ExK9-Xn+hF5XwNvu#egabO(d*v^0x(x&fSR*cQ4hJIKcIZe0%KW>vU{)*QJ?+i1# zQMgFoX<}=_fStf6fhyA$X9C?mGj$yfUfUF;-jTpf;v+ZN zy@;UcUr?O&qJP(oSBXW(F-g4bd05B345W)zF_@R9_NFAZlUsp55zONp3`!ilCHmpQ zGEtho*-CU?LjO`BuvwccT-<1kNDREe)hshe?n#z7z|MJ=aIPgdd;(s`Phhx%5dADxe zI#Bv@f0yP|Dv?OUZuA*(9xrQNo`nlVb#xsmvtfrj#oCgZ39?T^z-@d!%m2gp`&)tg zN)4Vdc(Svj<12Fe3*NFh6?S1rQ$D<@Mr#%Pdp*k^!JD|0p;e|kW)ueh%4EtpR|o{t zfVhaux~PR=;<%*CJ{`m2d`@SW$4&MdW z+}ud*4Txb|hhVYgi#IEF`&1td4W~I@&C(BWx0hR90S& zeSCWT!WUwBFseTU_G|ZS*uW;cYkeHFolqm$47~<{AS~~1omFI7SY2=ILgQIePZb5% z44kSNij)DHQ^BvzK6GY`}=R8v>l}2 z|D|IF+YtXIU7Dw$7r^pry;WRHpDqZ54rB4i$mO7klR+zCK#(9w68P2WG!nuJr^!e9 zIPWc1=*Vf1@i|^Z&GGrP>;)@aE}KSF)_7zz~qJs*4w3KJh^RTGNc?od8o=$*Hs&v*b7R z(i?`jA0DRNgWpkxc;q;_T}k9dEiy7TN;7~SJm>H^98R8k9MB=;L~Y^?3v^T(j8veJ zGkAusl1hV_0h7gYa_mlSH04K1xi*62n1t6iPVX~&?gkR6REGnaWbt7xziv1{lGxos z0T?72hBoSM41PR!x#5Tfe4)He68dn#DNBO<1d7mrX19i$yf?y(3U~G?_bVqENVKrxJ za@&CJyrGi?ko;o7O1*zAqWcH4-DsC6RL%%`MTMttNeAETz}>KCc6N3^jSpWp3< z6W5ziIj7JhYd>^*H%R$RjDna$JY4+CVclEq$RsyK`-nox*Qp1XTunDOd(XN;WbP3& z^s@oS>s_{ffq@Z`j}F3e2{E&MUUOu1PXv)fT01^IzSHwCs>8`|hJVckX>8&iMf z8y|oFH9Q`#-y;T9ccr~=IHjM(+0>VD#YS;ILsD8)mW{PPtSz_%|I4!`f^Y-;M z5v}?-8&*(oaQsry-`u>@$H!+g92^1RNUyY}BqII1y(9B|(p9W$L&bz9rvoiE z@STn#hhxn52mOY_6>G^`Kybgk1z0F0MKdhw@WZV2^YdGw(*kw48bFEh)-MSD2TSSF z*65Mv_dq)T@mue-H5{;k?xO3I?UaujWK9TsRMljEuKvB6VXaDHo=jJ&jA~!+NavEZ zroj|=U+%1^tqmxx8Lf_<6cGrR2f50%NWqp-_Wo7W1PJ>qq;Mt=eeL>jQ{^QAXc{znt zG(1B(b*EKtpYCNE0D9{{3dG`C&M%2M2W7%*XcAiPE9%e1@Y{w}5A+?aCYD^E4PWjs z0ynsqS>72~vtmJU>A)9=gfo76NB6-l?jpcj0tD=!c2%E;siH_DNn!X+HwNqp3jSkE zOpJ)DQ*)UBxp}Duo7xAw2&!iVj@FfCsRyQBn`cv~Y`ii^DCEH?;Pfq9921$n7$)y+1DnukE)qJ|0r2G`Ecc{ro`L;TR@s<@3=yY?xs^;^n?~ zUaMf|#bS~9tRjl0PHV`;p>RONs_MaUR4=E5DiVoi64r#2W?ZknSsGz=s!bfnE?$l# zb6Gj;@VK}NKox8%-}YYXWU(?5+OH8+EafmjW#Qe$R1}iO=Ue9H<{qxxv3{+kr83de z?Pp2d+RW&Mr(2cE>M2r|_H$AO6!N=l4pz|CKtVGb8orJwf~myqe}e9Qj`2SH{##oC zUqH?TZySysJ9eu*Of3Fn25(9EuR$qz{qI48H2@95F~-b0v?*%FPJ&JGLXl}kZ){Bf zlKhA@ganp0EK3CStDE(=4D$h-a+T7_UO|)r!xig;W0m32iYeRl zFS}f|{_COh)$gF!T0jWG!^4fczFlNw1f+Ea)-xUCRixt>41vvdPHLk!S2P2Q()j|9 zyDX79qc#ka><0 zA`?5>kI4kA=0~>2HX^go!%^ms!%1rq2%E|y7BK1}xnR@RU5lXk!8LNVntq}EDiQ0M z1?T)8-4PKH8$m#)R#tiglFD zSH%bT8w;v!$ofw}r9mIJ((Moyi=9vV6_3518}>TZ_LhZHx&Z`j`3R`MzcqeyA#lfM z%Vjt!{_Rck>`y^E!WBi@M^Ne?X8FH#k4k#=!-b14C&v0jBUG;A>qgK;ac01x73LI? zGYLm^8WG_N6@_NrpL}v=fhd8NqPcDeGRNCzAAI4vkcMVE2LXi%$r9ex1^;vLa%A9? zon%i)f4^Q#@xzx{l9RM{L#xY27BrI<@2j)1U`t zQ8SI2M>1|QMSE=2HJ74z5(TrH%0Uch$fm6eEEx^zX;5(1EPrF_GKy;87IvrVRSM0w zBt`w)L-(E1fCgN{$h0(rz72MMoMi32HhlbOp(}#Qjj!N=C6uQ=IJs_EGIC8RQE7Ty zBTYebirM^1D;Iz<_yIvqqSHkMt1vnVJNjjkj(HrMk+enFaMeNmNawBW8MWY!II72V z`$?_XAJ0VbNJ&gX9hB{;6(>JFGyjs+1$Q&eXs^}zgNj+J)}E9!8rRXRbS zpD&u^5Z_yfqPw-W}v#GySa-6CTxEApH<#gCqTPU-`krDR@{z$(3aQ@XwbJG zSw6`-q3SeL&Ig8wd-;r3CtbScvbn?N_vHJrRlA7>1f)p7hEmxSM= z#+ejvW@Oy1<3B+^xbdW;!!v!ax#K?}-OM_M^M33y4;$mg!MGZf=Oto08pTGzS?znc zuwe>SfBP3y?flD1%r8azjieYLx{8a77r(u+?__&>d%cYwiwWl#f5PN|@^@8I%%MYD zZQ36X#(w37pE=dy1kzQ|==5RyeXT$V(CwJS-tzKtz)s}yKYuMg{{p0Wwz>4$Dk{~j zqN3ts<^J1W*7TUMSW}gfH9uBL$SpdP;Q02w43J4aedzz$)(`gg!TSHtEATh%@6?Gl zXPfLKN$rVn+McqTyRxnfQyALohKIxc|K-2;GwIC@ChyACQ-03Prrpij&28C?h=sJhd-vY-Z@N)dSLgU=UUqgioIZ?wZA1@# zqpBKMY+m(yFM*8k-aZj zn_v>#a$ARn!Zs_eEfalrbFV&blUwg-lAWmjbQZygE}S9C(oJL;DkGGp->HaxaS1-F0@%_-u!<%{{XeBJpcxO zSM&e9T;Rj!|JfDz#*-nC*wnsJDicF#yriV<^`KY--0v5NBj*` v&12BMcG4)YQU~XD(4~fdgJ54dTWgrc2u#i6y$uD|fcETg*gV?0!EfVkwgR&_87vZR8T8YmBkPi ztwkz3L}W7wmLgvh78N5~NN@>}K*AD82qC%u38-zqe#`v-^q;9SW`=W_o8;u)_de%+ zpZ9srxdZ!m>n<={06~!M-aR`GLXc)P1ZjoNp9jt)i%{C&U>CmgaJUN|6Hf3A^@p5% z!-IqH;Xwi4td8^#4GX~IEX_8Wo7tGIJ{BGx9A<|=oOtsIGkho(anB>770mKp@E%kc z1nDnP|INYXJ_5gGZnJmCwnHbgM7@DQLxdQ?D6g|sYn^sdh1ZTf+xFaNeiYJR_Q|&Q zzmMPZ^2W!_d1pztzxg_#@Wkl_6o2<;KWv?!N6|Qby{Et=ou#qui`?;TdwoxRVv@Nq z*(z|IcH-RQ)c4PZ?tK<);nzf+YI|mSDy&wL`<=aHbnw$v@?WHmD!~>;E|#0)aie2! zLLGtT>Y4@zaD)uBPw7C=7g~SaSbu43T7YD1GE5$8CD0{hdU?^44aQ<)mP_u`<0EKI zXungR1_UkkeOjgmL6iQ1tg!vI@U(dV2VUXytKY@1VCkcl075 zbrYLWICjoC`UiLznVk|lenXk!?isR^$aKjW`>8Z$`nmCN(~yD(t3qYHgpA(aUX_5M znkdcCi|*6(kBF#@R!MSmUoteIwd%X2s>Yq++j0272)sZkr_A}v@9ldVuAs**XN>1wxjSrv zmVX5siO@zY*@Z?7X=Q25W7-{sF{1Y64`Ua= z`bb4EU2k!}`H6je)yq+h`fZD=p%F{P*VV951>SfAT`R(LPqKLQ8qc_ZB?x4!P zCcjp8=OFFbczcfYwu)CulXma+b`*v$L0{8}57N+wV*6c7qu6WkDUyqXyEkC(vb4DA zrZ`hI_E-}gXta^6y2+{K?nPsyw;6r%nTp4o?zff=6HAORUiPpw9C3F78z;poQ>wU8 zfi=@(ES5ff6azEesM$Y&*p=(OWR>33`%#kk<__)alJjLP|yzWMBa>tZH6?Vc$6E> z8aI)DQP@~;b98PY zyCSeDisp^)Tv}RMnz8G~M(&ygcaX;|S8#N#IS2M<*=#IlebP1hyonXj;YH|7+PHMc zNm6nDW=c!|z)yIEb<5DTCtX6J@Ibzo0YA?3%n@qWO1|mE)cyH>n9Z&sJ;y88hMoGB zLZMKRfkQ30Di14b>vg2--yZh%HrujgOTYgs7y@*0X#;H~E8VS58S$(S^_t zcQfzbPbBLOblNsCnLD3!ukI#PvZOIR{vja`RYm32h1Fgj9xEcx8Lej{vhUov)68lv zqOSMDXObhVXr!=!fL}!whTWn_+tm6q2?rZRNe=M3c@FW`jF&QIb`>YU4T4tMdLIRR zDSkf4YVXFkC<4jer5!7zzYGoz<~=-iL3Z}ED5bl39$|v*p5a#LdNDh!sL1oSMLBEj zUPVb{7ad>c89my_Z!lJk_!_r154F%}vidWE4@R8YcvX$;FAGkKT0O+KA0NN^3fX|`0qW+Ttm{K0cHKR0L7f5_ zbJ6Jt3`V=MHQdF%7gx0~@W=Y%XOaGmwBrfgot@^?Oi&!TdXV_;7)cafxhhrKT7gqf|eoVBPcu2i_H)sY;AH7CX?X4V;niDr4>~jmLtEjMGqE@b7 zv0}w6Nf5VySH+z>k?MtVq}UD4nDfV#Qgi$EkCfxbs(Snn=Op~ao#tQLx4xV0KSbc$ zU8Nm^x};|l6BCb)ZMsj|aZkGY1b{%c6OYU3=`jK2Iw|He%j;c1QY_|=*@!KQ(>1Ra zM&1_+k1xN!efhSCk6iT)5(dKU@_Iz+EiF!KRy-IR3nhbO*?PRJHPHiGS6AmB7|7yo zDm_Lu~;cqQ}EqstL)2@zHtyTX#6L{5^-50I=x1*$(Xk?fQSPB(LM zikl+7h!I8BEo6lS&w-$`tKW@pVFVt$oQR_NI^U(!y$zG^pG^7e@Mhs}mE2NY$&*po z1gaWkY!0BSY9t7I7{q4+2HENI8z|HV4+cdb8eD;@)Cc!_0Ta5gHJOzzsI zJ`ToD0j|0{T`;4b0gY%@7yFxxvua+vDb2f-6RQyMZ&GldgPY-mwb}Du{CWjY^75_9 z0cV6hIy!{NH$kJ!YF=ChsbrBN_|$4ZuH(z)On3T0?pS(NYH5rpkTG5<5{bq@lYb4i zx8|PoBR-+#u;G((eny>EeEEpFtK6loTO~k!2yI;Eo@Ie^&YPkOkg#0Y?wYS{kVXOk zHrTr?pZ(=UAQ!eRnh5Tf(S~C{YAK8c4Y;X}4lYNdAxsZ+#%qX!9z4549M#>n=zdH7 z2|S6iPs89GAW1f>v-jt7B708olaSNC&CP{^b~jo5#V;cqsyLyn!>u|tnV_|%Ya-Ojf!-U^y|5##a*knNC?uu>y$PujJ|Hf^O*4!DW;eGI_O_CY^O39$kKlfX~_ z8L-fO30=k|VPnN?k2$(irw=9+v<_d~A~qN#YV1x@U&OVt;w&I3@PS~7Rcoc{k19B= zkK`KiyN;`%`m0;VAAHFNH;0$^X(JEQ!F}2b16@1m(|iO1AJtA_)(CPu=%dN_3lUfV?aTO-`L6JnhCNA+<;tl{i+WH|Oft;(K!;gM{x8^lDi64oZy1j1sAKX}BA&zN4g>;$ z6_z8(Qt3F-M$RBslFs6Sf>JS5l$)Cyb6d@`^CoM@wsLgLs(pq8@2%7|`e7ktz6*qd z8!c(!r+eVm1AT{ogASfqRa#+5Z2|m^3p*@yskkyH@6~N;F6wQIl~Vb?oLg#%l<}sD zd6~C|P2Xvqso^jMSb2{MKh^YGr=GA-=-b5hnC}_~ExP3#x8Agr1E>nI@A**GoDr*^#rdwNEeT|up$E+wyGTEI*c10?b z)5ckY&9i+MIC^R?tZH?0cTckMU$5h@#a&a=X0F9o7*ni@7DPH`8CW)W7~f( zjYa)F-!BI#(saXyftzX>;_sT;|8Aw`?|D7{9+ZvTO^Cptsm=^FT^{~DUA_V6G9C_$ zkD6f{KM@gs5E5QP5x5Xt9L~yTk9W5Lo(v}@6WJ7S0^r$j+O)8(xmhit$7RNu%m~Pg+{q*R9X?bOBLere6%lyOo1p?@hxtI~`!iU^-9i6D$S@ zx8NwSyGD{+QcGiYsp4KAO$;$=0oEEvT-vZV5a%ZMs5?CHE|UJrC)QQOBH#${vx0X&ay( z@5HRPGXj5>wAerWR=u0m)q680TenpWE7vgUED{RwaR0en7-O|}22wLn_#;B|TwWpc zm2hx$Gf2B^zieG=>gTwsHzJoOsNXGx{mrwaEI=<;+ew+t@t#MHJaXC$4Ep~D(VzE}{;;rp zijD#nr1QS>)K)u|;tLI^9?~)kDX6xO96G$WoJR9%1)gMs!$JtU8l|SYV84c}Z;2?* zJ0id~FqYn&nd>keET5p@kwXo@rXYVDe9o;=gwmnvgXH~1%&V{bbz3~t7x2HCO}pl) zk!;dJ)~2ccdg+6tdm#SP}!D4uF4@VkBs~CBapWdYGA!IaphU5X0y#DHZ&#PsAr7HKlkX@2XFm96} zJRDf6>|n3+1RHzI=V|D#4Tz;@$q@)!QHFlb?yB*x(DcYXDurxE)~+im&wb$Zb+kgf!NEqEY43xU$! ziBs&5KV-nxc@iXD`VT>*s>7P;TmlpFBs@lt3S7-vuD1T7`qqwNGo(tdBlSKCD?^_w zkku>u7lD3gZSYfQB6jK;5!}|dC(nYP{P(`?zw>kds`DQ%Qb0bJW2Z(MEN%Nx_BaT# zan#5-#)y@Ol49mVpyM5#HFm4DGi=n`X1YM2czN@df$iZ?24nrc5{IOW`Nwrugahp9o@_sYe8jFAv9+k#DQ;qa}f7h&-g55TeaW$gKupF{-sx_#tEHPQ&r_2 z85y}qaR9TO+BMYHJcA#w*I^bvg*~vLPcU0_0Z=513ui1&3%3`Tna^t<2yZT0YYDh{ zBIOk`H=L#K6+|*HpU(_AsVy1;UU)MK6rkn*Oo*fZ$o1t>P4kp!$AS8%--m*GqN&$~SSs;uyCp8t;s7y{AMdgxq7N5{S!4-JOjpW9TKOk6i*=~FD3yh>|OO%Dc+;xoIp0b@I9X|;I(*Z`G{Uhw$E zd2J~E2J<^dU?HkEEx#Mzq6oZJ@cjI4Y@)QNW##?(E{4g8K=O^S^8eG`w$|=pL6}~8B6Lf-s1SxX;||Ut&<-X)Gi=^ZUEZ5bN`N#?LMdf2f?9r`Tzg` literal 0 HcmV?d00001 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_021_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_021_MOVE_FORWARD.png new file mode 100644 index 0000000000000000000000000000000000000000..5f793664fadebd82e7c49e7d75ee354bc8972830 GIT binary patch literal 12494 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_194_multi_route_none_wrong_keys2_1197.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_194_multi_route_none_wrong_keys2_1197.png new file mode 100644 index 0000000000000000000000000000000000000000..951941bf7f1a816707b0ba88b569aa64491102b8 GIT binary patch literal 12070 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 literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_195_side_vault_sg_dead_end_rooms1_1198.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_195_side_vault_sg_dead_end_rooms1_1198.png new file mode 100644 index 0000000000000000000000000000000000000000..bb59a35ee45c91b35dad2589aeb09c348860f1bf GIT binary patch literal 19264 zcmeHv30Tut)_z>EW5rrjDx#@UtAc>aCR@;PK?I440)h}L1w@2^340c+RVxSxvIq!K zSt7DTWZx1|0a+sih!7yi9>bQ95VC(a+L>uPYiBy&_wWCa=aCrlTkh}PbMAT1d)||q z$80TE{6Xyx5C~+2)!_ptAdtmpAdn?%mn{WLz>5j`pd;E2>46UV=8`+)=r?G; zi%9fEuXA4px?e(hA$|39cJ0*Jv*XM2XtW>7L|516&qwGWFL~!>8OWKMP(6PNpux3FvvGuwOCEX ze-^8PUzatWt&{ zpZvqqo+ZycO|0I*=kYScOu0ZU!A%lVtY)iUF++T$umlfB!W zcvqp4FRO<(OdqD=<_c-mQvsw7I^E%Awxnb=Q#Myhb7qRVctu2W?Z~L8tn?_8$8QWR z^D{+nSK{xc&E6Z!FzsX6*3y|z-K|B%2yrp*odd;WvZt86wp2c9L`jkjtdxD3is3eR z4b?@~!qo8+j@QMDJFtT)1V=6o^6Ww(E)y)jeY=k@DrNBI@W8-*{12ap3Y!qFRaDE* zw6}haj_`!dCb60jvP(@23sGCNE!{QDr-^}|aD!UIgP*Ikx2Bp#Fa-huQ79B{9v&{m zoNQMm&s;-K6x18`$(}FQwb8}0tnI2@b#aJ1d%MgNRu(c&bVO-1UNXcA!V7|EO0b#l zig498G9hSH%QDE5tPw)*So*U5*)%~eFaO!TOW*I|ci7Q}pz?X1h)#i-%Y{@#SKOt6 zGI8H@S{gTwm|;W_wj4A&{kWl_fhVTO#Ro5z*PBnp=v4FCd0_0jeVF9xANC4=h}X(5 z+icE_iMCn3e7TYjVSlr=D>rs?$?)00Zui8@zRDm~1{@A2&bFG8=F6fn!x}84d=4pP zFM1sy*|q?3KSL&E%FX$6b2>6yIlWvc6HqA3IYx<(Gq;2kT&vaI+k2*`$jeUDL4*|t zueOG5VdWOKYDU?XGy0|yzW(~_c76!+JrpW|llU$kgZMCpiKc>i2U>6)6+ zSZf_CIS($6OA}O$X|t!7LfpresX{7RZ&*m)@^0TS`>Jm$uvE(yu}3tXPMewW3w^1v zF{YoJP`cW}9npFaDW7D@w9Uu&t<;23M_W=NwkDB6TD(u>**mw(hS||(f^zCnVrrmM z0hX*>x1D$|RyGWmWz1XQE4eX?BH5wC>7Of)-GpP#ar`Nq^^^i80Y4qa)bijwQ-bYW zv0}v*sB=+<czoMX)## zjEVQ;hWW(?_?uak@w$KmPbFW8xlOuoyoiWThDlj)qPTYqcB2m_AC_msu^0R^_9p0l zQQ_NHF}PJM)ShNr$Y(8xg;ZGO2n7|jS=cb$(Q(rMWQ{jM+>-?@b*qmWOjeJac}il6 z@|aFlUG>*jtPkIY9*Q)|n#PQo);hzU4$czf82{=N+gGX{Et`ftEySleV&}eh_O+~C zE1XMxU19>bS5&LMl(sM>Et}{sl04IrDr)$21R^(a2caFkEr>ju8gW`$kC#}kdc^JV z+QZ7Y6E1LY4RQC^JW)6v3%6^;N$Gg$GKn_ith@2^C71I#@gz)U@aL&l>kx82LKUv& z>FF7$?~@KV!!?ycfwfkBp~1Z~iRrt!gWx-x>uIi4%{q!aV$_GWqxqnCuXIOJm}7hH z5Z;WXZ&4$@9M(9<4bbAUw2TLamp?2S@{bNX!x^3fGikNTD%tCdod!i6347>>q0Zae>p)sMBL(lKu5NAtH40}HqwmbL~v*M1ro^l-FTcb2IbQ|HEf9ENOH5S## zDz&D!Q8o>hr;0SDEy?+>$lr`SV|xwz#cGemUwA56Y-~x)U4O+|i~SWeH3n|bC7m!&{IR_d+3wDYj*ciGd z7~%6hE`4v@QF|Qtpu8{`KiguYYI&p=L_(w}A^m7q8SaRw8Yj#D-D@&8`;f8DFt))m zQ2!3%=IE~I5F7u=NK8)~Sv9-Ga_C#3esXb{Ew|15G`Vc5dKx>O1-&!YvCOXT%Nuo= zI6JcJSd^|@M3OsI9Y9BYC9K#l9M8qb&+plJWR#zvyB13d>&q$ACag_(fq-f5xKW8= zHjvP9q^syh=}#eN4FDbh&q5qW;>C;zjoswAV$vGRgyCR62BW`Z*(btIcQyL$vMm-M zR7D7c%i=K)82g3s2w{8{zJE{kX8CFh#615PGScoCH^8ok51g%HzH&OuzxR6GaotF} z=(%`!SR?(bkogx-*YD%iq1>2d!ao)ZPd=1%m3{HXxp(TCwvXBQC$zkdU# zNNvRK3OCzMxVi#^hLeBrQ}!1QmMWer{@R@R8XZz1c7(w#4(4LFDJ5Vuouh6Eue>sT zI-Fi{>3-v?v31noLj|Ld`zZ>OidSFFZQG2O3-AcDkXE`&13UqBIJhHy<0-Qm@4$Ea zi|Vp9L2xpU*g9<;;_ZOjeJ|a54umUD4wV8za+YFVO@>(qgv+8aJ%?eD!%m?dUDdcNr+dfjSPOT%wXjGVGX6DyZZ2C9iw)#2%@E^;6cJp;k`Scb zgf;LPZqCCUBWsSU!9SbL=~AECIxXxBOKz}eh&DNO-dJtl$a2K|^Fgvfly8IOj^V9M zN{y&SZp=pEsU%yNaQJG}m2SbBtIBcvk0u~G$B%KdPbmiLdcC5P|0H=N!h9?^7O_r~ zG^XycL%E^xr} z9U^qS@97SPSaadCg#b7WHU#MjPu`Qf(`p&E`&#Y6LrzAK3ildn*2^}8siwOsl{p<2 znYd^qalD0_^Gg2?e1ovgi0uE0)V(J@gA<}0M-uuESTEH*HS|NQt@>$HS-@@+lZxPQ z$DvbE%5j2Sh#et$ukcLCk^L=QUF4c6zqVZjd-`i86MtY%1!5mQuy8N^6|qL$mb~_0 z*Tk9|%KE!^$4-HGrb@we=D42vK4OsqrtTR&_$_qiveIhH@NcPM{j&PqaCT?!acq%^0wc7%+bhP|DLw*T!oDeYukp80mxFhW?BIt4Xe$e8~m;1hBsnK zs<9j1jg*=e13%ptiKjYHM4d+$9V7Q!5u?vLSs{a8tPeN1L#HZs3Fzv#YL->Q13`~8 z?s2WXj6AS)>panCNek|y6!Th#0(f}P{rs$oypHv0q=r7X*hGzP(4Zu$S^{-f$O>Xy~0jsZvC)8c;$g-YJffGX|r(I&Fh%HaLFzr0T(K&q=+k5 zW1WtZ1DhfclEFc`CjlGi&tZ798jsx@lrjKbL$@7N)vkMhLEAzw=RuVdwA6oZH>As%9!joWph+sa;Y(iqrTYGYvH zrFY&VTJ~wGW0^ynZnggAn2Q0%~@8$Cs%7rTT+bZ(J;}tR5sD9N6ket$yooCKK?KXVmoHeBByJQT^dvo&_-xY6^R9h&oqMB=)9TF2QKs4(uPAXzPh0u{cp+{ksC zZQClW_zFB9DuT9`%d!j!6j0>S2nXFpORT!BY#snzTJ5SYL#9H$7QVWHIk_KZGPp!H zcwZAfx*jB6wb{o#(?UGnvDwyimmnAap4JDpBPQ+auLy_kATF6wzeb=k3O2fmd+2K| z$@;E_m7N-)jbB4Y;t@J#qzDZ9NZKj#3^&4+_i(Vn>_&you_65jW=&Mgs2-~z8hepr z%$*Z%BVl6tZUAIg8)FStWGo?ou=sN4!>ta9@%^7bF8kirO}IDIspZNE-#h_-Iett}ejO-@rSX`DhVv3A*2Z z3d!}c-M$bUDB-@2Or*Bb-!{Nf=4OIr9$ZEG21@6BNi4G#~G zgyNRWMAzgf3)y^8ml-ewSF>xL+1w>a01?7UB?e%@;aTrHdS$lEwx z#8mqUsse~^ey%?(ZNih)L*!iCLP!on6yLu9G9XuEft&+4?}&3R=D&Yy4}hPhwJZcZg$ezB!Hs|`x{%Z9lg25mrzgxBk#Q4Udu$JpWjXeWsuOx z*a?HVQVGu)?VdY#?fS;I>5QI7R}Z$iw>j5NZshDe>X8>OF1Rgzlyur#3vYpj8WhI6 zdXk|T2_6Y4mZtYkEC$2-cgT>Br~Ov6(*M~^cG;2W>^xsHW83^sNUyN#NTZadIJl|6{oJ{8nL%!y zJ;mOM^*+|a;(gxDExjhSPI{%b>(tdRdW%c0H1T+7we{=0y_LF>C3|;SYNGV?yz?-< z7A-BITBU7mZG+NL?G)O~tC=Iyt&jaXhfjHlTNt#Cj<|a0FRloMA~2FR4sgBKUdAO= zd_AP${1(xRLc$%L%HiF!3ok39+7uk%<=_3P{u)N}|IGCMUmN6;w9sl-WWW$07*FPO zo)bK3I+fEIXX)$f0rt;mF|qtKa%8UA6Q+06#wMf1*^u})=52g`>Zzf}4LR*|DWybU zj0&`v$D7Li0~vZZg>UaWl|I_FJ^sj+$XmCHs-&Vo^1MWXNlr@g8neqa-oJnUsE0?F zlT|rBIfY+h0#eKFEs1$N-&_+E3bnCRJ7!ubZfxJuE-%TMcv3SSB&O}$IW|K$I6FJ*<>8T)3NIM_bj6CK6aZkhjL5uv zyPSp7>Bc3)NN#o*REY_Hs`qXr$83kw2B zaC(HRy<1fc^Maqg+8f(K~eu$G5@YRt27mL3I8r9VQ9=r=wJW*`IY*OO#?s82>x+i!G7b!o}4_o z-pF^NS#@F|2m)Sx6#*U|AXeP`Nvw#Fd!}Tc)XH}9!7+|Bx44yzaDwyx5`8{ZRxT;V zI@h>|hMGi1Miv(@@@{$g^1!O>=9XrYg07`Ym$uK$%&d|-^_{zL;c@V0PY;Ff*>z8) z|8>MjN~yotG{kZGNlpWW!qd~!wULM@Hy4HUpyG#rTZr&mc?2j1fS-|3P=Ef7GoOoC z-qyusTTruMG(JNR=X;D1*i39pODke!xoA~u<%E|fF`QhyO$E&)9vH+HkPmDqtSm9A z7I@PW0tYRm-BBG3Mv4xh+BY-E{S*MggzD;QEN`8 z!yy#F)-{TY9Ix{(0iUXG2b<5{Cjj+&`~l*9@54+t=d50!HN{hjwkn;pxR4p7;Sw@( z@$pGb)=QP?C+(F_AKy(W&+9BsK&%x-SiC7|uUr6$iyK&&Tc++DWga?oWcpBrKTUKp z&;Ce(ZqCgQPXLx)s~X(urg7#naNqy0aq!;yIB5zD6)vYhc2gU<&Iq>U6N#L}P^c|Rl|6Jbne?61zY&x57 zZo151Y!LDTZl z!ifMdUd~I?47ce1yY@YR!;{l1&gSKf~8KH+XMF6>I64i$HSJv$)07-W#U zVX(AAmX^-_WcB(Ag~SiN>OU3yDJJ52GX>Codq@|gMDf=^8i_)L^ z9iZS42*f)U%lIK;5d?C7pWk-|I`vVY)CT2{XbgNxM^Ga+r5`9t%D$RRmDaA3iWsFx zc#5Hq$%hkawjTudfz*Ja(~b%>H>@_>$ntr~WHGv7CBBe z=fC-86PBw1Jp!G7eS-!km20+4_9Piz?73&SLOr!a)_9Xefm19^rnlp7`-W9A)@_79 zUawiKI`Bi-9F1zNDrXY~;=)u)Rdz6AZpgcR1R+0X!iLEel_5yQ^?`-z#|iQY&$$Tg z7lL_&*Gya`v7gVTMOuihDn_|Y?Ilq8D+*ZU*QXTM6uooMIW6J8ezlI3O_JQW3LE{N zH;aBgi5x{L4+%#Hq}q(-`qVRyb60e_q-z zbP}}*$fv5-$Uiw1eZ)Z`Q)yqKTBW}spyRmAK(QzTahnHzcx<1;dI1$52z`EskZgGI zoyGW^&>Y3OIvpAo%D+aM(FGHLUQx4T&tQo<79CofBMS;`P$I{rNsXqhDf}YUOjBu3 zQZ|w3$#LtKrv(9FCQxsI4bb7UGnb=;lVR#9Q52dBEh!pvCY0O6jNKU6zg!iW(|Lh~ z$4T5i9O}11F>B+Nvh6MO3#?VqYS!z;qIS1KNWxsRu7t84?npZ8-npdL(OvB+`-t74cp=7_!E@?eMTrH8L%=-9a|g)I+QmScCmT$Wc9twe+<%35!NQ~~S)d$yIxaUU{sBz|OBpVcA6|V06cKQ=w zU;vTk`h#uUijTpDKlatXpLccLEbgMw?5Ya%h2-)lPX=UOc>&)8 zj3P(;5{m(5PTSi@Xy)o2Sq|tpNAG`1U;`iqDxg+?mQEF3ad{>!iJ?s6t}IYns; zzYAQ~(cTYmJcCzqq&W6*=V)m_PjBx%klg*va*s7`v(Yb5*H76*rS}P#pXSx>zTzUj zXw)KDP0i#3AAL7DnS0kK31e~oF9Qc^1urzZXk@apI{fS2FQTR!GO{@8G)?kij zN`GK$gEX7u6h-hJso(Hpmhw|>`OjGjg4wD{_$7`41^n$F3ixf^(-_e)AkvvqTG^O=0+q_=C=@dH0Af6B4w zKLMz_eJ<9{B&6&r@xg;3JNfk^npd;4w?}s;GzhN#*YVLuqyL@d9)CZJ|LJD?v2^n@ z&Cc&XyZo0roc>-o`T$Tap}zlZ8ma!?ZGLTN{%!b6a}XH%-__l@b0^zAr*`UiVvc>z z_UPXC0xamC_V39L^w!@27->`(*p8SBIMzB;;5Gl}aThB_##I zYLoT!^}l^zcZ~ZWDxgGW#Su zD0W;;O-)G&Qmf1c^e`0^6qE#>%}cs_ciZOppNBD%ojY$|zj4EEUGr3aW**&0UPF8R znv;#+za_p#A&$BD3;gvPQPX=t?smQf5N-hBri2SDFQklF4D!%oXK3|sG}4^_xy*H@ zw3{lhuxZfLj{c}&!?4l7O!La14Q<$kkVZH-zrqQ2DPxuX9F`ERc{==sj~?Zi#rV+r z0{3jh&@lpqMAG#EIy@`!GDuwXz(NSRc>jid?TyE`At<_sX|z>VH};qS>4_BsdLaeiO5Oux zt2&QE4ViHXAAj0GYHNfofQ*c}KTt6Czt%kec2^-g-C`4DuaOBmw{T93%?xre8Bvxh zVS7VBw^A}`67Vd=SHqMbagpHh{FW=U>b%De)fXrhIlQ?HJ6{XG*Y&WG2DmL>^hc-C z*6&_Io+N~P1p$YaTtySuw6WY$A(>1BgMV9gw}QhY16oAWlUw4$Fu9p#AKqRInIrjw{g(kZw@qFQ(s zt(fk5hb-zOWs$Ix-X6;#-hfw!Jh4%z{y~Z_mt~SNRHlN@al|YwV!Qct$e~csfS6)< z@y+chlXu%@ms~bD{QgEOaWhvVD7Y@DMbNGi_3;inxPddoFALn%K#EzVNOjm7J=!wS1 zA9Vwn?TFg@dXXY9UUoi4qPHxAIIacmHn8>#s>Og+w;rj#6>_%W%nQYzKwHoXRxgTr zRM8`&D!=I9gA_>w_`uiot}`#|GtE(zG$2!=jU*y`OCV1UDLQYhpMdr|DULwho!n=R ze_ii_nk@FBPPt^0NYpc6h^Qm0fEWIzq4+(S1&M1=Y+8y=SH!d!2X-&(9+@AbS+`@Q zXddiN+H7z2ce4UMKNIXd+FsBFm$|@xF6SrgKcsO%eSRztlfN5l207*m9Orc>H)eCo zl{zvWx90|9)X%bP2VZfvZh#ze`4X7q%lReKUdF<>RP{ZVn!(OfA6sJ4VF>t5ps~7V zJU&F29jIL02DZEO_&@E5UAO9vYcv^$ep}8s8QpWYi^M+7tuK8FhwK%CX?vF3)_CxI zVr2{4BE&0nV%_@^y+(=R(~#5W!G!&K67XZL^xxrs4*p+@#gm@Aus zjNeFb93(bJGGh-NI^@)k!rA*&}ICn`B!&Ve8<8CzoVK2 zm&(A9-jW0VEI(>kxf=Czne_S%8?^h8EatsKw(DG3eWwk+#`~SB2nh^J1}yTt+s$9H z$Pv*NCK~}dGSRM2pjL@nmQoIQTCj{+vDUhJx{&dmsx1n++pqd25peuRk{L|GZ;Ivq z+ri-H^3Q*zc_vNR?3s1*=FOr^JW9>jJs5P$bl#QJoMMf3PlDQnz6)p>(5g1gxiYP! zkdmc{AC(9Ei<-|oW#f%!F0tG}B`K#>QB(OFEi}_A9g6m_wCE^K$*pyu^nRDIn|>>) zI1s7_^ei26szUgGAuly-s+>==HEkJ+a&PrPqdR&flu_}%n}ou7*ags{pgHO6yK(Y7 z8>qxSv<5_I=mXv8r`UB|uLGk?A*o}3qsi@eyt4nhcJ#Zy+mH0w`|mRX{aT7PvOBgW z+gqsAl=qtb;rE*T^7829l;ZbIF`%O+MLf=3p{$$*)K5j5->Wn(U;S?j=(cysmn_zW Xr+#~JAsuWz5UYc>2lD@T_R9YNMU~3Y literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_196_winding_corridor_sg_wrong_keys1_1199.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_196_winding_corridor_sg_wrong_keys1_1199.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0989f49d9ef67c7d7e962ecab016f8265e9201 GIT binary patch literal 21943 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�u)ilso2F{>3(H(Rx(^1f1i@q64S?0J+J3QZ^1;OM3(!pqpI8yGt)O(` zs0q{$uekO+%b5okPr`i-gBm3MuIxgyi9-%3c*aJpDRpyB{o*)4_kF4kg~$^_w-1G0 z91{+YRK=o=pW7M#;2_V}Q-gZH(<8bst4OIC>#9U?;-VQ;f2te~HAY^@n9~qms9uOI zgQ~qOR*zQwC_qtRxs8b`DHgiYJGZF3|MLuat%jIhBL0f3%+tWsjBz#LY_D~1n# z`*_y9E+6y45Tb*XOUtdza;_;pFj3uB>>uSJ8YYR{c>|fV7r%37pffTWNJ6+`gu?aO zUi-F)?HpO4O^?jX_me}v|<)<%L9$_5@Wk8EC(3=%CnL%6kG&5un zn%4SOJy$WTgR}d3G0@A~9Ga@qw6YH(=R~*A3EUo0aWmB z=>kpcs5UHcVcK`%<6-ctkq|58sLP2MjDijmDmvH1>_)nh7Uq#hz54KGX39y<8oZ^Y zmZqkrrBaXF8z~yjeN>y38j0>+Ma83DHpLobTrDMqtLIe`t6Yte*I_y5^qVMS$W#GM zOnE|qoDZl!XKI_)@o8Xxzee#liyHs_!S9iNe(x;d^1bl=g)tLPo;=yBpnx4!9kPi) zAgtv5nb7)T@3|@Nm3p_2qZ|}s1j$U&)z$6p5e|B`WBEjWmrx)WUt8>g^T(e~tx|u& zR-kQ(Q-WA5PERgPzrp2l_sYv>ytSFtjgE;)O5>KJRL7(TeDN9U{d*s44g^to>GdZ3 zp~#z4_{qIGOxn3V{Nxe<%J7bZZt?N)kk)&<^=t2%pN?ARu%3aGVo(@mwh!;LZ|~mc zU>&dOV*-KDE!vxS3mYGt9KkP6aKt&SD%9>WLmN<#@_46mlmTp_EyZ1Yy7MZaqCM1T z7Cg}*G3G}wX=Y<1E8-M}kuB)_+Z*Y?GX4j2w%H>4ugaKo{WQDW&&fVzlv zz|rzZB#VN44L_gQSTlgi`i1U_Nu&dmS-K|9A^`-}Uifxa=!`80|PtoiwC#V%#OYDQ(0gPgjwCL=Ft`9uL#6qf?@ny}XTs72rA zn;W}>vFbBiR#pB(ugLcg8uG%ttSW~AVxyp782H1lW18k<5T;xLYO3zEkgU1XgS$Wa_fUk132C6ry{S6fqr{VcJ9|I zIlzyLov!?XA2pz~JnN1M1cJQLzF@_K4eYG7jtM$_qUVp0Mpw;(V6aUXK6MyRrGyYN!GmNv$2u=icpkeS5 zV#HLr%0{Vdn!Rn#>yhV8;M!wm1XYZ2_5co7F`94!`-2l`U_%^}f;hE_R41ZKO)**k zJb<4!yA!y%L%sd@Df6}YbnjjGn0;884ImKldpi$aLZr_6AYih5jH;sY=xj?+dPF`G zn>3?*TI!M#6HWVr{P}-4LIL`z*#eWPh{~89ARqEiPN{M95zy=nTl3}XE(4?Dv~@DcKGe%mJ^9h9hPo-d|lpg`7ifVQquNo!$ zhJ{B)+D5yU5ciCZKJ+$BJ8fkJ=`FC)H8UGwTMk0|@C%!20DP6WktRE^Y2&N7>KBli zDZE>hxXAL(ln$`mqNAgI>-@ednb;imb4x)67~$>}U?+4X4RryXaaFX)?GuUOSrSV| zkL{5eFS{dpEzC>3yjvPi#b{B6*K%aO$k6x$TWRR-YC#? zNSh7aBS*gM?H1471Q6l##qV_L|MhqKuZ9Qyj}J+S7u^6J)sWq`t#x2vU{+bE*IW(tkEhsBJeV!kp9wqiq<_<;V zlGrr}v(mNJhKF9uZ(hr_u1l!hkW8dZk;p zZfyy#L=*P|;7`B#-$hocB%fJ?@zjw>EB;NFwI6%c8)l&v^?#Vb8nz4KO5F+Cd$in+vItw6 za;THdz^R`?3wDDZ)QGw2t*<&eU5O1bQxOz7zG-X^H7C63Y}pmx1)F$m6>4!3`Np|4 zCuMm3^*MkBoyq%*^{R9*p-)iX`Md)gn_m=au|?gF(+GO(7^uAUzb0=63xOEU8Q5aW zsYFat>≷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 Ks`Oi*oBshg;_4Fs literal 0 HcmV?d00001 diff --git a/src/v2/automatic_maze_generation/mazegen/__init__.py b/src/v2/automatic_maze_generation/mazegen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/v2/automatic_maze_generation/mazegen/generate_dataset.py b/src/v2/automatic_maze_generation/mazegen/generate_dataset.py new file mode 100644 index 0000000..06dc8c1 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/generate_dataset.py @@ -0,0 +1,137 @@ +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any + +from .models import ( + MazeGenSpec, + MazeInstance, + MazeLayout, + DistractorMode, +) +from .orchestrator import sample_spec, build_valid_maze_with_retries + + + + +def maze_layout_to_payload(layout: MazeLayout, spec: MazeGenSpec, report: dict) -> dict[str, Any]: + return { + "task_id": f"{spec.backbone.value}_{spec.logic_chain.value}_{spec.seed}", + "version": "0.1", + "seed": spec.seed, + "difficulty_tier": spec.difficulty_tier, + "maze": { + "dimensions": [layout.width, layout.height], + "walls": [list(w) for w in sorted(layout.walls)], + "start": list(layout.start), + "goal": list(layout.goal), + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [], + }, + "metadata": layout.metadata, + "validation": { + "is_valid": report["is_valid"], + "reasons": report["reasons"], + "optimal_cost": report["solver_result"]["optimal_cost"], + "optimal_path": [list(p) for p in report["solver_result"].get("path", [])], + + }, + } + + +def maze_instance_to_payload(maze: MazeInstance, spec: MazeGenSpec, report: dict) -> dict[str, Any]: + payload = maze.to_json_like() + payload["task_id"] = f"{spec.backbone.value}_{spec.logic_chain.value}_{spec.seed}" + payload["version"] = "0.1" + payload["seed"] = spec.seed + payload["difficulty_tier"] = spec.difficulty_tier + payload["validation"] = { + "is_valid": report["is_valid"], + "reasons": report["reasons"], + "optimal_cost": report["solver_result"]["optimal_cost"], + "interactions": report["solver_result"].get("interactions", []), + "optimal_path": [list(p) for p in report["solver_result"].get("path", [])], + } + return payload + + +def to_payload(obj: MazeLayout | MazeInstance, spec: MazeGenSpec, report: dict) -> dict[str, Any]: + if isinstance(obj, MazeInstance): + return maze_instance_to_payload(obj, spec, report) + return maze_layout_to_payload(obj, spec, report) + + +def main() -> None: + out_dir = Path("generated_mazes") + out_dir.mkdir(parents=True, exist_ok=True) + + target_n = 200 + accepted = 0 + seed = 1000 + attempts = 0 + max_attempts = 500 + + manifest: list[dict[str, Any]] = [] + + while accepted < target_n and attempts < max_attempts: + attempts += 1 + spec = sample_spec(seed) + seed += 1 + + try: + obj, report, final_spec = build_valid_maze_with_retries(spec, max_retries=10) + except Exception as exc: + print(f"[ERROR] seed={spec.seed} backbone={spec.backbone.value} logic={spec.logic_chain.value}: {exc}") + continue + + + payload = to_payload(obj, final_spec, report) + distractor_tag = ( + "none" + if final_spec.distractor_mode == DistractorMode.NONE + else f"{final_spec.distractor_mode.value}{final_spec.max_distractors}" + ) + + fname = ( + f"maze_{accepted:03d}_" + f"{final_spec.backbone.value}_" + f"{final_spec.logic_chain.value}_" + f"{distractor_tag}_" + f"{final_spec.seed}.json" + ) + with open(out_dir / fname, "w", encoding="utf-8") as f: + json.dump(payload, f, indent=2) + + manifest.append( + { + "file": fname, + "seed": final_spec.seed, + "backbone": final_spec.backbone.value, + "logic_chain": final_spec.logic_chain.value, + "difficulty_tier": final_spec.difficulty_tier, + "distractor_mode": final_spec.distractor_mode.value, + "max_distractors": final_spec.max_distractors, + "optimal_cost": report["solver_result"]["optimal_cost"], + } + ) + + accepted += 1 + print(f"[OK] {accepted:02d}/{target_n} saved {fname}") + + with open(out_dir / "manifest.json", "w", encoding="utf-8") as f: + json.dump(manifest, f, indent=2) + + print(f"\nFinished. Accepted {accepted} mazes in {attempts} attempts.") + print(f"Output directory: {out_dir.resolve()}") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/mazegen/generators.py b/src/v2/automatic_maze_generation/mazegen/generators.py new file mode 100644 index 0000000..3057d86 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/generators.py @@ -0,0 +1,485 @@ +from __future__ import annotations + +from typing import Iterable, List, Set, Tuple +from collections import deque + +from .models import ( + Backbone, + Coord, + MazeGenSpec, + MazeLayout, + DenseMazeParams, + MultiRouteParams, + SequentialChainParams, + SideVaultParams, + WindingCorridorParams, +) + + +def in_bounds(c: Coord, width: int, height: int) -> bool: + x, y = c + return 0 <= x < width and 0 <= y < height + + +def neighbors4(c: Coord) -> List[Coord]: + x, y = c + return [(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)] + + +def manhattan(a: Coord, b: Coord) -> int: + return abs(a[0] - b[0]) + abs(a[1] - b[1]) + + +def carve_cells(cells: Iterable[Coord], open_cells: Set[Coord], width: int, height: int, corridor_width: int = 1) -> None: + for x, y in cells: + for dx in range(corridor_width): + for dy in range(corridor_width): + cc = (x + dx, y + dy) + if in_bounds(cc, width, height): + open_cells.add(cc) + + +def build_walls_from_open(width: int, height: int, open_cells: Set[Coord]) -> Set[Coord]: + return {(x, y) for x in range(width) for y in range(height) if (x, y) not in open_cells} + + +def path_from_points(points: List[Coord]) -> List[Coord]: + out: List[Coord] = [] + for i in range(len(points) - 1): + x1, y1 = points[i] + x2, y2 = points[i + 1] + out.append((x1, y1)) + if x1 == x2: + step = 1 if y2 >= y1 else -1 + for y in range(y1 + step, y2 + step, step): + out.append((x1, y)) + elif y1 == y2: + step = 1 if x2 >= x1 else -1 + for x in range(x1 + step, x2 + step, step): + out.append((x, y1)) + else: + raise ValueError("Consecutive points must align horizontally or vertically") + if points: + out.append(points[-1]) + dedup: List[Coord] = [] + seen: Set[Coord] = set() + for p in out: + if not dedup or dedup[-1] != p: + dedup.append(p) + seen.add(p) + return dedup + +def generate_winding_corridor(spec: MazeGenSpec) -> MazeLayout: + assert spec.backbone == Backbone.WINDING_CORRIDOR + rng = spec.rng() + p: WindingCorridorParams = spec.backbone_params + width, height = spec.grid_width, spec.grid_height + + x_min, x_max = 1, max(1, width - 2) + y_min, y_max = 1, max(1, height - 2) + + current = (x_min, y_min) + points = [current] + horizontal = True + + for i in range(p.turn_count + 1): + seg_len = rng.randint(p.segment_min_length, p.segment_max_length) + x, y = current + + if horizontal: + target_x = min(x_max, x + seg_len) if i % 2 == 0 else max(x_min, x - seg_len) + if target_x == x: + target_x = min(x_max, x + seg_len) + current = (target_x, y) + else: + target_y = min(y_max, y + seg_len) if (i // 2) % 2 == 0 else max(y_min, y - seg_len) + if target_y == y: + target_y = min(y_max, y + seg_len) + current = (x, target_y) + + points.append(current) + horizontal = not horizontal + + path = path_from_points(points) + open_cells: Set[Coord] = set() + carve_cells(path, open_cells, width, height, corridor_width=p.corridor_width) + + if p.allow_side_stubs: + candidates = path[1:-1] + rng.shuffle(candidates) + stubs_added = 0 + for cell in candidates: + if stubs_added >= p.side_stub_count: + break + dirs = neighbors4(cell) + rng.shuffle(dirs) + for nb in dirs: + if in_bounds(nb, width, height) and nb not in open_cells: + open_cells.add(nb) + stubs_added += 1 + break + + start = path[0] + goal = path[-1] + walls = build_walls_from_open(width, height, open_cells) + + # --- new: expose mechanism slots on the forced path --- + pickup_idx = max(1, len(path) // 3) + blocker_idx = min(len(path) - 2, (2 * len(path)) // 3) + + # keep them away from start/goal and distinct + if blocker_idx <= pickup_idx: + blocker_idx = min(len(path) - 2, pickup_idx + 2) + + pickup_cell = path[pickup_idx] + blocker_cell = path[blocker_idx] + + return MazeLayout( + width=width, + height=height, + walls=walls, + start=start, + goal=goal, + slots={ + "pickup_1_candidates": [pickup_cell], + "blocker_1_candidates": [blocker_cell], + "distractor_branch_candidates": [], + }, + route_cells=[set(path)], + metadata={ + "backbone": spec.backbone.value, + "logic_chain": spec.logic_chain.value, + "turn_count": p.turn_count, + }, + ) + +def _route_template_cells(width: int, height: int, num_routes: int) -> Tuple[Coord, Coord, List[List[Coord]]]: + start = (1, height // 2) + goal = (width - 2, height // 2) + rows: List[int] = [] + if num_routes == 2: + rows = [1, height - 2] + elif num_routes == 3: + rows = [1, height // 2, height - 2] + else: + rows = [1 + i * max(1, (height - 3) // max(1, num_routes - 1)) for i in range(num_routes)] + rows = [max(1, min(height - 2, r)) for r in rows] + + routes: List[List[Coord]] = [] + for r in rows[:num_routes]: + points = [start, (2, start[1]), (2, r), (width - 3, r), (width - 3, goal[1]), goal] + routes.append(path_from_points(points)) + return start, goal, routes + + +def generate_multi_route(spec: MazeGenSpec) -> MazeLayout: + assert spec.backbone == Backbone.MULTI_ROUTE + p: MultiRouteParams = spec.backbone_params + width, height = spec.grid_width, spec.grid_height + start, goal, routes = _route_template_cells(width, height, p.num_routes) + open_cells: Set[Coord] = set() + route_sets: List[Set[Coord]] = [] + for route in routes: + carve_cells(route, open_cells, width, height, corridor_width=p.main_corridor_width) + route_sets.append(set(route)) + + walls = build_walls_from_open(width, height, open_cells) + return MazeLayout( + width=width, + height=height, + walls=walls, + start=start, + goal=goal, + route_cells=route_sets, + slots={ + "pickup_1_candidates": [c for c in routes[0][2:-2]] if routes else [], + "blocker_1_candidates": [goal], + "distractor_branch_candidates": [], + }, + metadata={ + "backbone": spec.backbone.value, + "logic_chain": spec.logic_chain.value, + "num_routes": len(routes), + }, + ) + + +def generate_side_vault(spec: MazeGenSpec) -> MazeLayout: + assert spec.backbone == Backbone.SIDE_VAULT + p: SideVaultParams = spec.backbone_params + width, height = spec.grid_width, spec.grid_height + + open_cells: Set[Coord] = set() + main_y = height // 2 + start = (1, main_y) + goal = (width - 2, main_y) + main_path = path_from_points([start, (width - 2, main_y)]) + carve_cells(main_path, open_cells, width, height) + + foyer_x = min(width - 4, max(3, width // 3)) + branch_dir = -1 if p.vault_position_mode in {"upper"} else 1 + if p.vault_position_mode == "random": + branch_dir = -1 if spec.rng().random() < 0.5 else 1 + branch_end_y = max(1, min(height - 2, main_y + branch_dir * p.vault_branch_depth)) + vault_path = path_from_points([(foyer_x, main_y), (foyer_x, branch_end_y), (min(width - 3, foyer_x + 2), branch_end_y)]) + carve_cells(vault_path, open_cells, width, height) + + blocker_x = min(width - 3, max(foyer_x + 2, width - 3 - p.blocker_distance_from_goal)) + walls = build_walls_from_open(width, height, open_cells) + return MazeLayout( + width=width, + height=height, + walls=walls, + start=start, + goal=goal, + slots={ + "pickup_1_candidates": [vault_path[-1]], + "blocker_1_candidates": [(blocker_x, main_y)], + "distractor_branch_candidates": [], + }, + route_cells=[set(main_path), set(vault_path)], + metadata={"backbone": spec.backbone.value, "logic_chain": spec.logic_chain.value}, + ) + + +def generate_sequential_chain(spec: MazeGenSpec) -> MazeLayout: + assert spec.backbone == Backbone.SEQUENTIAL_CHAIN + p: SequentialChainParams = spec.backbone_params + width, height = spec.grid_width, spec.grid_height + open_cells: Set[Coord] = set() + + start = (1, height // 3) + choke1 = (max(3, width // 3), height // 3) + zone2_entry = (max(4, width // 3 + 1), 2 * height // 3) + choke2 = (max(6, 2 * width // 3), 2 * height // 3) + goal = (width - 2, 2 * height // 3) + + main_points = [start, choke1, (choke1[0], zone2_entry[1]), zone2_entry, choke2, goal] + main_path = path_from_points(main_points) + carve_cells(main_path, open_cells, width, height) + + pickup1 = (max(1, choke1[0] - 1), max(1, start[1] - p.pickup1_branch_depth)) + pickup1_path = path_from_points([(choke1[0] - 1, start[1]), (choke1[0] - 1, pickup1[1])]) + carve_cells(pickup1_path, open_cells, width, height) + + pickup2 = (min(width - 2, zone2_entry[0] + p.pickup2_branch_depth), max(1, zone2_entry[1] - 1)) + pickup2_path = path_from_points([zone2_entry, (pickup2[0], zone2_entry[1]), pickup2]) + carve_cells(pickup2_path, open_cells, width, height) + + walls = build_walls_from_open(width, height, open_cells) + return MazeLayout( + width=width, + height=height, + walls=walls, + start=start, + goal=goal, + slots={ + "pickup_1_candidates": [pickup1_path[-1]], + "blocker_1_candidates": [choke1], + "pickup_2_candidates": [pickup2_path[-1]], + "blocker_2_candidates": [choke2], + "distractor_branch_candidates": [], + }, + route_cells=[set(main_path), set(pickup1_path), set(pickup2_path)], + metadata={"backbone": spec.backbone.value, "logic_chain": spec.logic_chain.value}, + ) + + + +def _carve_dense_maze_grid(cell_w: int, cell_h: int, rng) -> tuple[set[Coord], int, int]: + """ + Return open cells for a classic carved maze on a tile grid of size: + width = 2*cell_w + 1, height = 2*cell_h + 1 + """ + width = 2 * cell_w + 1 + height = 2 * cell_h + 1 + + open_cells: set[Coord] = set() + + # Mark all logical cells as open + for cx in range(cell_w): + for cy in range(cell_h): + open_cells.add((2 * cx + 1, 2 * cy + 1)) + + visited = set() + stack = [(0, 0)] + visited.add((0, 0)) + + while stack: + cx, cy = stack[-1] + neighbors = [] + for dx, dy in [(1, 0), (-1, 0), (0, 1), (0, -1)]: + nx, ny = cx + dx, cy + dy + if 0 <= nx < cell_w and 0 <= ny < cell_h and (nx, ny) not in visited: + neighbors.append((nx, ny, dx, dy)) + + if not neighbors: + stack.pop() + continue + + nx, ny, dx, dy = rng.choice(neighbors) + # open wall between current cell and next cell + wall_x = 2 * cx + 1 + dx + wall_y = 2 * cy + 1 + dy + open_cells.add((wall_x, wall_y)) + + visited.add((nx, ny)) + stack.append((nx, ny)) + + return open_cells, width, height + + +def _add_dense_maze_loops(open_cells: set[Coord], width: int, height: int, rng, loop_count: int) -> None: + candidates = [] + for x in range(1, width - 1): + for y in range(1, height - 1): + if (x, y) in open_cells: + continue + # candidate interior wall between two open cells + horiz = (x - 1, y) in open_cells and (x + 1, y) in open_cells + vert = (x, y - 1) in open_cells and (x, y + 1) in open_cells + if horiz or vert: + candidates.append((x, y)) + + rng.shuffle(candidates) + for c in candidates[:loop_count]: + open_cells.add(c) + + +def _shortest_path_on_open_cells(start: Coord, goal: Coord, open_cells: set[Coord], width: int, height: int) -> list[Coord]: + q = deque([start]) + parent = {start: None} + + while q: + cur = q.popleft() + if cur == goal: + break + for nb in neighbors4(cur): + if not in_bounds(nb, width, height): + continue + if nb not in open_cells or nb in parent: + continue + parent[nb] = cur + q.append(nb) + + if goal not in parent: + return [] + + path = [] + cur = goal + while cur is not None: + path.append(cur) + cur = parent[cur] + path.reverse() + return path + + + +def _pick_path_cell_by_progress(path: list[Coord], lo: float, hi: float, rng) -> Coord: + if len(path) < 3: + raise ValueError("Path too short to sample progress-based slot") + + start_idx = max(1, int(lo * (len(path) - 1))) + end_idx = min(len(path) - 2, int(hi * (len(path) - 1))) + if end_idx < start_idx: + end_idx = start_idx + idx = rng.randint(start_idx, end_idx) + return path[idx] + + + +def generate_dense_maze(spec: MazeGenSpec) -> MazeLayout: + assert spec.backbone == Backbone.DENSE_MAZE + rng = spec.rng() + p: DenseMazeParams = spec.backbone_params + + open_cells, width, height = _carve_dense_maze_grid( + p.maze_width_cells, + p.maze_height_cells, + rng, + ) + + if p.add_loops and p.loop_count > 0: + _add_dense_maze_loops(open_cells, width, height, rng, p.loop_count) + + # pick start/goal from open odd cells, far apart + candidates = sorted(open_cells) + best_pair = None + best_dist = -1 + for a in candidates: + for b in candidates: + d = manhattan(a, b) + if d > best_dist: + best_dist = d + best_pair = (a, b) + + if best_pair is None: + raise ValueError("Could not find start/goal in dense maze") + + start, goal = best_pair + path = _shortest_path_on_open_cells(start, goal, open_cells, width, height) + if not path: + raise ValueError("Dense maze path generation failed") + + pickup1 = _pick_path_cell_by_progress(path, p.pickup1_progress_min, p.pickup1_progress_max, rng) + blocker1 = _pick_path_cell_by_progress(path, p.blocker1_progress_min, p.blocker1_progress_max, rng) + pickup2 = _pick_path_cell_by_progress(path, p.pickup2_progress_min, p.pickup2_progress_max, rng) + blocker2 = _pick_path_cell_by_progress(path, p.blocker2_progress_min, p.blocker2_progress_max, rng) + + # enforce monotonic order along the path + idx = {cell: i for i, cell in enumerate(path)} + ordered = sorted([pickup1, blocker1, pickup2, blocker2], key=lambda c: idx[c]) + pickup1, blocker1, pickup2, blocker2 = ordered + + # ensure all 4 are distinct and separated + dedup = [] + for cell in [pickup1, blocker1, pickup2, blocker2]: + if cell not in dedup: + dedup.append(cell) + + if len(dedup) < 4: + # simple fallback using spaced path indices + n = len(path) + pickup1 = path[max(1, n // 5)] + blocker1 = path[max(2, (2 * n) // 5)] + pickup2 = path[max(3, (3 * n) // 5)] + blocker2 = path[max(4, (4 * n) // 5)] + + walls = build_walls_from_open(width, height, open_cells) + + return MazeLayout( + width=width, + height=height, + walls=walls, + start=start, + goal=goal, + slots={ + "pickup_1_candidates": [pickup1], + "blocker_1_candidates": [blocker1], + "pickup_2_candidates": [pickup2], + "blocker_2_candidates": [blocker2], + "distractor_branch_candidates": [], + }, + route_cells=[set(path)], + metadata={ + "backbone": spec.backbone.value, + "logic_chain": spec.logic_chain.value, + "dense_maze_cells": [p.maze_width_cells, p.maze_height_cells], + "solution_path_length": len(path) - 1, + }, + ) + + +def generate_from_spec(spec: MazeGenSpec) -> MazeLayout: + if spec.backbone == Backbone.WINDING_CORRIDOR: + return generate_winding_corridor(spec) + if spec.backbone == Backbone.MULTI_ROUTE: + return generate_multi_route(spec) + if spec.backbone == Backbone.SIDE_VAULT: + return generate_side_vault(spec) + if spec.backbone == Backbone.SEQUENTIAL_CHAIN: + return generate_sequential_chain(spec) + if spec.backbone == Backbone.DENSE_MAZE: + return generate_dense_maze(spec) + raise ValueError(f"Unsupported backbone: {spec.backbone}") + diff --git a/src/v2/automatic_maze_generation/mazegen/mechanisms.py b/src/v2/automatic_maze_generation/mazegen/mechanisms.py new file mode 100644 index 0000000..1a46fd0 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/mechanisms.py @@ -0,0 +1,287 @@ +from __future__ import annotations + +from typing import List + +import random + +from .models import Door, Gate, Key, MazeInstance, MazeLayout, Switch, Coord +from .generators import in_bounds, neighbors4 +from .solver import solve_maze + + +def place_key_door_pair(layout: MazeLayout, color: str = "red") -> MazeInstance: + key_pos = layout.slots.get("pickup_1_candidates", [None])[0] + door_pos = layout.slots.get("blocker_1_candidates", [None])[0] + if key_pos is None or door_pos is None: + raise ValueError("Missing pickup_1 or blocker_1 slot") + return MazeInstance( + width=layout.width, + height=layout.height, + walls=set(layout.walls), + start=layout.start, + goal=layout.goal, + keys=[Key(id=f"k{color[0].upper()}", position=key_pos, color=color)], + doors=[Door(id=f"D{color[0].upper()}", position=door_pos, requires_key=color)], + metadata=layout.metadata | {"chain_pattern": "kd"}, + ) + + +def place_switch_gate_pair(layout: MazeLayout, switch_id: str = "1") -> MazeInstance: + switch_pos = layout.slots.get("pickup_1_candidates", [None])[0] + gate_pos = layout.slots.get("blocker_1_candidates", [None])[0] + if switch_pos is None or gate_pos is None: + raise ValueError("Missing pickup_1 or blocker_1 slot") + return MazeInstance( + width=layout.width, + height=layout.height, + walls=set(layout.walls), + start=layout.start, + goal=layout.goal, + switches=[Switch(id=f"s{switch_id}", position=switch_pos, controls=[f"g{switch_id}"])], + gates=[Gate(id=f"g{switch_id}", position=gate_pos)], + metadata=layout.metadata | {"chain_pattern": "sg"}, + ) + + +def place_sequential_chain(layout: MazeLayout, chain_type: str, palette: dict) -> MazeInstance: + p1 = layout.slots.get("pickup_1_candidates", [None])[0] + b1 = layout.slots.get("blocker_1_candidates", [None])[0] + p2 = layout.slots.get("pickup_2_candidates", [None])[0] + b2 = layout.slots.get("blocker_2_candidates", [None])[0] + if None in {p1, b1, p2, b2}: + raise ValueError("Missing sequential chain slots") + + maze = MazeInstance( + width=layout.width, + height=layout.height, + walls=set(layout.walls), + start=layout.start, + goal=layout.goal, + metadata=layout.metadata | {"chain_pattern": chain_type}, + ) + + if chain_type == "ks": + key_color = palette.get("keys", ["red"])[0] + switch_id = palette.get("switches", ["1"])[0] + maze.keys.append(Key(id=f"k{key_color[0].upper()}", position=p1, color=key_color)) + maze.doors.append(Door(id=f"D{key_color[0].upper()}", position=b1, requires_key=key_color)) + maze.switches.append(Switch(id=f"s{switch_id}", position=p2, controls=[f"g{switch_id}"])) + maze.gates.append(Gate(id=f"g{switch_id}", position=b2)) + elif chain_type == "sk": + key_color = palette.get("keys", ["red"])[0] + switch_id = palette.get("switches", ["1"])[0] + maze.switches.append(Switch(id=f"s{switch_id}", position=p1, controls=[f"g{switch_id}"])) + maze.gates.append(Gate(id=f"g{switch_id}", position=b1)) + maze.keys.append(Key(id=f"k{key_color[0].upper()}", position=p2, color=key_color)) + maze.doors.append(Door(id=f"D{key_color[0].upper()}", position=b2, requires_key=key_color)) + elif chain_type == "kk": + colors = palette.get("keys", ["red", "blue"]) + c1, c2 = colors[0], colors[1] + maze.keys.append(Key(id=f"k{c1[0].upper()}", position=p1, color=c1)) + maze.doors.append(Door(id=f"D{c1[0].upper()}", position=b1, requires_key=c1)) + maze.keys.append(Key(id=f"k{c2[0].upper()}", position=p2, color=c2)) + maze.doors.append(Door(id=f"D{c2[0].upper()}", position=b2, requires_key=c2)) + else: + raise ValueError(f"Unsupported chain_type: {chain_type}") + + return maze + + +# --- distractor utilities + helpers --- + + + +def _open_cells_from_maze(maze: MazeInstance) -> set[Coord]: + return { + (x, y) + for x in range(maze.width) + for y in range(maze.height) + if (x, y) not in maze.walls + } + + +def _occupied_cells(maze: MazeInstance) -> set[Coord]: + return { + maze.start, + maze.goal, + *[k.position for k in maze.keys], + *[d.position for d in maze.doors], + *[s.position for s in maze.switches], + *[g.position for g in maze.gates], + } + + +def _find_free_open_cells(maze: MazeInstance) -> list[Coord]: + open_cells = _open_cells_from_maze(maze) + occupied = _occupied_cells(maze) + return [cell for cell in open_cells if cell not in occupied] + + +def _find_dead_end_attachment_candidates(maze: MazeInstance) -> list[Coord]: + open_cells = _open_cells_from_maze(maze) + occupied = _occupied_cells(maze) + + candidates = [] + for cell in open_cells: + if cell in occupied: + continue + + open_nbs = [nb for nb in neighbors4(cell) if nb in open_cells] + wall_nbs = [ + nb + for nb in neighbors4(cell) + if in_bounds(nb, maze.width, maze.height) and nb in maze.walls + ] + + # A reasonable place to attach a side stub. + if len(open_nbs) >= 1 and len(wall_nbs) >= 1: + candidates.append(cell) + + return candidates + + +def _carve_dead_end_branch(maze: MazeInstance, attach: Coord, length: int = 2) -> bool: + """ + Carve a straight dead-end branch outward from an existing open cell. + + Returns True if successful, False otherwise. + """ + open_cells = _open_cells_from_maze(maze) + x, y = attach + + for dx, dy in [(1, 0), (-1, 0), (0, 1), (0, -1)]: + branch = [] + cx, cy = x, y + + ok = True + for _ in range(length): + cx += dx + cy += dy + cell = (cx, cy) + + if not in_bounds(cell, maze.width, maze.height): + ok = False + break + if cell in open_cells: + ok = False + break + + branch.append(cell) + + if ok: + for cell in branch: + maze.walls.discard(cell) + return True + + return False + + +def add_dead_end_distractors( + maze: MazeInstance, + count: int = 1, + branch_length: int = 2, +) -> MazeInstance: + """ + Add simple empty dead-end branches to increase navigation ambiguity. + """ + rng = random.Random(maze.metadata.get("seed", 0) + 101) + candidates = _find_dead_end_attachment_candidates(maze) + rng.shuffle(candidates) + + added = 0 + for attach in candidates: + if added >= count: + break + if _carve_dead_end_branch(maze, attach, length=branch_length): + added += 1 + + maze.metadata["dead_end_distractors"] = { + "count": added, + "branch_length": branch_length, + } + return maze + + +def add_wrong_key_distractors(maze: MazeInstance, colors: List[str]) -> MazeInstance: + """ + Add irrelevant keys whose colors do not match any real required door. + + Preference: + - place them on free open cells + - avoid the current optimal path so they act like actual distractors + """ + rng = random.Random(maze.metadata.get("seed", 0) + 117) + + # Compute current optimal path before adding distractors + solver_result = solve_maze(maze) + optimal_path = {tuple(p) for p in solver_result.get("path", [])} + + candidates = _find_free_open_cells(maze) + candidates = [cell for cell in candidates if cell not in optimal_path] + rng.shuffle(candidates) + + real_required_colors = {d.requires_key for d in maze.doors} + distractor_colors = [c for c in colors if c not in real_required_colors] + + added_colors: list[str] = [] + for color, cell in zip(distractor_colors, candidates): + maze.keys.append(Key(id=f"k{color[0].upper()}", position=cell, color=color)) + added_colors.append(color) + + maze.metadata["wrong_key_distractors"] = added_colors + return maze + + +def add_distractor_chain( + maze: MazeInstance, + chain_type: str = "kd", + color: str = "green", +) -> MazeInstance: + """ + Add a small plausible but irrelevant subchain. + + V1 supports only a key-door distractor chain: + key -> door -> useless dead-end + """ + if chain_type != "kd": + raise ValueError("V1 distractor_chain only supports chain_type='kd'") + + rng = random.Random(maze.metadata.get("seed", 0) + 129) + candidates = _find_dead_end_attachment_candidates(maze) + rng.shuffle(candidates) + + real_colors = {d.requires_key for d in maze.doors} + if color in real_colors: + return maze + + for attach in candidates: + x, y = attach + + for dx, dy in [(1, 0), (-1, 0), (0, 1), (0, -1)]: + c1 = (x + dx, y + dy) + c2 = (x + 2 * dx, y + 2 * dy) + c3 = (x + 3 * dx, y + 3 * dy) + + branch = [c1, c2, c3] + if not all(in_bounds(c, maze.width, maze.height) for c in branch): + continue + if any(c not in maze.walls for c in branch): + continue + + # Carve the branch. + for c in branch: + maze.walls.discard(c) + + # Safer V1 layout: + # key first, then matching door, then useless terminal cell. + maze.keys.append(Key(id=f"k{color[0].upper()}", position=c1, color=color)) + maze.doors.append(Door(id=f"D{color[0].upper()}", position=c2, requires_key=color)) + + maze.metadata["distractor_chain"] = { + "type": "kd", + "color": color, + "cells": [c1, c2, c3], + } + return maze + + return maze \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/mazegen/models.py b/src/v2/automatic_maze_generation/mazegen/models.py new file mode 100644 index 0000000..f708ae2 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/models.py @@ -0,0 +1,202 @@ +from __future__ import annotations + +from dataclasses import dataclass, field +from enum import Enum +from typing import Dict, List, Optional, Set, Tuple + +Coord = Tuple[int, int] + + +class Backbone(str, Enum): + WINDING_CORRIDOR = "winding_corridor" + MULTI_ROUTE = "multi_route" + SIDE_VAULT = "side_vault" + SEQUENTIAL_CHAIN = "sequential_chain" + DENSE_MAZE = "dense_maze" + + +class LogicChain(str, Enum): + NONE = "none" + KD = "kd" + SG = "sg" + KS = "ks" + SK = "sk" + KK = "kk" + + +class DistractorMode(str, Enum): + NONE = "none" + WRONG_KEYS = "wrong_keys" + WRONG_SWITCHES = "wrong_switches" + DEAD_END_ROOMS = "dead_end_rooms" + DISTRACTOR_CHAIN = "distractor_chain" + + +@dataclass +class WindingCorridorParams: + corridor_length: int = 20 + turn_count: int = 4 + segment_min_length: int = 2 + segment_max_length: int = 5 + corridor_width: int = 1 + allow_side_stubs: bool = False + side_stub_count: int = 0 + start_goal_at_ends: bool = True + self_proximity_budget: int = 0 + + +@dataclass +class MultiRouteParams: + num_routes: int = 3 + min_route_length: int = 8 + max_route_length: int = 18 + allow_route_rejoin: bool = True + route_overlap_budget: int = 1 + route_asymmetry: float = 0.5 + dead_end_branch_count: int = 0 + main_corridor_width: int = 1 + + +@dataclass +class SideVaultParams: + foyer_size: str = "medium" + vault_branch_depth: int = 4 + vault_branch_turns: int = 1 + main_route_length_before_blocker: int = 8 + blocker_distance_from_goal: int = 2 + vault_position_mode: str = "random" + mainline_shape: str = "linear" + allow_small_dead_ends: bool = False + + +@dataclass +class SequentialChainParams: + zone1_size: str = "medium" + zone2_size: str = "medium" + choke1_orientation: str = "random" + choke2_orientation: str = "random" + pickup1_branch_depth: int = 1 + pickup2_branch_depth: int = 2 + zone2_internal_branches: int = 0 + main_progress_shape: str = "linear" + allow_local_dead_ends: bool = False + + + +@dataclass +class DenseMazeParams: + maze_width_cells: int = 7 + maze_height_cells: int = 7 + add_loops: bool = False + loop_count: int = 0 + pickup1_progress_min: float = 0.20 + pickup1_progress_max: float = 0.40 + blocker1_progress_min: float = 0.45 + blocker1_progress_max: float = 0.65 + pickup2_progress_min: float = 0.60 + pickup2_progress_max: float = 0.80 + blocker2_progress_min: float = 0.80 + blocker2_progress_max: float = 0.92 + + +@dataclass +class ValidationParams: + require_solvable: bool = True + require_no_bypass: bool = True + require_chain_order: bool = True + require_prerequisite_before_blocker: bool = True + require_single_main_path: bool = False + require_unique_shortest_path: bool = False + min_distinct_solution_routes: int = 1 + + +@dataclass +class MazeGenSpec: + backbone: Backbone + logic_chain: LogicChain + difficulty_tier: int + grid_width: int + grid_height: int + seed: int + distractor_mode: DistractorMode = DistractorMode.NONE + max_distractors: int = 0 + backbone_params: object = None + validation_params: ValidationParams = field(default_factory=ValidationParams) + + def rng(self): + import random + return random.Random(self.seed) + + +@dataclass +class Key: + id: str + position: Coord + color: str + + +@dataclass +class Door: + id: str + position: Coord + requires_key: str + initial_state: str = "locked" + + +@dataclass +class Switch: + id: str + position: Coord + controls: List[str] + switch_type: str = "toggle" + initial_state: str = "off" + + +@dataclass +class Gate: + id: str + position: Coord + initial_state: str = "closed" + + +@dataclass +class MazeLayout: + width: int + height: int + walls: Set[Coord] + start: Coord + goal: Coord + slots: Dict[str, List[Coord]] = field(default_factory=dict) + route_cells: List[Set[Coord]] = field(default_factory=list) + metadata: Dict[str, object] = field(default_factory=dict) + + +@dataclass +class MazeInstance: + width: int + height: int + walls: Set[Coord] + start: Coord + goal: Coord + keys: List[Key] = field(default_factory=list) + doors: List[Door] = field(default_factory=list) + switches: List[Switch] = field(default_factory=list) + gates: List[Gate] = field(default_factory=list) + metadata: Dict[str, object] = field(default_factory=dict) + + def to_json_like(self) -> dict: + return { + "maze": { + "dimensions": [self.width, self.height], + "walls": sorted([list(w) for w in self.walls]), + "start": list(self.start), + "goal": list(self.goal), + }, + "mechanisms": { + "keys": [k.__dict__ | {"position": list(k.position)} for k in self.keys], + "doors": [d.__dict__ | {"position": list(d.position)} for d in self.doors], + "switches": [s.__dict__ | {"position": list(s.position)} for s in self.switches], + "gates": [g.__dict__ | {"position": list(g.position)} for g in self.gates], + }, + "metadata": self.metadata, + } \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/mazegen/orchestrator.py b/src/v2/automatic_maze_generation/mazegen/orchestrator.py new file mode 100644 index 0000000..5e60e28 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/orchestrator.py @@ -0,0 +1,307 @@ +import random +from .validator import validate_navigation_layout, validate_maze +from .generators import generate_from_spec +from .mechanisms import place_key_door_pair, place_switch_gate_pair, place_sequential_chain, add_dead_end_distractors, add_wrong_key_distractors, add_distractor_chain +from .models import ( + Backbone, + LogicChain, + MazeGenSpec, + MultiRouteParams, + SequentialChainParams, + SideVaultParams, + WindingCorridorParams, + DenseMazeParams, + DistractorMode, +) + + + + + +def sample_spec(seed: int) -> MazeGenSpec: + rng = random.Random(seed) + + backbone = rng.choice( + [ + Backbone.WINDING_CORRIDOR, + Backbone.MULTI_ROUTE, + Backbone.SIDE_VAULT, + Backbone.SEQUENTIAL_CHAIN, + Backbone.DENSE_MAZE, + ] + ) + + + if backbone == Backbone.WINDING_CORRIDOR: + logic_chain = rng.choice([LogicChain.NONE, LogicChain.KD, LogicChain.SG]) + distractor_mode = rng.choice([ + DistractorMode.NONE, + DistractorMode.DEAD_END_ROOMS, + DistractorMode.WRONG_KEYS + ]) + max_distractors = 0 if distractor_mode == DistractorMode.NONE else rng.randint(1, 2) + return MazeGenSpec( + backbone=Backbone.WINDING_CORRIDOR, + logic_chain=logic_chain, + difficulty_tier=1 if logic_chain == LogicChain.NONE else 2, + grid_width=rng.choice([18, 20, 22]), + grid_height=rng.choice([8, 9, 10]), + seed=seed, + backbone_params=WindingCorridorParams( + corridor_length=rng.randint(18, 34), + turn_count=rng.randint(3, 7), + segment_min_length=2, + segment_max_length=rng.randint(4, 6), + corridor_width=1, + allow_side_stubs=rng.random() < 0.3, + side_stub_count=rng.randint(1, 3), + start_goal_at_ends=True, + self_proximity_budget=0, + ), + distractor_mode=distractor_mode, + max_distractors=max_distractors, + ) + + if backbone == Backbone.MULTI_ROUTE: + logic_chain = LogicChain.NONE + distractor_mode = rng.choice([ + DistractorMode.NONE, + DistractorMode.DEAD_END_ROOMS, + DistractorMode.WRONG_KEYS + ]) + max_distractors = 0 if distractor_mode == DistractorMode.NONE else rng.randint(1, 2) + return MazeGenSpec( + backbone=Backbone.MULTI_ROUTE, + logic_chain=logic_chain, + difficulty_tier=1, + grid_width=rng.choice([12, 14, 16]), + grid_height=rng.choice([10, 12, 14]), + seed=seed, + backbone_params=MultiRouteParams( + num_routes=rng.randint(2, 4), + min_route_length=rng.randint(6, 10), + max_route_length=rng.randint(12, 20), + allow_route_rejoin=rng.random() < 0.8, + route_overlap_budget=rng.randint(0, 2), + route_asymmetry=round(rng.uniform(0.2, 0.9), 2), + dead_end_branch_count=rng.randint(0, 2), + main_corridor_width=1, + ), + distractor_mode=distractor_mode, + max_distractors=max_distractors, + ) + + if backbone == Backbone.SIDE_VAULT: + logic_chain = rng.choice([LogicChain.NONE, LogicChain.KD, LogicChain.SG]) + distractor_mode = rng.choice([ + DistractorMode.NONE, + DistractorMode.DEAD_END_ROOMS, + DistractorMode.WRONG_KEYS + ]) + max_distractors = 0 if distractor_mode == DistractorMode.NONE else rng.randint(1, 2) + return MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=logic_chain, + difficulty_tier=1 if logic_chain == LogicChain.NONE else 2, + grid_width=rng.choice([12, 14, 16]), + grid_height=rng.choice([10, 12, 14]), + seed=seed, + backbone_params=SideVaultParams( + foyer_size=rng.choice(["small", "medium", "large"]), + vault_branch_depth=rng.randint(3, 6), + vault_branch_turns=rng.randint(0, 2), + main_route_length_before_blocker=rng.randint(6, 10), + blocker_distance_from_goal=rng.randint(1, 3), + vault_position_mode=rng.choice(["upper", "lower", "left", "right"]), + mainline_shape=rng.choice(["linear", "bent"]), + allow_small_dead_ends=False, + ), + distractor_mode=distractor_mode, + max_distractors=max_distractors, + ) + + if backbone == Backbone.SEQUENTIAL_CHAIN: + logic_chain = rng.choice([LogicChain.NONE, LogicChain.KD, LogicChain.SG, LogicChain.KS, LogicChain.SK, LogicChain.KK]) + distractor_mode = rng.choice([ + DistractorMode.NONE, + DistractorMode.DEAD_END_ROOMS, + DistractorMode.WRONG_KEYS + ]) + max_distractors = 0 if distractor_mode == DistractorMode.NONE else rng.randint(1, 2) + return MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=logic_chain, + difficulty_tier=1 if logic_chain == LogicChain.NONE else 2 if logic_chain in {LogicChain.KD, LogicChain.SG} else 3, + grid_width=rng.choice([14, 16, 18]), + grid_height=rng.choice([10, 12, 14]), + seed=seed, + backbone_params=SequentialChainParams( + zone1_size=rng.choice(["small", "medium", "large"]), + zone2_size=rng.choice(["small", "medium", "large"]), + choke1_orientation=rng.choice(["horizontal", "vertical"]), + choke2_orientation=rng.choice(["horizontal", "vertical"]), + pickup1_branch_depth=rng.randint(0, 2), + pickup2_branch_depth=rng.randint(1, 3), + zone2_internal_branches=rng.randint(0, 2), + main_progress_shape=rng.choice(["linear", "alternating_upper_lower"]), + allow_local_dead_ends=False, + ), + distractor_mode=distractor_mode, + max_distractors=max_distractors, + ) + + + if backbone == Backbone.DENSE_MAZE: + logic_chain = rng.choice([LogicChain.NONE, LogicChain.KD, LogicChain.SG, LogicChain.KS, LogicChain.SK, LogicChain.KK]) + distractor_mode = rng.choice([ + DistractorMode.NONE, + DistractorMode.WRONG_KEYS, + DistractorMode.DISTRACTOR_CHAIN, + ]) + max_distractors = 0 if distractor_mode == DistractorMode.NONE else rng.randint(1, 2) + return MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=logic_chain, + difficulty_tier=1 if logic_chain == LogicChain.NONE else 2 if logic_chain in {LogicChain.KD, LogicChain.SG} else 3, + grid_width=0, # ignored by dense_maze generator + grid_height=0, # ignored by dense_maze generator + seed=seed, + backbone_params=DenseMazeParams( + maze_width_cells=rng.choice([5, 6, 7]), + maze_height_cells=rng.choice([5, 6, 7]), + add_loops=rng.random() < 0.35, + loop_count=rng.randint(1, 3), + pickup1_progress_min=0.15, + pickup1_progress_max=0.35, + blocker1_progress_min=0.40, + blocker1_progress_max=0.55, + pickup2_progress_min=0.55, + pickup2_progress_max=0.75, + blocker2_progress_min=0.80, + blocker2_progress_max=0.92, + ), + distractor_mode=distractor_mode, + max_distractors=max_distractors, + ) + + +def build_maze_from_spec(spec: MazeGenSpec) -> tuple[object, dict]: + """ + Build a maze end-to-end from a generation spec. + + Returns: + (obj, report) + - obj is a MazeLayout for navigation-only mazes + - obj is a MazeInstance for mechanism mazes + - report is the corresponding validation report + """ + layout = generate_from_spec(spec) + + if spec.logic_chain == LogicChain.NONE: + report = validate_navigation_layout(layout, spec.validation_params) + return layout, report + + if spec.logic_chain == LogicChain.KD: + maze = place_key_door_pair(layout, color="red") + report = validate_maze(maze, expected_logic="kd") + return maze, report + + if spec.logic_chain == LogicChain.SG: + maze = place_switch_gate_pair(layout, switch_id="1") + report = validate_maze(maze, expected_logic="sg") + return maze, report + + if spec.logic_chain == LogicChain.KS: + maze = place_sequential_chain( + layout, + chain_type="ks", + palette={"keys": ["red"], "switches": ["1"]}, + ) + report = validate_maze(maze, expected_logic="ks") + return maze, report + + if spec.logic_chain == LogicChain.SK: + maze = place_sequential_chain( + layout, + chain_type="sk", + palette={"keys": ["red"], "switches": ["1"]}, + ) + report = validate_maze(maze, expected_logic="sk") + return maze, report + + if spec.logic_chain == LogicChain.KK: + maze = place_sequential_chain( + layout, + chain_type="kk", + palette={"keys": ["red", "blue"]}, + ) + report = validate_maze(maze, expected_logic="kk") + return maze, report + + raise ValueError(f"Unsupported logic chain: {spec.logic_chain}") + + +def build_maze_with_distractors(spec: MazeGenSpec): + obj, report = build_maze_from_spec(spec) + if not report["is_valid"]: + return obj, report + + # For now, only mechanism mazes get distractors. + if spec.logic_chain == LogicChain.NONE: + return obj, report + + maze = obj + + if spec.distractor_mode == DistractorMode.DEAD_END_ROOMS: + maze = add_dead_end_distractors(maze, count=max(1, spec.max_distractors), branch_length=2) + + elif spec.distractor_mode == DistractorMode.WRONG_KEYS: + maze = add_dead_end_distractors(maze, count=max(1, spec.max_distractors), branch_length=2) + maze = add_wrong_key_distractors( + maze, + colors=["yellow", "green", "purple"][: max(1, spec.max_distractors)], + ) + + elif spec.distractor_mode == DistractorMode.DISTRACTOR_CHAIN: + maze = add_dead_end_distractors(maze, count=1, branch_length=2) + maze = add_distractor_chain(maze, chain_type="kd", color="green") + + report = validate_maze(maze, expected_logic=spec.logic_chain.value) + return maze, report + + + +def build_valid_maze_with_retries(spec: MazeGenSpec, max_retries: int = 10): + """ + Try to build a valid maze from a spec, retrying with nearby seeds if needed. + + Returns: + (obj, report, final_spec) + + Raises: + ValueError if no valid maze is found after max_retries attempts. + """ + for retry_idx in range(max_retries): + trial_seed = spec.seed + retry_idx + + trial_spec = MazeGenSpec( + backbone=spec.backbone, + logic_chain=spec.logic_chain, + difficulty_tier=spec.difficulty_tier, + grid_width=spec.grid_width, + grid_height=spec.grid_height, + seed=trial_seed, + distractor_mode=spec.distractor_mode, + max_distractors=spec.max_distractors, + backbone_params=spec.backbone_params, + validation_params=spec.validation_params, + ) + + obj, report = build_maze_with_distractors(trial_spec) + if report["is_valid"]: + return obj, report, trial_spec + + raise ValueError( + f"Could not generate a valid maze after {max_retries} retries " + f"for backbone={spec.backbone.value}, logic={spec.logic_chain.value}, seed={spec.seed}" + ) \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/mazegen/smoke_tests.py b/src/v2/automatic_maze_generation/mazegen/smoke_tests.py new file mode 100644 index 0000000..5d653c2 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/smoke_tests.py @@ -0,0 +1,610 @@ +from __future__ import annotations + +from typing import List, Tuple + +from .models import ( + Backbone, + DenseMazeParams, + DistractorMode, + LogicChain, + MazeGenSpec, + MultiRouteParams, + SequentialChainParams, + SideVaultParams, + WindingCorridorParams, +) +from .orchestrator import build_valid_maze_with_retries + + +def _smoke_test_cases() -> List[Tuple[str, MazeGenSpec]]: + return [ + # --------------------------- + # Navigation-only baselines + # --------------------------- + ( + "winding_corridor_none", + MazeGenSpec( + backbone=Backbone.WINDING_CORRIDOR, + logic_chain=LogicChain.NONE, + difficulty_tier=1, + grid_width=20, + grid_height=8, + seed=102, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=WindingCorridorParams( + corridor_length=28, + turn_count=5, + segment_min_length=2, + segment_max_length=5, + corridor_width=1, + allow_side_stubs=False, + side_stub_count=0, + start_goal_at_ends=True, + self_proximity_budget=0, + ), + ), + ), + ( + "multi_route_none", + MazeGenSpec( + backbone=Backbone.MULTI_ROUTE, + logic_chain=LogicChain.NONE, + difficulty_tier=1, + grid_width=12, + grid_height=12, + seed=103, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=MultiRouteParams( + num_routes=3, + min_route_length=8, + max_route_length=18, + allow_route_rejoin=True, + route_overlap_budget=1, + route_asymmetry=0.5, + dead_end_branch_count=0, + main_corridor_width=1, + ), + ), + ), + ( + "side_vault_none", + MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=LogicChain.NONE, + difficulty_tier=1, + grid_width=14, + grid_height=12, + seed=206, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SideVaultParams( + foyer_size="medium", + vault_branch_depth=4, + vault_branch_turns=1, + main_route_length_before_blocker=8, + blocker_distance_from_goal=2, + vault_position_mode="lower", + mainline_shape="linear", + allow_small_dead_ends=False, + ), + ), + ), + ( + "sequential_none", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.NONE, + difficulty_tier=1, + grid_width=14, + grid_height=12, + seed=207, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "dense_none", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.NONE, + difficulty_tier=1, + grid_width=15, + grid_height=15, + seed=306, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + + # --------------------------- + # Mechanism core cases + # --------------------------- + ( + "winding_corridor_kd", + MazeGenSpec( + backbone=Backbone.WINDING_CORRIDOR, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=20, + grid_height=8, + seed=202, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=WindingCorridorParams( + corridor_length=28, + turn_count=5, + segment_min_length=2, + segment_max_length=5, + corridor_width=1, + allow_side_stubs=False, + side_stub_count=0, + start_goal_at_ends=True, + self_proximity_budget=0, + ), + ), + ), + ( + "winding_corridor_sg", + MazeGenSpec( + backbone=Backbone.WINDING_CORRIDOR, + logic_chain=LogicChain.SG, + difficulty_tier=2, + grid_width=20, + grid_height=8, + seed=203, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=WindingCorridorParams( + corridor_length=28, + turn_count=5, + segment_min_length=2, + segment_max_length=5, + corridor_width=1, + allow_side_stubs=False, + side_stub_count=0, + start_goal_at_ends=True, + self_proximity_budget=0, + ), + ), + ), + ( + "side_vault_kd", + MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=104, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SideVaultParams( + foyer_size="medium", + vault_branch_depth=4, + vault_branch_turns=1, + main_route_length_before_blocker=8, + blocker_distance_from_goal=2, + vault_position_mode="lower", + mainline_shape="linear", + allow_small_dead_ends=False, + ), + ), + ), + ( + "side_vault_sg", + MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=LogicChain.SG, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=105, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SideVaultParams( + foyer_size="medium", + vault_branch_depth=4, + vault_branch_turns=1, + main_route_length_before_blocker=8, + blocker_distance_from_goal=2, + vault_position_mode="lower", + mainline_shape="linear", + allow_small_dead_ends=False, + ), + ), + ), + ( + "sequential_kd", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=204, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "sequential_sg", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.SG, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=205, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "sequential_ks", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.KS, + difficulty_tier=3, + grid_width=14, + grid_height=12, + seed=106, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "sequential_sk", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.SK, + difficulty_tier=3, + grid_width=14, + grid_height=12, + seed=107, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "sequential_kk", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.KK, + difficulty_tier=3, + grid_width=14, + grid_height=12, + seed=108, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "dense_kd", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=15, + grid_height=15, + seed=301, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_sg", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.SG, + difficulty_tier=2, + grid_width=15, + grid_height=15, + seed=302, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_ks", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KS, + difficulty_tier=3, + grid_width=15, + grid_height=15, + seed=303, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_sk", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.SK, + difficulty_tier=3, + grid_width=15, + grid_height=15, + seed=304, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_kk", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KK, + difficulty_tier=3, + grid_width=15, + grid_height=15, + seed=305, + distractor_mode=DistractorMode.NONE, + max_distractors=0, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + + # --------------------------- + # Distractor cases + # --------------------------- + ( + "side_vault_kd_dead_end", + MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=401, + distractor_mode=DistractorMode.DEAD_END_ROOMS, + max_distractors=1, + backbone_params=SideVaultParams( + foyer_size="medium", + vault_branch_depth=4, + vault_branch_turns=1, + main_route_length_before_blocker=8, + blocker_distance_from_goal=2, + vault_position_mode="lower", + mainline_shape="linear", + allow_small_dead_ends=False, + ), + ), + ), + ( + "side_vault_kd_wrong_keys", + MazeGenSpec( + backbone=Backbone.SIDE_VAULT, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=14, + grid_height=12, + seed=402, + distractor_mode=DistractorMode.WRONG_KEYS, + max_distractors=2, + backbone_params=SideVaultParams( + foyer_size="medium", + vault_branch_depth=4, + vault_branch_turns=1, + main_route_length_before_blocker=8, + blocker_distance_from_goal=2, + vault_position_mode="lower", + mainline_shape="linear", + allow_small_dead_ends=False, + ), + ), + ), + ( + "sequential_ks_dead_end", + MazeGenSpec( + backbone=Backbone.SEQUENTIAL_CHAIN, + logic_chain=LogicChain.KS, + difficulty_tier=3, + grid_width=14, + grid_height=12, + seed=403, + distractor_mode=DistractorMode.DEAD_END_ROOMS, + max_distractors=2, + backbone_params=SequentialChainParams( + zone1_size="medium", + zone2_size="medium", + choke1_orientation="vertical", + choke2_orientation="vertical", + pickup1_branch_depth=1, + pickup2_branch_depth=2, + zone2_internal_branches=0, + main_progress_shape="linear", + allow_local_dead_ends=False, + ), + ), + ), + ( + "dense_kd_wrong_keys", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=15, + grid_height=15, + seed=404, + distractor_mode=DistractorMode.WRONG_KEYS, + max_distractors=2, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_kd_distractor_chain", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KD, + difficulty_tier=2, + grid_width=15, + grid_height=15, + seed=405, + distractor_mode=DistractorMode.DISTRACTOR_CHAIN, + max_distractors=1, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ( + "dense_ks_distractor_chain", + MazeGenSpec( + backbone=Backbone.DENSE_MAZE, + logic_chain=LogicChain.KS, + difficulty_tier=3, + grid_width=15, + grid_height=15, + seed=406, + distractor_mode=DistractorMode.DISTRACTOR_CHAIN, + max_distractors=1, + backbone_params=DenseMazeParams( + maze_width_cells=6, + maze_height_cells=6, + add_loops=False, + loop_count=0, + ), + ), + ), + ] + + +def run_smoke_tests() -> List[dict]: + reports: List[dict] = [] + + for name, spec in _smoke_test_cases(): + _, report, final_spec = build_valid_maze_with_retries(spec) + + item = { + "name": name, + "backbone": final_spec.backbone.value, + "logic": final_spec.logic_chain.value, + "distractor_mode": final_spec.distractor_mode.value, + "is_valid": report["is_valid"], + "reasons": report["reasons"], + "optimal_cost": report["solver_result"]["optimal_cost"], + } + + if final_spec.logic_chain != LogicChain.NONE: + item["interactions"] = report["solver_result"].get("interactions", []) + + reports.append(item) + + return reports + + +if __name__ == "__main__": + for item in run_smoke_tests(): + print(item) \ No newline at end of file diff --git a/src/v2/automatic_maze_generation/mazegen/solver.py b/src/v2/automatic_maze_generation/mazegen/solver.py new file mode 100644 index 0000000..c28a413 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/solver.py @@ -0,0 +1,261 @@ +from __future__ import annotations + +from collections import deque +from heapq import heappop, heappush +from typing import Dict, List, Optional, Tuple + +from .models import Coord, MazeInstance, MazeLayout +from .generators import in_bounds, neighbors4 + + +def solve_navigation_only(layout: MazeLayout) -> dict: + start, goal = layout.start, layout.goal + blocked = layout.walls + pq: List[Tuple[int, Coord]] = [(0, start)] + parent: Dict[Coord, Optional[Coord]] = {start: None} + dist: Dict[Coord, int] = {start: 0} + + while pq: + d, node = heappop(pq) + if node == goal: + break + if d != dist[node]: + continue + for nb in neighbors4(node): + if not in_bounds(nb, layout.width, layout.height) or nb in blocked: + continue + nd = d + 1 + if nb not in dist or nd < dist[nb]: + dist[nb] = nd + parent[nb] = node + heappush(pq, (nd, nb)) + + if goal not in dist: + return {"is_solvable": False, "optimal_cost": None, "path": []} + + path: List[Coord] = [] + cur: Optional[Coord] = goal + while cur is not None: + path.append(cur) + cur = parent[cur] + path.reverse() + return {"is_solvable": True, "optimal_cost": len(path) - 1, "path": path} + + +def count_shortest_paths(layout: MazeLayout, max_count: int = 3) -> int: + start, goal = layout.start, layout.goal + blocked = layout.walls + dist: Dict[Coord, int] = {start: 0} + count: Dict[Coord, int] = {start: 1} + pq: List[Tuple[int, Coord]] = [(0, start)] + + while pq: + d, node = heappop(pq) + if d != dist[node]: + continue + for nb in neighbors4(node): + if not in_bounds(nb, layout.width, layout.height) or nb in blocked: + continue + nd = d + 1 + if nb not in dist: + dist[nb] = nd + count[nb] = count[node] + heappush(pq, (nd, nb)) + elif nd == dist[nb]: + count[nb] = min(max_count, count[nb] + count[node]) + + return count.get(goal, 0) + +def _maze_lookup_tables(maze: MazeInstance) -> dict: + return { + "key_at": {k.position: k for k in maze.keys}, + "door_at": {d.position: d for d in maze.doors}, + "switch_at": {s.position: s for s in maze.switches}, + "gate_at": {g.position: g for g in maze.gates}, + "gate_to_switches": { + g.id: [s.id for s in maze.switches if g.id in s.controls] + for g in maze.gates + }, + } + + + +def _normalize_state( + pos: Coord, + inventory: frozenset[str], + opened_doors: frozenset[str], + switch_states: frozenset[str], +) -> Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]]: + return (pos, inventory, opened_doors, switch_states) + + + +def _apply_cell_effects( + maze: MazeInstance, + pos: Coord, + inventory: frozenset[str], + opened_doors: frozenset[str], + switch_states: frozenset[str], + lookups: dict, +) -> Tuple[frozenset[str], frozenset[str], frozenset[str], List[str]]: + inventory_set = set(inventory) + opened_set = set(opened_doors) + switch_set = set(switch_states) + interactions: List[str] = [] + + key = lookups["key_at"].get(pos) + if key is not None and key.color not in inventory_set: + inventory_set.add(key.color) + interactions.append(f"pickup:{key.id}") + + sw = lookups["switch_at"].get(pos) + if sw is not None and sw.id not in switch_set: + # V1 behavior: activate once and keep on. + switch_set.add(sw.id) + interactions.append(f"toggle:{sw.id}") + + return frozenset(inventory_set), frozenset(opened_set), frozenset(switch_set), interactions + + + +def _can_enter_cell( + maze: MazeInstance, + pos: Coord, + inventory: frozenset[str], + opened_doors: frozenset[str], + switch_states: frozenset[str], + lookups: dict, +) -> Tuple[bool, frozenset[str], frozenset[str], List[str]]: + inventory_set = set(inventory) + opened_set = set(opened_doors) + interactions: List[str] = [] + + door = lookups["door_at"].get(pos) + if door is not None and door.id not in opened_set: + if door.requires_key not in inventory_set: + return False, inventory, opened_doors, [] + inventory_set.remove(door.requires_key) + opened_set.add(door.id) + interactions.append(f"open:{door.id}") + + gate = lookups["gate_at"].get(pos) + if gate is not None: + controllers = lookups["gate_to_switches"].get(gate.id, []) + is_open = any(sw_id in switch_states for sw_id in controllers) + if not is_open: + return False, inventory, opened_doors, [] + interactions.append(f"cross:{gate.id}") + + return True, frozenset(inventory_set), frozenset(opened_set), interactions + + + +def solve_maze(maze: MazeInstance) -> dict: + """ + Solve a maze using shortest-path search over full agent state. + + This solver supports movement plus the current mechanism semantics: + - keys are picked up on entry to their cell + - doors require a matching key color and consume that key on first use + - switches activate on first visit and remain on + - gates are traversable when any controlling switch is on + """ + lookups = _maze_lookup_tables(maze) + + start_inventory, start_opened, start_switches, start_interactions = _apply_cell_effects( + maze, + maze.start, + frozenset(), + frozenset(), + frozenset(), + lookups, + ) + start_state = _normalize_state(maze.start, start_inventory, start_opened, start_switches) + + queue = deque([start_state]) + parent: Dict[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]], Optional[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]]]] = { + start_state: None + } + action_taken: Dict[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]], Tuple[str, List[str]]] = { + start_state: ("START", start_interactions) + } + dist: Dict[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]], int] = {start_state: 0} + + goal_state: Optional[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]]] = None + + while queue: + state = queue.popleft() + pos, inventory, opened_doors, switch_states = state + if pos == maze.goal: + goal_state = state + break + + for nb in neighbors4(pos): + if not in_bounds(nb, maze.width, maze.height) or nb in maze.walls: + continue + + allowed, inventory_after_entry, opened_after_entry, entry_interactions = _can_enter_cell( + maze, nb, inventory, opened_doors, switch_states, lookups + ) + if not allowed: + continue + + final_inventory, final_opened, final_switches, cell_interactions = _apply_cell_effects( + maze, + nb, + inventory_after_entry, + opened_after_entry, + switch_states, + lookups, + ) + next_state = _normalize_state(nb, final_inventory, final_opened, final_switches) + if next_state in dist: + continue + + dist[next_state] = dist[state] + 1 + parent[next_state] = state + action_taken[next_state] = ( + f"MOVE_TO:{nb[0]},{nb[1]}", + entry_interactions + cell_interactions, + ) + queue.append(next_state) + + if goal_state is None: + return { + "is_solvable": False, + "optimal_cost": None, + "path": [], + "action_sequence": [], + "interactions": [], + "final_inventory": [], + "final_opened_doors": [], + "active_switches": [], + } + + states_path: List[Tuple[Coord, frozenset[str], frozenset[str], frozenset[str]]] = [] + cur = goal_state + while cur is not None: + states_path.append(cur) + cur = parent[cur] + states_path.reverse() + + path = [s[0] for s in states_path] + action_sequence: List[str] = [] + interactions: List[str] = [] + for st in states_path[1:]: + move_action, side_effects = action_taken[st] + action_sequence.append(move_action) + interactions.extend(side_effects) + + _, final_inventory, final_opened, final_switches = goal_state + return { + "is_solvable": True, + "optimal_cost": len(path) - 1, + "path": path, + "action_sequence": action_sequence, + "interactions": interactions, + "final_inventory": sorted(final_inventory), + "final_opened_doors": sorted(final_opened), + "active_switches": sorted(final_switches), + } + diff --git a/src/v2/automatic_maze_generation/mazegen/validator.py b/src/v2/automatic_maze_generation/mazegen/validator.py new file mode 100644 index 0000000..3442852 --- /dev/null +++ b/src/v2/automatic_maze_generation/mazegen/validator.py @@ -0,0 +1,148 @@ +from __future__ import annotations + +from dataclasses import replace +from typing import List, Optional + +from .models import MazeInstance, MazeLayout, ValidationParams +from .solver import count_shortest_paths, solve_maze, solve_navigation_only + + +def validate_navigation_layout(layout: MazeLayout, params: ValidationParams) -> dict: + result = solve_navigation_only(layout) + reasons: List[str] = [] + if params.require_solvable and not result["is_solvable"]: + reasons.append("maze is not solvable") + if params.require_unique_shortest_path and result["is_solvable"]: + nsp = count_shortest_paths(layout) + if nsp != 1: + reasons.append(f"expected unique shortest path, found {nsp}") + return { + "is_valid": len(reasons) == 0, + "reasons": reasons, + "solver_result": result, + } + + + + + + + + + +def _clone_maze(maze: MazeInstance) -> MazeInstance: + return MazeInstance( + width=maze.width, + height=maze.height, + walls=set(maze.walls), + start=maze.start, + goal=maze.goal, + keys=[replace(k) for k in maze.keys], + doors=[replace(d) for d in maze.doors], + switches=[replace(s, controls=list(s.controls)) for s in maze.switches], + gates=[replace(g) for g in maze.gates], + metadata=dict(maze.metadata), + ) + + + +def _remove_mechanism_by_id(maze: MazeInstance, mech_id: str) -> MazeInstance: + new_maze = _clone_maze(maze) + new_maze.keys = [k for k in new_maze.keys if k.id != mech_id] + new_maze.doors = [d for d in new_maze.doors if d.id != mech_id] + new_maze.switches = [s for s in new_maze.switches if s.id != mech_id] + new_maze.gates = [g for g in new_maze.gates if g.id != mech_id] + + for sw in new_maze.switches: + sw.controls = [gid for gid in sw.controls if gid != mech_id] + return new_maze + +def _extract_required_ids(maze: MazeInstance, expected_logic: Optional[str]) -> List[str]: + if expected_logic is None: + return [] + + if expected_logic == "kd": + return [maze.keys[0].id] if maze.keys else [] + + if expected_logic == "sg": + return [maze.switches[0].id] if maze.switches else [] + + if expected_logic == "ks": + ids = [] + if maze.keys: + ids.append(maze.keys[0].id) + if maze.switches: + ids.append(maze.switches[0].id) + return ids + + if expected_logic == "sk": + ids = [] + if maze.switches: + ids.append(maze.switches[0].id) + if maze.keys: + ids.append(maze.keys[0].id) + return ids + + if expected_logic == "kk": + return [k.id for k in maze.keys[:2]] + + return [] + + + +def _run_ablation_checks(maze: MazeInstance, expected_logic: Optional[str]) -> List[str]: + reasons: List[str] = [] + for mech_id in _extract_required_ids(maze, expected_logic): + ablated = _remove_mechanism_by_id(maze, mech_id) + result = solve_maze(ablated) + if result["is_solvable"]: + reasons.append(f"mechanism {mech_id} is not necessary under ablation") + return reasons + + + +def validate_maze(maze: MazeInstance, expected_logic: Optional[str] = None) -> dict: + solver_result = solve_maze(maze) + reasons: List[str] = [] + if not solver_result["is_solvable"]: + reasons.append("maze is not solvable") + + chain_pattern = maze.metadata.get("chain_pattern") + if expected_logic is not None and chain_pattern not in {expected_logic, None}: + reasons.append("chain pattern metadata does not match expected logic") + + interactions = solver_result.get("interactions", []) + if expected_logic == "kd": + if not any(x.startswith("pickup:k") for x in interactions): + reasons.append("expected kd maze to require a key pickup") + if not any(x.startswith("open:D") for x in interactions): + reasons.append("expected kd maze to require opening a door") + elif expected_logic == "sg": + if not any(x.startswith("toggle:s") for x in interactions): + reasons.append("expected sg maze to require activating a switch") + if not any(x.startswith("cross:g") for x in interactions): + reasons.append("expected sg maze to require crossing a gate") + elif expected_logic in {"ks", "sk", "kk"}: + required_prefixes = { + "ks": ["pickup:k", "open:D", "toggle:s", "cross:g"], + "sk": ["toggle:s", "cross:g", "pickup:k", "open:D"], + "kk": ["pickup:k", "open:D", "pickup:k", "open:D"], + }[expected_logic] + idx = 0 + for interaction in interactions: + if interaction.startswith(required_prefixes[idx]): + idx += 1 + if idx == len(required_prefixes): + break + if idx < len(required_prefixes): + reasons.append(f"expected ordered chain {expected_logic} was not observed in solver interactions") + + if solver_result["is_solvable"] and expected_logic is not None: + reasons.extend(_run_ablation_checks(maze, expected_logic)) + + return { + "is_valid": len(reasons) == 0, + "reasons": reasons, + "solver_result": solver_result, + } + diff --git a/src/v2/automatic_maze_generation/render_dataset.py b/src/v2/automatic_maze_generation/render_dataset.py new file mode 100644 index 0000000..83c820f --- /dev/null +++ b/src/v2/automatic_maze_generation/render_dataset.py @@ -0,0 +1,381 @@ +# render_dataset.py +from __future__ import annotations + +import json +from copy import deepcopy +from io import BytesIO +from pathlib import Path +from typing import Any, Optional, Tuple + +import matplotlib + +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from matplotlib.patches import Rectangle, Circle + + +CELL = 40 # pixels-ish via figure scale + + +def _extract_payload_fields(payload: dict): + maze = payload["maze"] + mechs = payload.get("mechanisms", {}) + + width, height = maze["dimensions"] + walls = {tuple(w) for w in maze["walls"]} + start = tuple(maze["start"]) + goal = tuple(maze["goal"]) + + keys = mechs.get("keys", []) + doors = mechs.get("doors", []) + switches = mechs.get("switches", []) + gates = mechs.get("gates", []) + + return width, height, walls, start, goal, keys, doors, switches, gates + + +def _row_col_payload_to_xy_payload(payload: dict) -> dict: + """Convert a row/col payload to renderer-space (x/y) without mutating input.""" + out = deepcopy(payload) + maze = out.get("maze", {}) + mechs = out.get("mechanisms", {}) + + def rc_to_xy(pos): + r, c = pos + return [c, r] + + dims = maze.get("dimensions") + if dims and len(dims) == 2: + rows, cols = dims + maze["dimensions"] = [cols, rows] + + maze["walls"] = [rc_to_xy(w) for w in maze.get("walls", [])] + if "start" in maze: + maze["start"] = rc_to_xy(maze["start"]) + if "goal" in maze: + maze["goal"] = rc_to_xy(maze["goal"]) + + for k in mechs.get("keys", []): + if "position" in k: + k["position"] = rc_to_xy(k["position"]) + for d in mechs.get("doors", []): + if "position" in d: + d["position"] = rc_to_xy(d["position"]) + for s in mechs.get("switches", []): + if "position" in s: + s["position"] = rc_to_xy(s["position"]) + for g in mechs.get("gates", []): + if "position" in g: + g["position"] = rc_to_xy(g["position"]) + + validation = out.get("validation", {}) + if "optimal_path" in validation: + validation["optimal_path"] = [rc_to_xy(p) for p in validation.get("optimal_path", [])] + return out + + + +def _color_to_facecolor(name: str) -> str: + mapping = { + "red": "#e74c3c", + "blue": "#3498db", + "green": "#2ecc71", + "yellow": "#f1c40f", + "purple": "#9b59b6", + "orange": "#e67e22", + } + return mapping.get(name.lower(), "#95a5a6") + + +def _draw_centered_text(ax, x: int, y: int, height: int, text: str, fontsize: int = 10, color: str = "black"): + ax.text( + x + 0.5, + height - 1 - y + 0.5, + text, + ha="center", + va="center", + fontsize=fontsize, + color=color, + fontweight="bold", + ) + + +def _draw_key(ax, x: int, y: int, height: int, color_name: str): + face = _color_to_facecolor(color_name) + cy = height - 1 - y + 0.5 + + # colored circle badge + ax.add_patch(Circle((x + 0.5, cy), 0.28, facecolor=face, edgecolor="black", linewidth=1.0)) + # key icon / fallback letter + ax.text( + x + 0.5, + cy, + "âš·", # if this glyph looks odd in your env, replace with "K" + ha="center", + va="center", + fontsize=11, + color="white", + fontweight="bold", + ) + + +def _draw_door(ax, x: int, y: int, height: int, color_name: str): + face = _color_to_facecolor(color_name) + by = height - 1 - y + + # colored inner door rectangle + ax.add_patch( + Rectangle( + (x + 0.18, by + 0.12), + 0.64, + 0.76, + facecolor=face, + edgecolor="black", + linewidth=1.0, + ) + ) + # small doorknob + ax.add_patch(Circle((x + 0.68, by + 0.5), 0.04, facecolor="white", edgecolor="white")) + + +def _draw_switch(ax, x: int, y: int, height: int, label: str): + by = height - 1 - y + + ax.add_patch( + Rectangle( + (x + 0.15, by + 0.2), + 0.7, + 0.6, + facecolor="#dfe6e9", + edgecolor="black", + linewidth=1.0, + ) + ) + ax.text( + x + 0.5, + by + 0.5, + label, + ha="center", + va="center", + fontsize=9, + color="black", + fontweight="bold", + ) + + +def _draw_gate(ax, x: int, y: int, height: int, label: str): + by = height - 1 - y + + # gate bars + for dx in [0.22, 0.38, 0.54, 0.70]: + ax.plot([x + dx, x + dx], [by + 0.15, by + 0.85], color="black", linewidth=1.4) + ax.plot([x + 0.18, x + 0.74], [by + 0.18, by + 0.18], color="black", linewidth=1.4) + ax.plot([x + 0.18, x + 0.74], [by + 0.82, by + 0.82], color="black", linewidth=1.4) + + ax.text( + x + 0.5, + by + 0.5, + label, + ha="center", + va="center", + fontsize=8, + color="black", + fontweight="bold", + bbox=dict(boxstyle="round,pad=0.08", facecolor="white", edgecolor="none", alpha=0.8), + ) + + +_AGENT_FACING_DELTA = { + "NORTH": (-1, 0), + "EAST": (0, 1), + "SOUTH": (1, 0), + "WEST": (0, -1), +} + + +def _draw_agent(ax, ar: int, ac: int, height: int, facing: str) -> None: + """Overlay current agent (row, col) and facing; same cell coords as ``_draw_centered_text``.""" + # GridState uses (row, col). Rendering uses x=col, y=row (inverted vertical axis). + cx = ac + 0.5 + cy = height - 1 - ar + 0.5 + ax.plot( + cx, + cy, + "o", + color="black", + markersize=10, + zorder=6, + markeredgecolor="black", + ) + dr, dc = _AGENT_FACING_DELTA.get(facing, (0, 0)) + if dr == 0 and dc == 0: + return + nr, nc = ar + dr, ac + dc + tip_x = nc + 0.5 + tip_y = height - 1 - nr + 0.5 + ax.annotate( + "", + xy=(tip_x, tip_y), + xytext=(cx, cy), + arrowprops=dict(arrowstyle="->", color="black", lw=1.5), + zorder=7, + ) + + +def _extract_optimal_path(payload: dict): + validation = payload.get("validation", {}) + return [tuple(p) for p in validation.get("optimal_path", [])] + + + + + + +def _draw_optimal_path(ax, path, height: int): + if not path: + return + + xs = [x + 0.5 for x, y in path] + ys = [height - 1 - y + 0.5 for x, y in path] + + ax.plot( + xs, + ys, + linewidth=3.0, + alpha=0.45, + zorder=2, + ) + + # mark start of path a little more clearly + ax.scatter( + [xs[0]], + [ys[0]], + s=35, + alpha=0.7, + zorder=3, + ) + + + +def _figure_from_maze_payload(payload: dict, title: str) -> Tuple[Any, Any, int]: + """Build figure/axes for a maze JSON payload; caller savesfig and closes.""" + payload = _row_col_payload_to_xy_payload(payload) + width, height, walls, start, goal, keys, doors, switches, gates = _extract_payload_fields(payload) + optimal_path = _extract_optimal_path(payload) + + fig_w = max(6, width * 0.55) + fig_h = max(4, height * 0.55) + fig, ax = plt.subplots(figsize=(fig_w, fig_h)) + + # base grid + for x in range(width): + for y in range(height): + is_wall = (x, y) in walls + facecolor = "black" if is_wall else "white" + ax.add_patch( + Rectangle( + (x, height - 1 - y), + 1, + 1, + facecolor=facecolor, + edgecolor="lightgray", + linewidth=0.8, + zorder=0, + ) + ) + + # path overlay first, so icons remain visible above it + _draw_optimal_path(ax, optimal_path, height) + + # start / goal + sx, sy = start + gx, gy = goal + ax.add_patch(Rectangle((sx, height - 1 - sy), 1, 1, facecolor="#c8f7c5", edgecolor="black", linewidth=1.2, zorder=4)) + ax.add_patch(Rectangle((gx, height - 1 - gy), 1, 1, facecolor="#f7d6c5", edgecolor="black", linewidth=1.2, zorder=4)) + _draw_centered_text(ax, sx, sy, height, "S", fontsize=11) + _draw_centered_text(ax, gx, gy, height, "G", fontsize=11) + + # keys + for key in keys: + x, y = key["position"] + color_name = key.get("color", "gray") + _draw_key(ax, x, y, height, color_name) + + # doors + for door in doors: + x, y = door["position"] + color_name = door.get("requires_key", "gray") + _draw_door(ax, x, y, height, color_name) + + # switches + for sw in switches: + x, y = sw["position"] + _draw_switch(ax, x, y, height, "S") + + # gates + for gate in gates: + x, y = gate["position"] + _draw_gate(ax, x, y, height, "G") + + ax.set_title(title) + ax.set_xlim(0, width) + ax.set_ylim(0, height) + ax.set_aspect("equal") + ax.axis("off") + + return fig, ax, height + + +def render_maze_payload(payload: dict, output_path: Path) -> None: + title = payload.get("task_id", output_path.stem) + fig, _ax, _height = _figure_from_maze_payload(payload, title) + plt.tight_layout() + fig.savefig(output_path, dpi=150, bbox_inches="tight") + plt.close(fig) + + +def render_maze_payload_bytes( + payload: dict, + *, + dpi: int = 150, + agent_pos: Optional[Tuple[int, int]] = None, + facing: str = "NORTH", +) -> bytes: + """Same layout as ``render_maze_payload``, PNG bytes (e.g. NLU live observations).""" + title = str(payload.get("task_id", "maze")) + fig, ax, height = _figure_from_maze_payload(payload, title) + if agent_pos is not None: + _draw_agent(ax, agent_pos[0], agent_pos[1], height, facing) + plt.tight_layout() + buf = BytesIO() + fig.savefig(buf, format="png", dpi=dpi, bbox_inches="tight") + plt.close(fig) + return buf.getvalue() + + + + +def main() -> None: + input_dir = Path("generated_mazes") + # input_dir = Path("../nlu_pipeline/nlu_benchmark/sample mazes") + output_dir = input_dir / "pngs" + output_dir.mkdir(parents=True, exist_ok=True) + + json_files = sorted(p for p in input_dir.glob("*.json") if p.name != "manifest.json") + if not json_files: + print("No maze JSON files found in generated_mazes/") + return + + for jf in json_files: + with open(jf, "r", encoding="utf-8") as f: + payload = json.load(f) + + out_path = output_dir / f"{jf.stem}.png" + render_maze_payload(payload, out_path) + print(f"[OK] rendered {out_path.name}") + + print(f"\nRendered {len(json_files)} PNGs to: {output_dir.resolve()}") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/v2/nlu_pipeline/__init__.py b/src/v2/nlu_pipeline/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/v2/nlu_pipeline/nlu_benchmark/__init__.py b/src/v2/nlu_pipeline/nlu_benchmark/__init__.py new file mode 100644 index 0000000..0b845b9 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/__init__.py @@ -0,0 +1 @@ +"""NLU maze benchmark package.""" diff --git a/src/v2/nlu_pipeline/nlu_benchmark/agents.py b/src/v2/nlu_pipeline/nlu_benchmark/agents.py new file mode 100644 index 0000000..6567ff3 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/agents.py @@ -0,0 +1,128 @@ +from __future__ import annotations + +import os +import random +from dataclasses import dataclass, field +from typing import Dict, List, Optional + +from huggingface_hub import InferenceClient, get_token +from transformers import AutoModelForCausalLM, AutoTokenizer + +from nlu_benchmark.parser import ACTION_ORDER + +# More stable defaults for local model downloads on Windows. +os.environ.setdefault("HF_HUB_ENABLE_HF_TRANSFER", "0") +os.environ.setdefault("HF_HUB_DISABLE_XET", "1") + +# Keep empty in source. Prefer env var `HF_TOKEN` or `huggingface-cli login`. +_LOCAL_HF_TOKEN = "" +if _LOCAL_HF_TOKEN.strip() and not os.environ.get("HF_TOKEN"): + os.environ["HF_TOKEN"] = _LOCAL_HF_TOKEN.strip() + + +class RandomAgent: + def __call__(self, messages: list[dict]) -> str: + return f"FINAL_OUTPUT: {random.choice(ACTION_ORDER)}" + + +DEFAULT_ROUTER_MODEL = "meta-llama/Llama-3.1-8B-Instruct:cerebras" +DEFAULT_LOCAL_MODEL = "HuggingFaceTB/SmolLM2-360M-Instruct" + + +@dataclass +class HFLLMConfig: + model: str = DEFAULT_ROUTER_MODEL + temperature: float = 0.0 + max_tokens: int = 64 + timeout: Optional[float] = 30.0 + + +@dataclass +class HuggingFaceLLMAgent: + """Remote HF Router-backed chat-completions agent.""" + + config: HFLLMConfig = field(default_factory=HFLLMConfig) + client: Optional[InferenceClient] = None + + def __post_init__(self) -> None: + if self.client is None: + token = os.environ.get("HF_TOKEN") or get_token() + if not token: + raise ValueError( + "No Hugging Face token found. Set HF_TOKEN or run `huggingface-cli login`." + ) + + self.client = InferenceClient( + api_key=token, + timeout=self.config.timeout, + ) + + def __call__(self, messages: List[Dict[str, str]]) -> str: + response = self.client.chat.completions.create( + model=self.config.model, + messages=messages, + temperature=self.config.temperature, + max_tokens=self.config.max_tokens, + ) + return response.choices[0].message.content.strip() + + +@dataclass +class LocalLLMConfig: + # Open-source/open-weight local models (examples): + # - Qwen/Qwen2.5-0.5B-Instruct + # - google/gemma-2-2b-it + model: str = DEFAULT_LOCAL_MODEL + temperature: float = 0.0 + max_new_tokens: int = 64 + device_map: str = "auto" + + +@dataclass +class LocalTransformersAgent: + """Local agent using Hugging Face Transformers (no inference credits).""" + + config: LocalLLMConfig = field(default_factory=LocalLLMConfig) + tokenizer: Optional[AutoTokenizer] = None + model: Optional[AutoModelForCausalLM] = None + + def __post_init__(self) -> None: + if self.tokenizer is None: + self.tokenizer = AutoTokenizer.from_pretrained(self.config.model) + if self.model is None: + self.model = AutoModelForCausalLM.from_pretrained( + self.config.model, + device_map=self.config.device_map, + ) + + def __call__(self, messages: List[Dict[str, str]]) -> str: + prompt = self.tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + ) + + inputs = self.tokenizer(prompt, return_tensors="pt") + inputs = {k: v.to(self.model.device) for k, v in inputs.items()} + + generated = self.model.generate( + **inputs, + max_new_tokens=self.config.max_new_tokens, + temperature=self.config.temperature, + do_sample=self.config.temperature > 0, + ) + + prompt_len = inputs["input_ids"].shape[1] + new_tokens = generated[0][prompt_len:] + return self.tokenizer.decode(new_tokens, skip_special_tokens=True).strip() + + +if __name__ == "__main__": + agent = LocalTransformersAgent(config=LocalLLMConfig()) + out = agent( + [ + {"role": "system", "content": "Reply with one short sentence."}, + {"role": "user", "content": "What is 2+2?"}, + ] + ) + print(out) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/config.py b/src/v2/nlu_pipeline/nlu_benchmark/config.py new file mode 100644 index 0000000..d0f2783 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/config.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +from dataclasses import asdict, dataclass +from typing import Literal + + +@dataclass +class ExperimentConfig: + """Selects one implementation along each experimental axis. + + prompting + minimal – goal + action list only (system prompt) + standard – adds ``MECHANISM_LIST`` to the system prompt + verbose – standard + ``MECHANISM_RULES`` + extra user fields (neighbours, hints). + Maze **layout** text is in the system / user split from ``observation``, not from prompting. + + observation + text_only – initial NL maze in system; current situation text per user turn; last3 history + image_text – same as text_only + live PNG each turn; last3 = full feedback + screenshot_only – live PNG only (no NL map); last3 = action-only lines + + context_window + current – only the current observation (no prior steps in the prompt) + last3 – last 3 steps as structured lines prepended to the prompt + + querying + step_by_step – one LLM call per env step (only the first action in FINAL_OUTPUT is used) + subgoal – SUB_GOAL + ACTIONS list; re-queries when queue empty, stuck, or mid-budget + full_trajectory – same format as subgoal, but exactly one LLM call per episode (no re-query) + """ + + prompting: Literal["minimal", "standard", "verbose"] = "minimal" + observation: Literal["text_only", "image_text", "screenshot_only"] = "text_only" + context_window: Literal["current", "last3"] = "current" + querying: Literal["step_by_step", "subgoal", "full_trajectory"] = "step_by_step" + + def to_dict(self) -> dict: + return asdict(self) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/env.py b/src/v2/nlu_pipeline/nlu_benchmark/env.py new file mode 100644 index 0000000..9e01473 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/env.py @@ -0,0 +1,216 @@ +from dataclasses import dataclass, field +from typing import Any, Dict, List, Set, Tuple, Optional + +Pos = Tuple[int, int] + +FACING_ORDER = ["NORTH", "EAST", "SOUTH", "WEST"] + +FACING_TO_DELTA: Dict[str, Tuple[int, int]] = { + "NORTH": (-1, 0), + "EAST": ( 0, 1), + "SOUTH": ( 1, 0), + "WEST": ( 0, -1), +} + + +@dataclass +class GridState: + rows: int + cols: int + walls: Set[Pos] + start: Pos + goal: Pos + agent_pos: Pos + facing: str = "NORTH" + step_count: int = 0 + max_steps: int = 50 + inventory: List[str] = field(default_factory=list) # collected key colors + keys: List[Dict[str, Any]] = field(default_factory=list) + doors: List[Dict[str, Any]] = field(default_factory=list) + switches: List[Dict[str, Any]] = field(default_factory=list) + gates: List[Dict[str, Any]] = field(default_factory=list) + + +@dataclass +class StepEvent: + type: str # TURNED, MOVED, BLOCKED, DONE, PICKUP, TOGGLED, NOTHING, WRONG_DONE, INVALID + message: str + + +class GridWorldEnv: + + def __init__( + self, + rows: int, + cols: int, + walls: Set[Pos], + start: Pos, + goal: Pos, + max_steps: int = 50, + mechanisms: Optional[Dict[str, Any]] = None, + ): + mechs = mechanisms or {} + self.initial = GridState( + rows=rows, + cols=cols, + walls=walls, + start=start, + goal=goal, + agent_pos=start, + max_steps=max_steps, + keys=mechs.get("keys", []), + doors=mechs.get("doors", []), + switches=mechs.get("switches", []), + gates=mechs.get("gates", []), + ) + self.state: Optional[GridState] = None + + def reset(self) -> GridState: + s = self.initial + self.state = GridState( + rows=s.rows, + cols=s.cols, + walls=set(s.walls), + start=s.start, + goal=s.goal, + agent_pos=s.start, + facing="NORTH", + step_count=0, + max_steps=s.max_steps, + inventory=[], + keys=[dict(k) for k in s.keys], + doors=[dict(d) for d in s.doors], + switches=[{**dict(sw), "on": bool(sw.get("on", False))} for sw in s.switches], + gates=[GridWorldEnv._gate_state_from_switches(dict(g), s.switches) for g in s.gates], + ) + return self.state + + @staticmethod + def _gate_state_from_switches(gate: Dict, switches: List[Dict]) -> Dict: + """Gates are open if any linked switch is on, else use initial/embedded state.""" + g = dict(gate) + gid = g.get("id") + if gid: + if any( + bool(sw.get("on")) and gid in sw.get("controls", []) + for sw in switches + ): + g["state"] = "open" + else: + g["state"] = g.get("state", g.get("initial_state", "closed")) + return g + + def step(self, action: str) -> tuple[GridState, StepEvent]: + assert self.state is not None, "Call reset() first." + + verb = action.strip().upper() + + # --- Turns --- + if verb in ("TURN_LEFT", "TURN_RIGHT"): + idx = FACING_ORDER.index(self.state.facing) + self.state.facing = FACING_ORDER[(idx + (-1 if verb == "TURN_LEFT" else 1)) % 4] + self.state.step_count += 1 + return self.state, StepEvent("TURNED", f"Now facing {self.state.facing}.") + + # --- Move one step forward --- + if verb == "MOVE_FORWARD": + dr, dc = FACING_TO_DELTA[self.state.facing] + r, c = self.state.agent_pos + nr, nc = r + dr, c + dc + reason = self._blocked(nr, nc) + if reason: + return self.state, StepEvent("BLOCKED", f"MOVE_FORWARD blocked by {reason}.") + self.state.agent_pos = (nr, nc) + # With matching key in inventory, moving onto a door tile opens it (no TOGGLE on doors) + door = self._door_at((nr, nc)) + if door and door["requires_key"] in self.state.inventory: + self.state.doors = [ + d for d in self.state.doors if tuple(d["position"]) != (nr, nc) + ] + self.state.step_count += 1 + if self.state.agent_pos == self.state.goal: + return self.state, StepEvent("DONE", f"Reached goal at {self.state.goal}.") + return self.state, StepEvent("MOVED", f"Moved to {self.state.agent_pos}.") + + # --- Pick up object at current position --- + if verb == "PICKUP": + pos = self.state.agent_pos + key = self._key_at(pos) + if key: + self.state.inventory.append(key["color"]) + self.state.keys = [k for k in self.state.keys if tuple(k["position"]) != pos] + self.state.step_count += 1 + return self.state, StepEvent("PICKUP", f"Picked up {key['color']} key.") + self.state.step_count += 1 + return self.state, StepEvent("NOTHING", f"Nothing to pick up at {pos}.") + + # --- Toggle facing switch only (opens/closes linked gates; doors and gates are not toggled directly) --- + if verb == "TOGGLE": + dr, dc = FACING_TO_DELTA[self.state.facing] + r, c = self.state.agent_pos + target = (r + dr, c + dc) + sw = self._switch_at(target) + if sw: + self._toggle_switch(sw) + self.state.step_count += 1 + st = "on" if sw.get("on") else "off" + return self.state, StepEvent("TOGGLED", f"Switch at {target} is {st}.") + self.state.step_count += 1 + if self._door_at(target) or self._gate_at(target): + return self.state, StepEvent("NOTHING", "Use PICKUP to collect keys. Doors open when you have the right key. Only switches can be TOGGLED (gates follow switch on/off).") + return self.state, StepEvent("NOTHING", f"No switch to toggle at {target}.") + + # --- Agent signals task complete --- + if verb == "DONE": + if self.state.agent_pos == self.state.goal: + return self.state, StepEvent("DONE", f"Task complete at {self.state.goal}.") + self.state.step_count += 1 + return self.state, StepEvent("WRONG_DONE", f"DONE called but not at goal {self.state.goal}.") + + return self.state, StepEvent("INVALID", f"Unknown action: {action}") + + # ------------------------------------------------------------------ + # Helpers + # ------------------------------------------------------------------ + + def _blocked(self, nr: int, nc: int) -> Optional[str]: + """Return a reason string if (nr, nc) is impassable, else None.""" + if nr < 1 or nr > self.state.rows or nc < 1 or nc > self.state.cols: + return "out of bounds" + if (nr, nc) in self.state.walls: + return "wall" + door = self._door_at((nr, nc)) + if door and door["requires_key"] not in self.state.inventory: + return f"locked {door['requires_key']} door" + gate = self._gate_at((nr, nc)) + if gate and gate.get("state", gate.get("initial_state", "closed")) == "closed": + return "closed gate" + return None + + def _key_at(self, pos: Pos): + return next((k for k in self.state.keys if tuple(k["position"]) == pos), None) + + def _door_at(self, pos: Pos): + return next((d for d in self.state.doors if tuple(d["position"]) == pos), None) + + def _switch_at(self, pos: Pos): + return next((s for s in self.state.switches if tuple(s["position"]) == pos), None) + + def _gate_at(self, pos: Pos): + return next((g for g in self.state.gates if tuple(g["position"]) == pos), None) + + def _recompute_gates_from_switches(self) -> None: + """A gate is open if any of its linked switches is on.""" + for gate in self.state.gates: + gid = gate.get("id") + if not gid: + continue + on = any( + bool(s.get("on")) and gid in s.get("controls", []) + for s in self.state.switches + ) + gate["state"] = "open" if on else "closed" + + def _toggle_switch(self, sw: Dict) -> None: + sw["on"] = not sw.get("on", False) + self._recompute_gates_from_switches() diff --git a/src/v2/nlu_pipeline/nlu_benchmark/examples/run_llm.py b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_llm.py new file mode 100644 index 0000000..8d4ac4f --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_llm.py @@ -0,0 +1,17 @@ +import os + +# Optional: paste a token here for quick runs, or set HF_TOKEN in your shell / `huggingface-cli login`. +_HF_TOKEN_FOR_THIS_SCRIPT = "" +if _HF_TOKEN_FOR_THIS_SCRIPT: + os.environ["HF_TOKEN"] = _HF_TOKEN_FOR_THIS_SCRIPT + +from nlu_benchmark.runner import EpisodeRunner +from nlu_benchmark.agents import HuggingFaceLLMAgent, HFLLMConfig + +runner = EpisodeRunner.from_json("nlu_benchmark/sample mazes/V02_winding_corridor.json") + +# Uses HFLLMConfig defaults (small Qwen on HF Router). Override model=... if needed. +agent = HuggingFaceLLMAgent(config=HFLLMConfig()) + +result = runner.run(agent) +print(result["success"]) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/examples/run_local_llm.py b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_local_llm.py new file mode 100644 index 0000000..02f578c --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_local_llm.py @@ -0,0 +1,15 @@ +from nlu_benchmark.runner import EpisodeRunner +from nlu_benchmark.agents import LocalTransformersAgent, LocalLLMConfig + +runner = EpisodeRunner.from_json("nlu_benchmark/sample mazes/V02_winding_corridor.json") + +# Small local model (no HF inference credits required). +agent = LocalTransformersAgent( + config=LocalLLMConfig( + model="HuggingFaceTB/SmolLM2-360M-Instruct", + max_new_tokens=16, + ) +) + +result = runner.run(agent) +print(result["success"]) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/examples/run_random.py b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_random.py new file mode 100644 index 0000000..4e7a3ca --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/examples/run_random.py @@ -0,0 +1,9 @@ +from nlu_benchmark.runner import EpisodeRunner +from nlu_benchmark.agents import RandomAgent + +runner = EpisodeRunner.from_json("nlu_benchmark/sample mazes/V01_empty_room.json") + +agent = RandomAgent() +result = runner.run(agent) + +print("Success:", result["success"]) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/feedback.py b/src/v2/nlu_pipeline/nlu_benchmark/feedback.py new file mode 100644 index 0000000..7bf58db --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/feedback.py @@ -0,0 +1,39 @@ +"""Step feedback strings for the episode loop — independent of prompt strategy.""" + +from __future__ import annotations + +from typing import Any, Literal + +ObservationKind = Literal["text_only", "image_text", "screenshot_only"] + + +def action_feedback_for_prompt(observation: ObservationKind, text: str) -> str: + """Step outcomes for ``Last result:`` / history; cleared for screenshot-only. Parse failures are never masked (see runner).""" + if observation == "screenshot_only": + return "" + return text + + +def format_step_feedback( + action: str, event_type: str, event_message: str, prev_pos: Any +) -> str: + """Format env step for ``Last result:`` (branches match ``StepEvent.type`` in ``env``).""" + if event_type == "BLOCKED": + return f"BLOCKED — {action}: {event_message} You remain at {prev_pos}." + if event_type == "TURNED": + return f"TURNED — {action}: {event_message}" + if event_type == "MOVED": + return f"MOVED — {action}: {event_message}" + if event_type == "DONE": + return f"SUCCESS — {action}: {event_message}" + if event_type == "PICKUP": + return f"PICKUP — {action}: {event_message}" + if event_type == "NOTHING": + return f"NOTHING — {action}: {event_message} You remain at {prev_pos}." + if event_type == "TOGGLED": + return f"TOGGLED — {action}: {event_message}" + if event_type == "WRONG_DONE": + return f"WRONG DONE — {action}: {event_message} You remain at {prev_pos}." + if event_type == "INVALID": + return f"INVALID — {action}: {event_message} You remain at {prev_pos}." + return f"{event_type} — {action}: {event_message}" diff --git a/src/v2/nlu_pipeline/nlu_benchmark/loader.py b/src/v2/nlu_pipeline/nlu_benchmark/loader.py new file mode 100644 index 0000000..c852f58 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/loader.py @@ -0,0 +1,23 @@ +import json +from pathlib import Path +from nlu_benchmark.env import GridWorldEnv + + +def load_maze(path) -> GridWorldEnv: + data = json.loads(Path(path).read_text(encoding="utf-8")) + maze = data["maze"] + rows, cols = maze["dimensions"] + walls = {tuple(w) for w in maze["walls"]} + start = tuple(maze["start"]) + goal = tuple(maze["goal"]) + max_steps = data.get("max_steps", 100) + mechanisms = data.get("mechanisms", {}) + return GridWorldEnv( + rows=rows, + cols=cols, + walls=walls, + start=start, + goal=goal, + max_steps=max_steps, + mechanisms=mechanisms, + ) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/observation.py b/src/v2/nlu_pipeline/nlu_benchmark/observation.py new file mode 100644 index 0000000..a4e3062 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/observation.py @@ -0,0 +1,92 @@ +"""Observation builder for the NLU benchmark. + +* **text_only** / **image_text** – The runner appends initial NL layout to the + system message once per episode. Each user turn: ``render_user_observation_text``, + last3 history, and live PNG when image is enabled. + +* **screenshot_only** – No initial NL block; user gets live PNG and action-only + history; step feedback as configured elsewhere. Fallback PNG on disk if live + render fails. +""" + +from __future__ import annotations + +import base64 +from pathlib import Path +from typing import List, Literal, Optional + +from nlu_benchmark.renderer import render_maze_image_png_bytes, render_user_observation_text + + +class _StepRecord: + __slots__ = ("position", "facing", "action", "feedback") + + def __init__(self, position, facing, action, feedback): + self.position = position + self.facing = facing + self.action = action + self.feedback = feedback + + +class ObservationBuilder: + """Builds what the model sees each step from config.observation + context_window.""" + + def __init__( + self, + observation: Literal["text_only", "image_text", "screenshot_only"], + context_window: Literal["current", "last3"], + ) -> None: + self._observation = observation + self._context_window = context_window + self._history: List[_StepRecord] = [] + + def reset(self) -> None: + self._history.clear() + + def record(self, position, facing: str, action: str, feedback: str) -> None: + self._history.append(_StepRecord(position, facing, action, feedback)) + + def history_text(self) -> str: + if self._context_window == "current" or not self._history: + return "" + recs = self._history[-3:] + if self._observation == "screenshot_only": + lines = ["Recent steps (oldest first, action only):"] + for rec in recs: + lines.append(f" {rec.action}") + return "\n".join(lines) + lines = ["Recent history (last 3 steps, oldest first):"] + for rec in recs: + lines.append( + f" {rec.position} facing {rec.facing} -> {rec.action} -> {rec.feedback}" + ) + return "\n".join(lines) + + def build_text(self, state) -> str: + if self._observation == "screenshot_only": + return "" + return render_user_observation_text(state) + + def build_image_blocks(self, state, maze_json_path: Optional[str]) -> List[dict]: + if self._observation == "text_only": + return [] + try: + raw = render_maze_image_png_bytes(state) + except Exception: + raw = b"" + if raw: + b64 = base64.b64encode(raw).decode("utf-8") + return [{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}}] + b = _load_maze_png_block(maze_json_path) + return [b] if b else [] + + +def _load_maze_png_block(maze_json_path: Optional[str]) -> Optional[dict]: + if not maze_json_path: + return None + p = Path(maze_json_path) + img_path = p.parent / "pngs" / (p.stem + ".png") + if not img_path.exists(): + return None + b64 = base64.b64encode(img_path.read_bytes()).decode("utf-8") + return {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/parser.py b/src/v2/nlu_pipeline/nlu_benchmark/parser.py new file mode 100644 index 0000000..d321cd9 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/parser.py @@ -0,0 +1,88 @@ +import re +from typing import List, Optional + +# Canonical order for prompts / error messages (single source of truth). +ACTION_ORDER = ( + "TURN_LEFT", + "TURN_RIGHT", + "MOVE_FORWARD", + "PICKUP", + "TOGGLE", + "DONE", +) +VALID_ACTIONS = set(ACTION_ORDER) +ACTIONS_HINT = ", ".join(ACTION_ORDER) + +_SYNONYMS = { + "turn left": "TURN_LEFT", + "rotate left": "TURN_LEFT", + "turn right": "TURN_RIGHT", + "rotate right": "TURN_RIGHT", + "move forward": "MOVE_FORWARD", + "go forward": "MOVE_FORWARD", + "forward": "MOVE_FORWARD", + "pick up": "PICKUP", + "pickup": "PICKUP", + "toggle": "TOGGLE", + "done": "DONE", + "finished": "DONE", +} + +_FINAL_OUTPUT_RE = re.compile(r"(?i)^FINAL_OUTPUT\s*:\s*(.*)\s*$") + + +def parse_final_output( + text: str, allow_regex_fallback: bool = True +) -> Optional[List[str]]: + """Parse model output into one or more validated action tokens, or None. + + Checks the last 5 non-empty lines for: + FINAL_OUTPUT: or FINAL_OUTPUT: a, b, c + (comma-separated, each token must be a valid action). + + If that fails, optionally falls back to a single action from the last + matching synonym in the full text. + """ + lines = [ln.strip() for ln in text.splitlines() if ln.strip()] + trailing = lines[-5:] if len(lines) >= 5 else lines + + for line in reversed(trailing): + m = _FINAL_OUTPUT_RE.match(line) + if m: + rest = m.group(1).strip() + if not rest: + return None + out: List[str] = [] + for part in rest.split(","): + p = part.strip() + if not p: + continue + a = normalize_action(p) + if not a: + return None + out.append(a) + return out if out else None + if re.match(r"(?i)^FINAL_OUTPUT\s*:", line): + return None + + if allow_regex_fallback: + norm = text.lower() + matches = [] + for phrase, canonical in _SYNONYMS.items(): + pattern = re.escape(phrase).replace(r"\ ", r"\s+") + for m in re.finditer(pattern, norm): + matches.append((m.start(), canonical)) + if matches: + matches.sort(key=lambda x: x[0]) + return [matches[-1][1]] + + return None + + +def normalize_action(raw: str) -> str: + """Normalize a raw token from a comma-separated list into a canonical action string. + + Returns "" for unrecognized tokens. + """ + verb = raw.strip().upper().replace(" ", "_") + return verb if verb in VALID_ACTIONS else "" diff --git a/src/v2/nlu_pipeline/nlu_benchmark/prompt_strategies.py b/src/v2/nlu_pipeline/nlu_benchmark/prompt_strategies.py new file mode 100644 index 0000000..73aa321 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/prompt_strategies.py @@ -0,0 +1,196 @@ +"""Prompt strategies for the NLU benchmark. + + minimal – goal + action list. Per-turn user text is ``render_user_observation_text``; + initial layout is in the system message when observation is text or image+text. + standard – system prompt adds the static ``MECHANISM_LIST``; user layout same as + minimal for text observation content. + verbose – system: mechanism list + domain rules; user: neighbour view, + inventory, per-step mechanism hints. + +Initial maze NL is ``render_initial_maze_text`` in the system prompt; each user +turn includes ``render_user_observation_text`` (when text or image+text), not +here. +""" + +from __future__ import annotations + +from nlu_benchmark.env import FACING_ORDER, FACING_TO_DELTA + +# Standard system prompt: high-level object types. Verbose reuses this and adds +# MECHANISM_RULES + per-step hints in the user turn. +MECHANISM_LIST = ( + "The environment may contain:\n" + "- Keys: pick them up to open doors of the matching color\n" + "- Doors: blocked passages that require a matching key\n" + "- Switches: toggle these to open or close linked gates\n" + "- Gates: blocked passages controlled by switches\n" +) + +# Verbose system prompt: operational rules (action semantics). Not in Standard. +MECHANISM_RULES = ( + "RULES (domain logic):\n" + " - PICKUP: take a key on your current cell and store it in your inventory.\n" + " - Doors: keys and doors are color-matched. With the matching key in your inventory, move onto\n" + " the door to open it\n" + " - Switches: face a switch and TOGGLE to flip it on or off. Only switches are toggled. Linked\n" + " gates are open if at least one linked switch is on, and closed if all are off.\n" + " - Gates: you cannot TOGGLE a gate. CLOSED gates block movement; OPEN gates do not.\n" + " - Closed gates and doors you lack a key for block movement like walls until resolved.\n" + " - Use DONE only when you are standing on the goal cell." +) + +# How models must terminate the reply (Minimal + Standard + Verbose base). +FINAL_OUTPUT_INSTRUCTION = ( + "On the last line, output exactly:\n" + "FINAL_OUTPUT: or FINAL_OUTPUT: , , ... " + "(comma-separated; one or more valid actions)" +) + + +class PromptStrategy: + """Base: shared action hint injection.""" + + def __init__(self, actions_hint: str) -> None: + self._actions_hint = actions_hint + + def build_system_prompt(self, querying_suffix: str = "") -> str: + raise NotImplementedError + + def build_user_prompt( + self, + obs_text: str, + history_text: str, + state, + last_feedback: str, + ) -> str: + raise NotImplementedError + + +# --------------------------------------------------------------------------- +# Minimal — goal + action list only +# --------------------------------------------------------------------------- + +class MinimalPromptStrategy(PromptStrategy): + def build_system_prompt(self, querying_suffix: str = "") -> str: + return ( + "Task: move to the goal cell in the grid.\n" + f"Valid actions: {self._actions_hint}.\n" + f"{FINAL_OUTPUT_INSTRUCTION}" + + (f"\n\n{querying_suffix}" if querying_suffix else "") + ) + + def build_user_prompt( + self, + obs_text: str, + history_text: str, + state, + last_feedback: str, + ) -> str: + history_block = f"{history_text}\n\n" if history_text else "" + obs_block = f"Observation:\n{obs_text}\n\n" if obs_text else "" + return ( + f"{history_block}" + f"{obs_block}" + f"Position: {state.agent_pos} | Facing: {state.facing} | Goal: {state.goal} | " + f"Step {state.step_count + 1}/{state.max_steps}\n" + f"Last result: {last_feedback}\n" + "What is your next action?" + ) + + +# --------------------------------------------------------------------------- +# Standard — mechanism list only (user prompt same as Minimal) +# --------------------------------------------------------------------------- + +class StandardPromptStrategy(MinimalPromptStrategy): + def build_system_prompt(self, querying_suffix: str = "") -> str: + return ( + "Task: move to the goal cell in the grid.\n" + f"{MECHANISM_LIST}\n" + f"Valid actions: {self._actions_hint}.\n" + f"{FINAL_OUTPUT_INSTRUCTION}" + + (f"\n\n{querying_suffix}" if querying_suffix else "") + ) + + +# --------------------------------------------------------------------------- +# Verbose — mechanism list + rules (system); optional hint lines (user) +# --------------------------------------------------------------------------- + +class VerbosePromptStrategy(StandardPromptStrategy): + def build_system_prompt(self, querying_suffix: str = "") -> str: + std = StandardPromptStrategy.build_system_prompt(self, "").rstrip() + chunks = [std, MECHANISM_RULES] + if querying_suffix: + chunks.append(querying_suffix) + return "\n\n".join(chunks) + + def build_user_prompt( + self, + obs_text: str, + history_text: str, + state, + last_feedback: str, + ) -> str: + steps_left = state.max_steps - state.step_count + budget_warn = ( + f" WARNING: Only {steps_left} steps remaining!\n" + if steps_left <= max(5, state.max_steps // 5) + else "" + ) + r, c = state.agent_pos + gr, gc = state.goal + manhattan = abs(r - gr) + abs(c - gc) + + facing_idx = FACING_ORDER.index(state.facing) + rel_dirs = [ + ("AHEAD", FACING_ORDER[facing_idx % 4]), + ("RIGHT", FACING_ORDER[(facing_idx + 1) % 4]), + ("BEHIND", FACING_ORDER[(facing_idx + 2) % 4]), + ("LEFT", FACING_ORDER[(facing_idx + 3) % 4]), + ] + neighbour_lines = [] + for rel, cardinal in rel_dirs: + dr, dc = FACING_TO_DELTA[cardinal] + nr, nc = r + dr, c + dc + if nr < 1 or nr > state.rows or nc < 1 or nc > state.cols: + desc = "out of bounds" + elif (nr, nc) in state.walls: + desc = "wall" + elif (nr, nc) == state.goal: + desc = f"GOAL ({nr},{nc})" + else: + desc = f"open ({nr},{nc})" + neighbour_lines.append(f" {rel}: {desc}") + neighbour_block = "From your perspective:\n" + "\n".join(neighbour_lines) + "\n" + + mechanism_block = _mechanism_hints_text(state) + + history_block = f"{history_text}\n\n" if history_text else "" + obs_block = f"Observation:\n{obs_text}\n\n" if obs_text else "" + inventory_str = ", ".join(state.inventory) if state.inventory else "none" + + return ( + f"{history_block}" + f"{obs_block}" + f"Position: {state.agent_pos} | Facing: {state.facing} | Goal: {state.goal} | " + f"Manhattan: {manhattan} | Step {state.step_count + 1}/{state.max_steps} ({steps_left} left)\n" + f"Inventory: {inventory_str}\n" + f"{budget_warn}" + f"{neighbour_block}" + f"{mechanism_block}" + f"Last result: {last_feedback}\n" + "What is your next action?" + ) + + +def _mechanism_hints_text(state) -> str: + """Short reminders when the map has interactive objects; observation still has details.""" + lines = [] + if state.keys or state.doors: + lines.append(" - PICKUP keys; with the right key, MOVE_FORWARD into a door to open it.") + if state.switches or state.gates: + lines.append(" - Face a switch and TOGGLE; gates follow linked switches (do not TOGGLE gates).") + if not lines: + return "" + return "Hints:\n" + "\n".join(lines) + "\n" diff --git a/src/v2/nlu_pipeline/nlu_benchmark/querying.py b/src/v2/nlu_pipeline/nlu_benchmark/querying.py new file mode 100644 index 0000000..fcf352c --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/querying.py @@ -0,0 +1,92 @@ +"""Querying modes for the NLU benchmark. + +A single `QueryingMode` class covers all three behaviours; only `should_query()` +and a few small details differ: + + step_by_step — one LLM call per env step: queue holds at most one action + (only the first action from FINAL_OUTPUT is used; then re-query). + subgoal — same output format as full trajectory, but re-query when the + queue runs out, after failures, or mid-episode. + full_trajectory — one query per episode; same SUB_GOAL / ACTIONS format + (or FINAL_OUTPUT: … as fallback, like step_by_step). + +The episode loop lives in ExperimentRunner.run() (runner.py), not here. +""" + +from __future__ import annotations + +import re +from typing import List, Literal + +from nlu_benchmark.parser import normalize_action, parse_final_output + +QueryingKind = Literal["step_by_step", "subgoal", "full_trajectory"] + +_SUBGOAL_RE = re.compile(r"(?i)SUB_GOAL\s*:\s*(.+)") +_ACTIONS_RE = re.compile(r"(?i)ACTIONS\s*:\s*(.+)") + + +class QueryingMode: + """When to call the model and how to parse its reply.""" + + def __init__(self, kind: QueryingKind) -> None: + self.kind = kind + self.current_subgoal = "" + self._trajectory_loaded = False + + def reset(self) -> None: + self.current_subgoal = "" + self._trajectory_loaded = False + + def should_query(self, queue, failures) -> bool: + if self.kind == "step_by_step": + # With at most one queued action (see parse_actions), this is true after each step. + return not queue + if self.kind == "subgoal": + return not queue or failures >= 3 + # full_trajectory + return not self._trajectory_loaded and not queue + + def parse_actions(self, model_text: str) -> List[str]: + if self.kind == "step_by_step": + out = parse_final_output(model_text) + return [out[0]] if out else [] + + m = _SUBGOAL_RE.search(model_text) + self.current_subgoal = m.group(1).strip() if m else "" + + m2 = _ACTIONS_RE.search(model_text) + if m2: + actions = [a for a in (normalize_action(t) for t in m2.group(1).split(",")) if a] + else: + out = parse_final_output(model_text) + actions = out if out else [] + + if self.kind == "full_trajectory" and actions: + self._trajectory_loaded = True + return actions + + def system_prompt_suffix(self) -> str: + if self.kind == "step_by_step": + return "" + if self.kind == "subgoal": + return ( + "For each turn output:\n" + " SUB_GOAL: \n" + " ACTIONS: " + ) + return ( + "Output your complete trajectory once as:\n" + " SUB_GOAL: \n" + " ACTIONS: \n" + "The last action in ACTIONS should be DONE (when you expect to be at the goal).\n" + "You will not be queried again — this is your only planning turn." + ) + + def step_metadata(self) -> dict: + if self.kind == "step_by_step": + return {} + meta = {"subgoal": self.current_subgoal} + if self.kind == "full_trajectory": + meta["full_trajectory"] = True + return meta diff --git a/src/v2/nlu_pipeline/nlu_benchmark/renderer.py b/src/v2/nlu_pipeline/nlu_benchmark/renderer.py new file mode 100644 index 0000000..ab00dff --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/renderer.py @@ -0,0 +1,130 @@ +"""Maze text split: **initial** layout (system) vs **current** situation (user turn).""" + +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path + +from nlu_benchmark.env import GridState + +_RENDER_DATASET_MOD = None + + +def _render_dataset_module(): + """Load ``automatic_maze_generation/render_dataset.py`` without requiring ``v2`` on ``PYTHONPATH``.""" + global _RENDER_DATASET_MOD + if _RENDER_DATASET_MOD is None: + path = Path(__file__).resolve().parents[2] / "automatic_maze_generation" / "render_dataset.py" + name = "_multinet_automatic_maze_generation_render_dataset" + spec = importlib.util.spec_from_file_location(name, path) + if spec is None or spec.loader is None: + raise ImportError(f"Cannot load maze renderer from {path}") + mod = importlib.util.module_from_spec(spec) + sys.modules[name] = mod + spec.loader.exec_module(mod) + _RENDER_DATASET_MOD = mod + return _RENDER_DATASET_MOD + + +def _grid_state_to_maze_payload(state: GridState) -> dict: + """JSON-shaped maze dict for ``render_maze_payload`` / ``render_maze_payload_bytes``.""" + return { + "task_id": "nlu_live", + "maze": { + # Unified convention: payloads are always (row, col). + "dimensions": [state.rows, state.cols], + "walls": [list(w) for w in sorted(state.walls)], + "start": list(state.start), + "goal": list(state.goal), + }, + "mechanisms": { + "keys": [dict(k) for k in state.keys], + "doors": [dict(d) for d in state.doors], + "switches": [dict(s) for s in state.switches], + "gates": [dict(g) for g in state.gates], + }, + } + + +def _static_layout_lines(state: GridState) -> list[str]: + wall_str = ", ".join(f"({r},{c})" for r, c in sorted(state.walls)) or "none" + return [ + f"The world is a {state.rows} by {state.cols} grid.", + "Coordinates are given as (row, column).", + "The top-left corner is (1,1).", + f"The start is at {state.start}.", + f"The goal is at {state.goal}.", + f"The following cells are walls: {wall_str}.", + ] + + +def _mechanism_lines(state: GridState) -> list[str]: + parts: list[str] = [] + for key in state.keys: + r, c = key["position"] + parts.append(f"There is a {key['color']} key at ({r},{c}).") + + for door in state.doors: + r, c = door["position"] + parts.append( + f"There is a locked {door['requires_key']} door at ({r},{c})." + f" It requires the {door['requires_key']} key to open." + ) + + for switch in state.switches: + r, c = switch["position"] + controls = ", ".join(switch.get("controls", [])) + on_off = "on" if switch.get("on") else "off" + parts.append( + f"There is a {switch.get('switch_type', 'toggle')} switch at ({r},{c}) (currently {on_off})." + f" It controls: {controls}." + ) + + for gate in state.gates: + r, c = gate["position"] + cur = gate.get("state", gate.get("initial_state", "closed")) + parts.append( + f"There is a gate ({gate['id']}) at ({r},{c})." + f" It is currently {cur} (initially {gate.get('initial_state', 'closed')})." + ) + return parts + + +def render_initial_maze_text(state: GridState) -> str: + """Episode layout for the **system** prompt. Pass ``state`` from ``env.reset()``.""" + return "\n".join(_static_layout_lines(state) + _mechanism_lines(state)) + + +def render_user_observation_text(state: GridState) -> str: + """**Current** state for the **user** turn (text or image+text modes).""" + inv = ", ".join(state.inventory) if state.inventory else "empty" + head = [ + "Current situation (this step):", + f"The goal is at {state.goal}.", + f"You are at {state.agent_pos} facing {state.facing}.", + "Environment steps used so far: " + f"{state.step_count} (max {state.max_steps} before timeout).", + f"Your inventory: {inv}.", + "", + "Map contents as of this step (keys on the ground, doors, switches, gates):", + ] + mech = _mechanism_lines(state) + if mech: + head.extend(mech) + else: + head.append("(No keys on the ground, doors, switches, or gates in the current state description.)") + return "\n".join(head) + + +def render_maze_image_png_bytes(state: GridState) -> bytes: + """Render the current ``GridState`` to a PNG (same style as ``render_dataset.render_maze_payload``).""" + mod = _render_dataset_module() + payload = _grid_state_to_maze_payload(state) + ar, ac = state.agent_pos + return mod.render_maze_payload_bytes( + payload, + dpi=150, + agent_pos=(ar, ac), + facing=state.facing, + ) diff --git a/src/v2/nlu_pipeline/nlu_benchmark/runner.py b/src/v2/nlu_pipeline/nlu_benchmark/runner.py new file mode 100644 index 0000000..39427ee --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/runner.py @@ -0,0 +1,219 @@ +"""ExperimentRunner — the single episode loop for all experiment configurations. + +Usage +----- + from nlu_benchmark.config import ExperimentConfig + from nlu_benchmark.runner import build_runner + + cfg = ExperimentConfig(prompting="verbose", querying="full_trajectory") + runner = build_runner(cfg, env, maze_json_path="path/to/maze.json") + result = runner.run(agent) # verbose=True: print progress + result = runner.run(agent, verbose=False) # quiet for batch runs + +Or from a JSON file directly: + + runner = ExperimentRunner.from_json("path/to/maze.json", config=cfg) + result = runner.run(agent) +""" + +from __future__ import annotations + +from typing import Callable, List, Optional + +from nlu_benchmark.config import ExperimentConfig +from nlu_benchmark.feedback import action_feedback_for_prompt, format_step_feedback +from nlu_benchmark.observation import ObservationBuilder +from nlu_benchmark.prompt_strategies import ( + PromptStrategy, + MinimalPromptStrategy, + StandardPromptStrategy, + VerbosePromptStrategy, +) +from nlu_benchmark.parser import ACTIONS_HINT +from nlu_benchmark.querying import QueryingMode +from nlu_benchmark.renderer import render_initial_maze_text + + +# --------------------------------------------------------------------------- +# Factory +# --------------------------------------------------------------------------- + +def build_runner( + config: ExperimentConfig, + env, + maze_json_path: Optional[str] = None, +) -> ExperimentRunner: + """Assemble an ExperimentRunner from a config. + + This is the one place that maps config values to concrete implementations. + """ + obs = ObservationBuilder(config.observation, config.context_window) + + prompt: PromptStrategy = { + "minimal": MinimalPromptStrategy, + "standard": StandardPromptStrategy, + "verbose": VerbosePromptStrategy, + }[config.prompting](ACTIONS_HINT) + + querying = QueryingMode(config.querying) + + return ExperimentRunner( + env=env, + config=config, + obs_builder=obs, + prompt_strategy=prompt, + querying_mode=querying, + maze_json_path=maze_json_path, + ) + + +# --------------------------------------------------------------------------- +# Runner +# --------------------------------------------------------------------------- + +class ExperimentRunner: + """Runs a maze episode. Owns the full episode loop.""" + + def __init__( + self, + env, + config: ExperimentConfig, + obs_builder: ObservationBuilder, + prompt_strategy: PromptStrategy, + querying_mode, + maze_json_path: Optional[str] = None, + ) -> None: + self.env = env + self.config = config + self.obs = obs_builder + self.prompt = prompt_strategy + self.querying = querying_mode + self.maze_json_path = maze_json_path + + @classmethod + def from_json( + cls, + path: str, + config: Optional[ExperimentConfig] = None, + ) -> ExperimentRunner: + from nlu_benchmark.loader import load_maze + return build_runner(config or ExperimentConfig(), load_maze(path), path) + + # ------------------------------------------------------------------ + # Episode loop + # ------------------------------------------------------------------ + + def run(self, agent: Callable[[List[dict]], str], *, verbose: bool = True) -> dict: + """Run one full episode. + + Parameters + ---------- + verbose: + If True, print per-step progress to stdout. Use False for batch evaluation. + + Returns + ------- + dict: + success – bool + steps_used – int + final_state – GridState + transcript – list[dict] with one record per executed action + config – dict, serialised ExperimentConfig for this run + """ + state = self.env.reset() + self.obs.reset() + self.querying.reset() + + system_prompt = self.prompt.build_system_prompt(self.querying.system_prompt_suffix()) + if self.config.observation in ("text_only", "image_text"): + system_prompt = ( + f"{system_prompt}\n\nInitial maze (fixed for this episode):\n" + f"{render_initial_maze_text(state)}" + ) + messages: List[dict] = [{"role": "system", "content": system_prompt}] + + action_queue: List[str] = [] + last_feedback = "Episode start." + consecutive_failures = 0 + transcript: List[dict] = [] + max_steps = self.env.initial.max_steps + + while state.step_count < max_steps: + + # --- Query model if needed --- + if self.querying.should_query(action_queue, consecutive_failures): + consecutive_failures = 0 + messages.append(self._build_message(state, last_feedback)) + model_text = agent(messages) + messages.append({"role": "assistant", "content": model_text}) + action_queue = self.querying.parse_actions(model_text) + + if not action_queue: + last_feedback = ( + f"Could not parse FINAL_OUTPUT (one or more valid actions). " + f"Use only: {ACTIONS_HINT}." + ) + continue + + if not action_queue: + # e.g. full trajectory finished executing (no re-query) + break + + # --- Execute next queued action --- + action = action_queue.pop(0) + position_before = state.agent_pos + + state, event = self.env.step(action) + step_detail = format_step_feedback(action, event.type, event.message, position_before) + last_feedback = action_feedback_for_prompt(self.config.observation, step_detail) + event_type = event.type + + if event_type in {"BLOCKED", "WRONG_DONE", "INVALID"}: + consecutive_failures += 1 + action_queue.clear() # abandon the rest of the planned sequence + else: + consecutive_failures = 0 + + transcript.append({ + "step": state.step_count, + "position_before": position_before, + "position_after": state.agent_pos, + "action": action, + "event_type": event_type, + "feedback": step_detail, + **self.querying.step_metadata(), + }) + + self.obs.record(state.agent_pos, state.facing, action, last_feedback) + + if event_type == "DONE": + if verbose: + print(f" Success at step {state.step_count}") + return self._result(True, state, transcript) + + if verbose: + print(f" Step {state.step_count}/{max_steps}: {action} -> {event_type}") + + return self._result(False, state, transcript) + + # ------------------------------------------------------------------ + # Helpers + # ------------------------------------------------------------------ + + def _build_message(self, state, last_feedback: str) -> dict: + obs_text = self.obs.build_text(state) + history_text = self.obs.history_text() + prompt_text = self.prompt.build_user_prompt(obs_text, history_text, state, last_feedback) + images = self.obs.build_image_blocks(state, self.maze_json_path) + if images: + return {"role": "user", "content": images + [{"type": "text", "text": prompt_text}]} + return {"role": "user", "content": prompt_text} + + def _result(self, success: bool, state, transcript: List[dict]) -> dict: + return { + "success": success, + "steps_used": state.step_count, + "final_state": state, + "transcript": transcript, + "config": self.config.to_dict(), + } diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V01_empty_room.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V01_empty_room.json new file mode 100644 index 0000000..7da7b35 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V01_empty_room.json @@ -0,0 +1,52 @@ +{ + "task_id": "validation_10_v01_empty_room", + "version": "2.0", + "seed": 101, + "difficulty_tier": 1, + "description": "Baseline open room with no mechanisms.", + "maze": { + "dimensions": [ + 8, + 8 + ], + "walls": [], + "start": [ + 1, + 1 + ], + "goal": [ + 6, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 6, + 6 + ], + "auxiliary_conditions": [] + }, + "metadata": { + "chain_pattern": "none", + "tiling": "square", + "wall_topology": "open" + }, + "max_steps": 100 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V02_winding_corridor.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V02_winding_corridor.json new file mode 100644 index 0000000..fdd300c --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V02_winding_corridor.json @@ -0,0 +1,258 @@ +{ + "task_id": "validation_10_v02_winding_corridor", + "version": "2.0", + "seed": 102, + "difficulty_tier": 1, + "description": "Single-path serpentine corridor with repeated direction changes.", + "maze": { + "dimensions": [ + 20, + 8 + ], + "walls": [ + [ + 1, + 2 + ], + [ + 1, + 6 + ], + [ + 2, + 2 + ], + [ + 2, + 4 + ], + [ + 2, + 6 + ], + [ + 3, + 2 + ], + [ + 3, + 4 + ], + [ + 3, + 6 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 4, + 6 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 5, + 6 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 7, + 2 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 9, + 6 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 11, + 2 + ], + [ + 11, + 4 + ], + [ + 11, + 6 + ], + [ + 12, + 2 + ], + [ + 12, + 4 + ], + [ + 12, + 6 + ], + [ + 13, + 2 + ], + [ + 13, + 4 + ], + [ + 13, + 6 + ], + [ + 14, + 2 + ], + [ + 14, + 4 + ], + [ + 14, + 6 + ], + [ + 15, + 2 + ], + [ + 15, + 4 + ], + [ + 15, + 6 + ], + [ + 16, + 2 + ], + [ + 16, + 4 + ], + [ + 16, + 6 + ], + [ + 17, + 2 + ], + [ + 17, + 4 + ], + [ + 17, + 6 + ], + [ + 18, + 4 + ] + ], + "start": [ + 1, + 1 + ], + "goal": [ + 18, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 18, + 6 + ], + "auxiliary_conditions": [] + }, + "metadata": { + "chain_pattern": "none", + "tiling": "square", + "wall_topology": "serpentine_corridor", + "turn_count": 5 + }, + "max_steps": 220 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V03_multi_path.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V03_multi_path.json new file mode 100644 index 0000000..70f6119 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V03_multi_path.json @@ -0,0 +1,255 @@ +{ + "task_id": "validation_10_v03_multi_path", + "version": "2.0", + "seed": 103, + "difficulty_tier": 1, + "description": "Three structurally distinct routes connect the start room to the goal room.", + "maze": { + "dimensions": [ + 12, + 12 + ], + "walls": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 1, + 3 + ], + [ + 1, + 9 + ], + [ + 1, + 10 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 2, + 9 + ], + [ + 2, + 10 + ], + [ + 3, + 5 + ], + [ + 3, + 7 + ], + [ + 3, + 9 + ], + [ + 3, + 10 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 7 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 7 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 6, + 2 + ], + [ + 6, + 3 + ], + [ + 6, + 4 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 6, + 8 + ], + [ + 6, + 9 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 4 + ], + [ + 7, + 6 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 3 + ], + [ + 9, + 9 + ], + [ + 9, + 10 + ], + [ + 10, + 1 + ], + [ + 10, + 2 + ], + [ + 10, + 3 + ], + [ + 10, + 9 + ], + [ + 10, + 10 + ] + ], + "start": [ + 1, + 6 + ], + "goal": [ + 10, + 6 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 10, + 6 + ], + "auxiliary_conditions": [] + }, + "metadata": { + "chain_pattern": "none", + "tiling": "square", + "wall_topology": "triple_route_maze", + "path_count": 3, + "path_lengths": [ + 11, + 15, + 19 + ] + }, + "max_steps": 140 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V04_single_key.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V04_single_key.json new file mode 100644 index 0000000..de290aa --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V04_single_key.json @@ -0,0 +1,96 @@ +{ + "task_id": "validation_10_v04_single_key", + "version": "2.0", + "seed": 104, + "difficulty_tier": 2, + "description": "Retrieve the red key from the lower vault, return through the foyer, and open the red door guarding the goal room.", + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 10], + [5, 4], [5, 5], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 10], + [8, 1], [8, 3], [8, 4], [8, 5], [8, 10], + [9, 4], [9, 5], [9, 6], [9, 7], [9, 8], [9, 9], [9, 10], + [10, 4], [10, 5], [10, 6], [10, 7], [10, 8], [10, 9], [10, 10], + [11, 4], [11, 5], [11, 6], [11, 7], [11, 8], [11, 9], [11, 10], + [12, 1], [12, 3], [12, 4], [12, 5], [12, 6], [12, 7], [12, 8], [12, 9], [12, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 12, + 2 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 8 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 12, + 2 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 1, + "sequence": [ + { + "step": 1, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + } + ], + "notation": "kR -> DR -> G" + }, + "metadata": { + "chain_pattern": "key_door", + "tiling": "square", + "wall_topology": "room_chain_with_key_branch" + }, + "max_steps": 140 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V05_single_switch.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V05_single_switch.json new file mode 100644 index 0000000..b520383 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V05_single_switch.json @@ -0,0 +1,99 @@ +{ + "task_id": "validation_10_v05_single_switch", + "version": "2.0", + "seed": 105, + "difficulty_tier": 2, + "description": "Trigger the switch in the lower vault to open the gate guarding the goal room.", + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 10], + [5, 4], [5, 5], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 10], + [8, 1], [8, 3], [8, 4], [8, 5], [8, 10], + [9, 4], [9, 5], [9, 6], [9, 7], [9, 8], [9, 9], [9, 10], + [10, 4], [10, 5], [10, 6], [10, 7], [10, 8], [10, 9], [10, 10], + [11, 4], [11, 5], [11, 6], [11, 7], [11, 8], [11, 9], [11, 10], + [12, 1], [12, 3], [12, 4], [12, 5], [12, 6], [12, 7], [12, 8], [12, 9], [12, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 12, + 2 + ] + }, + "mechanisms": { + "keys": [], + "doors": [], + "switches": [ + { + "id": "s1", + "position": [ + 5, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 9, + 2 + ], + "initial_state": "closed" + } + ], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 12, + 2 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 1, + "sequence": [ + { + "step": 1, + "type": "switch-gate", + "element": "s1", + "unlocks": "g1" + } + ], + "notation": "s1 -> g1 -> G" + }, + "metadata": { + "chain_pattern": "switch_gate", + "tiling": "square", + "wall_topology": "room_chain_with_switch_branch" + }, + "max_steps": 140 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V06_chain_ks.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V06_chain_ks.json new file mode 100644 index 0000000..3bb1fab --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V06_chain_ks.json @@ -0,0 +1,124 @@ +{ + "task_id": "validation_10_v06_chain_ks", + "version": "2.0", + "seed": 106, + "difficulty_tier": 3, + "description": "The red key opens the upper choke; the switch in the lower crypt opens the final gate to the goal chamber.", + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 6], [4, 10], + [5, 4], [5, 5], [5, 6], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 6], [7, 10], + [8, 1], [8, 2], [8, 3], [8, 4], [8, 5], [8, 6], [8, 10], + [9, 1], [9, 2], [9, 3], [9, 4], [9, 5], [9, 6], [9, 10], + [10, 1], [10, 2], [10, 3], [10, 4], [10, 5], [10, 6], [10, 10], + [11, 1], [11, 2], [11, 3], [11, 4], [11, 5], [11, 6], [11, 10], + [12, 1], [12, 2], [12, 3], [12, 4], [12, 5], [12, 6], [12, 7], [12, 9], [12, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 2, + 3 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 6, + 8 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 11, + 8 + ], + "initial_state": "closed" + } + ], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 12, + 8 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 2, + "sequence": [ + { + "step": 1, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + }, + { + "step": 2, + "type": "switch-gate", + "element": "s1", + "unlocks": "g1" + } + ], + "notation": "kR -> DR -> s1 -> g1 -> G" + }, + "metadata": { + "chain_pattern": "ks", + "tiling": "square", + "wall_topology": "shared_room_chain_layout" + }, + "max_steps": 180 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V07_chain_sk.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V07_chain_sk.json new file mode 100644 index 0000000..0ad9095 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V07_chain_sk.json @@ -0,0 +1,124 @@ +{ + "task_id": "validation_10_v07_chain_sk", + "version": "2.0", + "seed": 107, + "difficulty_tier": 3, + "description": "The switch opens the upper choke; the red key waits in the lower crypt behind that first mechanism, and the final door guards the goal chamber.", + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 6], [4, 10], + [5, 4], [5, 5], [5, 6], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 6], [7, 10], + [8, 1], [8, 2], [8, 3], [8, 4], [8, 5], [8, 6], [8, 10], + [9, 1], [9, 2], [9, 3], [9, 4], [9, 5], [9, 6], [9, 10], + [10, 1], [10, 2], [10, 3], [10, 4], [10, 5], [10, 6], [10, 10], + [11, 1], [11, 2], [11, 3], [11, 4], [11, 5], [11, 6], [11, 10], + [12, 1], [12, 2], [12, 3], [12, 4], [12, 5], [12, 6], [12, 7], [12, 9], [12, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 6, + 8 + ], + "color": "red" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 11, + 8 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [ + { + "id": "s1", + "position": [ + 2, + 3 + ], + "controls": [ + "g1" + ], + "switch_type": "toggle", + "initial_state": "off" + } + ], + "gates": [ + { + "id": "g1", + "position": [ + 5, + 2 + ], + "initial_state": "closed" + } + ], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 12, + 8 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 2, + "sequence": [ + { + "step": 1, + "type": "switch-gate", + "element": "s1", + "unlocks": "g1" + }, + { + "step": 2, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + } + ], + "notation": "s1 -> g1 -> kR -> DR -> G" + }, + "metadata": { + "chain_pattern": "sk", + "tiling": "square", + "wall_topology": "shared_room_chain_layout" + }, + "max_steps": 180 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V08_chain_kk.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V08_chain_kk.json new file mode 100644 index 0000000..09ae2a1 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V08_chain_kk.json @@ -0,0 +1,119 @@ +{ + "task_id": "validation_10_v08_chain_kk", + "version": "2.0", + "seed": 108, + "difficulty_tier": 3, + "description": "Two key-door pairs occupy the same dungeon layout: red for the upper choke, blue for the final gate room choke.", + "maze": { + "dimensions": [ + 14, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 6], [4, 10], + [5, 4], [5, 5], [5, 6], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 6], [7, 10], + [8, 1], [8, 2], [8, 3], [8, 4], [8, 5], [8, 6], [8, 10], + [9, 1], [9, 2], [9, 3], [9, 4], [9, 5], [9, 6], [9, 10], + [10, 1], [10, 2], [10, 3], [10, 4], [10, 5], [10, 6], [10, 10], + [11, 1], [11, 2], [11, 3], [11, 4], [11, 5], [11, 6], [11, 10], + [12, 1], [12, 2], [12, 3], [12, 4], [12, 5], [12, 6], [12, 7], [12, 9], [12, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 12, + 8 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 2, + 3 + ], + "color": "red" + }, + { + "id": "kB", + "position": [ + 6, + 8 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 5, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DB", + "position": [ + 11, + 8 + ], + "requires_key": "blue", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 12, + 8 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 2, + "sequence": [ + { + "step": 1, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + }, + { + "step": 2, + "type": "key-door", + "element": "kB", + "unlocks": "DB" + } + ], + "notation": "kR -> DR -> kB -> DB -> G" + }, + "metadata": { + "chain_pattern": "kk", + "tiling": "square", + "wall_topology": "shared_room_chain_layout" + }, + "max_steps": 180 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V09_distractor_simple.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V09_distractor_simple.json new file mode 100644 index 0000000..b2e6fc8 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V09_distractor_simple.json @@ -0,0 +1,126 @@ +{ + "task_id": "validation_10_v09_distractor_simple", + "version": "2.0", + "seed": 109, + "difficulty_tier": 3, + "description": "The red key-door chain is critical, but two wrong-color keys sit in dead-end side rooms off the main dungeon route.", + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 10], + [5, 4], [5, 5], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 10], + [8, 1], [8, 3], [8, 4], [8, 5], + [9, 6], [9, 7], [9, 8], + [10, 6], [10, 7], [10, 8], + [11, 6], [11, 7], [11, 8], + [12, 1], [12, 3], [12, 6], [12, 7], [12, 8], [12, 9], [12, 10], + [13, 1], [13, 3], [13, 4], [13, 5], [13, 6], [13, 7], [13, 8], [13, 9], [13, 10], + [14, 1], [14, 3], [14, 4], [14, 5], [14, 6], [14, 7], [14, 8], [14, 9], [14, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 14, + 2 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 8 + ], + "color": "red" + }, + { + "id": "kY", + "position": [ + 11, + 4 + ], + "color": "yellow" + }, + { + "id": "kB", + "position": [ + 10, + 10 + ], + "color": "blue" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 14, + 2 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 1, + "sequence": [ + { + "step": 1, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + } + ], + "notation": "kR -> DR -> G" + }, + "distractors": [ + { + "type": "wrong_color_key", + "element_id": "kY", + "description": "Yellow key in an upper dead-end chamber." + }, + { + "type": "wrong_color_key", + "element_id": "kB", + "description": "Blue key in a lower dead-end chamber." + } + ], + "metadata": { + "chain_pattern": "key_door_with_dead_end_distractors", + "tiling": "square", + "wall_topology": "room_chain_with_dead_end_branches" + }, + "max_steps": 220 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V10_distractor_chain.json b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V10_distractor_chain.json new file mode 100644 index 0000000..88e274c --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/V10_distractor_chain.json @@ -0,0 +1,122 @@ +{ + "task_id": "validation_10_v10_distractor_chain", + "version": "2.0", + "seed": 110, + "difficulty_tier": 3, + "description": "The red path reaches the goal, but a green key-door chain opens a dead-end upper spur that looks like progress.", + "maze": { + "dimensions": [ + 16, + 12 + ], + "walls": [ + [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], + [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], + [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], + [4, 1], [4, 3], [4, 4], [4, 5], [4, 10], + [5, 4], [5, 5], [5, 10], + [6, 10], + [7, 4], [7, 5], [7, 10], + [8, 1], [8, 3], [8, 4], [8, 5], [8, 10], + [9, 6], [9, 7], [9, 8], [9, 9], [9, 10], + [10, 6], [10, 7], [10, 8], [10, 9], [10, 10], + [11, 6], [11, 7], [11, 8], [11, 9], [11, 10], + [12, 1], [12, 6], [12, 7], [12, 8], [12, 9], [12, 10], + [13, 1], [13, 3], [13, 6], [13, 7], [13, 8], [13, 9], [13, 10], + [14, 1], [14, 3], [14, 4], [14, 5], [14, 6], [14, 7], [14, 8], [14, 9], [14, 10] + ], + "start": [ + 1, + 2 + ], + "goal": [ + 14, + 2 + ] + }, + "mechanisms": { + "keys": [ + { + "id": "kR", + "position": [ + 5, + 8 + ], + "color": "red" + }, + { + "id": "kG", + "position": [ + 11, + 4 + ], + "color": "green" + } + ], + "doors": [ + { + "id": "DR", + "position": [ + 9, + 2 + ], + "requires_key": "red", + "initial_state": "locked" + }, + { + "id": "DG", + "position": [ + 12, + 4 + ], + "requires_key": "green", + "initial_state": "locked" + } + ], + "switches": [], + "gates": [], + "blocks": [], + "teleporters": [], + "hazards": [] + }, + "rules": { + "key_consumption": true, + "switch_type": "toggle", + "hidden_mechanisms": [], + "observability": "full", + "view_size": 7 + }, + "goal": { + "type": "reach_position", + "target": [ + 14, + 2 + ], + "auxiliary_conditions": [] + }, + "dependency_chain": { + "depth": 1, + "sequence": [ + { + "step": 1, + "type": "key-door", + "element": "kR", + "unlocks": "DR" + } + ], + "notation": "kR -> DR -> G" + }, + "distractors": [ + { + "type": "distractor_chain", + "element_id": "branch_G", + "description": "Green key and green door open an upper spur that dead-ends." + } + ], + "metadata": { + "chain_pattern": "key_door_with_distractor_chain", + "tiling": "square", + "wall_topology": "room_chain_with_chain_distractor" + }, + "max_steps": 220 +} diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V01_empty_room.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V01_empty_room.png new file mode 100644 index 0000000000000000000000000000000000000000..c4325e866ead60db7a666e5aff1753d4b1966f00 GIT binary patch literal 9831 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 ouvi+}$DjFsZ0JONYMKkqjI_cm2d?tb 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