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 0000000..abbdf95 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_000_sequential_chain_kk_none_1000.png differ 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 0000000..c68c2d9 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_001_winding_corridor_none_none_1001.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_002_dense_maze_sk_wrong_keys1_1002.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_002_dense_maze_sk_wrong_keys1_1002.png new file mode 100644 index 0000000..bd3294a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_002_dense_maze_sk_wrong_keys1_1002.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_003_sequential_chain_sk_dead_end_rooms1_1003.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_003_sequential_chain_sk_dead_end_rooms1_1003.png new file mode 100644 index 0000000..db7469f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_003_sequential_chain_sk_dead_end_rooms1_1003.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_004_sequential_chain_none_wrong_keys1_1004.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_004_sequential_chain_none_wrong_keys1_1004.png new file mode 100644 index 0000000..b6bf14e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_004_sequential_chain_none_wrong_keys1_1004.png differ 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 0000000..cf26c02 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_005_sequential_chain_ks_wrong_keys2_1005.png differ 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 0000000..7cdd442 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_006_side_vault_none_none_1006.png differ 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 0000000..ec9b114 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_007_winding_corridor_sg_none_1007.png differ 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 0000000..d217780 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_008_dense_maze_ks_wrong_keys1_1010.png differ 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 0000000..77967f5 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_009_multi_route_none_none_1009.png differ 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 0000000..1fe1348 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_010_dense_maze_kd_distractor_chain1_1011.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_011_side_vault_kd_none_1011.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_011_side_vault_kd_none_1011.png new file mode 100644 index 0000000..38fdf45 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_011_side_vault_kd_none_1011.png differ 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 0000000..b4fbf50 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_012_side_vault_none_none_1012.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_013_sequential_chain_sg_wrong_keys1_1013.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_013_sequential_chain_sg_wrong_keys1_1013.png new file mode 100644 index 0000000..b2e2350 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_013_sequential_chain_sg_wrong_keys1_1013.png differ 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 0000000..4108f22 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_014_dense_maze_none_none_1014.png differ 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 0000000..ff06a81 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_015_winding_corridor_kd_dead_end_rooms2_1015.png differ 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 0000000..c5f16ae Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_016_side_vault_sg_dead_end_rooms2_1016.png differ 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 0000000..ae74e8d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_017_sequential_chain_kk_dead_end_rooms1_1017.png differ 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 0000000..58aa3c1 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_018_sequential_chain_kk_dead_end_rooms1_1018.png differ 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 0000000..7136722 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_019_winding_corridor_kd_none_1019.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_020_winding_corridor_none_dead_end_rooms2_1020.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_020_winding_corridor_none_dead_end_rooms2_1020.png new file mode 100644 index 0000000..477af16 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_020_winding_corridor_none_dead_end_rooms2_1020.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_021_dense_maze_sk_none_1021.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_021_dense_maze_sk_none_1021.png new file mode 100644 index 0000000..de4376b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_021_dense_maze_sk_none_1021.png differ 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 0000000..1fc4b27 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_022_multi_route_none_dead_end_rooms2_1022.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_023_sequential_chain_kk_dead_end_rooms2_1023.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_023_sequential_chain_kk_dead_end_rooms2_1023.png new file mode 100644 index 0000000..3dabb4a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_023_sequential_chain_kk_dead_end_rooms2_1023.png differ 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 0000000..c9a9eec Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_024_winding_corridor_kd_dead_end_rooms2_1024.png differ 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 0000000..274a91d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_025_multi_route_none_none_1025.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_026_winding_corridor_kd_dead_end_rooms2_1026.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_026_winding_corridor_kd_dead_end_rooms2_1026.png new file mode 100644 index 0000000..e6e8b4a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_026_winding_corridor_kd_dead_end_rooms2_1026.png differ 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 0000000..cfa351b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_027_winding_corridor_none_none_1027.png differ 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 0000000..df8f1ce Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_028_sequential_chain_sk_dead_end_rooms2_1028.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_029_dense_maze_sg_distractor_chain1_1029.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_029_dense_maze_sg_distractor_chain1_1029.png new file mode 100644 index 0000000..e55678f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_029_dense_maze_sg_distractor_chain1_1029.png differ 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 0000000..32e4fa3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_030_winding_corridor_kd_wrong_keys1_1030.png differ 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 0000000..05cd3d8 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_031_dense_maze_sk_none_1031.png differ 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 0000000..5f1ed04 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_032_sequential_chain_kk_wrong_keys2_1032.png differ 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 0000000..e1ec257 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_033_multi_route_none_wrong_keys2_1033.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_034_winding_corridor_sg_none_1034.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_034_winding_corridor_sg_none_1034.png new file mode 100644 index 0000000..7113cfb Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_034_winding_corridor_sg_none_1034.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_035_sequential_chain_kd_dead_end_rooms1_1035.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_035_sequential_chain_kd_dead_end_rooms1_1035.png new file mode 100644 index 0000000..ab924a3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_035_sequential_chain_kd_dead_end_rooms1_1035.png differ 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 0000000..1e2cdba Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_036_sequential_chain_kk_wrong_keys1_1036.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_037_winding_corridor_kd_wrong_keys2_1037.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_037_winding_corridor_kd_wrong_keys2_1037.png new file mode 100644 index 0000000..c1fb5db Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_037_winding_corridor_kd_wrong_keys2_1037.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_038_winding_corridor_none_dead_end_rooms1_1038.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_038_winding_corridor_none_dead_end_rooms1_1038.png new file mode 100644 index 0000000..b76e0f6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_038_winding_corridor_none_dead_end_rooms1_1038.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_039_multi_route_none_none_1039.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_039_multi_route_none_none_1039.png new file mode 100644 index 0000000..b007d63 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_039_multi_route_none_none_1039.png differ 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 0000000..0e2fe07 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_040_side_vault_none_wrong_keys1_1040.png differ 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 0000000..481486f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_041_sequential_chain_kd_dead_end_rooms2_1041.png differ 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 0000000..5976f1e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_042_multi_route_none_none_1042.png differ 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 0000000..4f06094 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_043_dense_maze_sg_wrong_keys2_1043.png differ 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 0000000..223a3bd Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_044_multi_route_none_dead_end_rooms2_1044.png differ 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 0000000..def3c1d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_045_winding_corridor_sg_wrong_keys2_1045.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_046_sequential_chain_sk_dead_end_rooms1_1046.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_046_sequential_chain_sk_dead_end_rooms1_1046.png new file mode 100644 index 0000000..7a57847 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_046_sequential_chain_sk_dead_end_rooms1_1046.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_047_winding_corridor_kd_dead_end_rooms2_1047.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_047_winding_corridor_kd_dead_end_rooms2_1047.png new file mode 100644 index 0000000..f1db68c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_047_winding_corridor_kd_dead_end_rooms2_1047.png differ 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 0000000..f51c33e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_048_side_vault_kd_none_1048.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_049_side_vault_sg_dead_end_rooms2_1050.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_049_side_vault_sg_dead_end_rooms2_1050.png new file mode 100644 index 0000000..d94efc7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_049_side_vault_sg_dead_end_rooms2_1050.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_050_winding_corridor_sg_none_1051.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_050_winding_corridor_sg_none_1051.png new file mode 100644 index 0000000..58cbd23 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_050_winding_corridor_sg_none_1051.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_051_multi_route_none_wrong_keys1_1052.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_051_multi_route_none_wrong_keys1_1052.png new file mode 100644 index 0000000..b1a3e8a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_051_multi_route_none_wrong_keys1_1052.png differ 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 0000000..b3e583d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_052_side_vault_kd_wrong_keys2_1053.png differ 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 0000000..e4c86bf Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_053_winding_corridor_sg_none_1054.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_054_winding_corridor_none_dead_end_rooms1_1055.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_054_winding_corridor_none_dead_end_rooms1_1055.png new file mode 100644 index 0000000..aee6e4a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_054_winding_corridor_none_dead_end_rooms1_1055.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_055_winding_corridor_none_dead_end_rooms1_1056.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_055_winding_corridor_none_dead_end_rooms1_1056.png new file mode 100644 index 0000000..bdc6bf7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_055_winding_corridor_none_dead_end_rooms1_1056.png differ 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 0000000..27a52ad Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_056_dense_maze_sk_none_1057.png differ 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 0000000..8dd7681 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_057_side_vault_sg_none_1058.png differ 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 0000000..abf7eca Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_058_winding_corridor_none_wrong_keys1_1059.png differ 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 0000000..0165239 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_059_multi_route_none_none_1060.png differ 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 0000000..fa31995 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_060_dense_maze_sg_wrong_keys1_1061.png differ 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 0000000..6be646d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_061_winding_corridor_none_dead_end_rooms1_1062.png differ 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 0000000..9bb20dd Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_062_multi_route_none_none_1063.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_063_multi_route_none_wrong_keys1_1064.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_063_multi_route_none_wrong_keys1_1064.png new file mode 100644 index 0000000..d8e64de Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_063_multi_route_none_wrong_keys1_1064.png differ 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 0000000..197a613 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_064_winding_corridor_kd_none_1065.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_065_sequential_chain_sk_wrong_keys2_1066.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_065_sequential_chain_sk_wrong_keys2_1066.png new file mode 100644 index 0000000..c630dc0 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_065_sequential_chain_sk_wrong_keys2_1066.png differ 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 0000000..24a16d1 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_066_winding_corridor_kd_dead_end_rooms1_1067.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_067_sequential_chain_ks_none_1068.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_067_sequential_chain_ks_none_1068.png new file mode 100644 index 0000000..1aa583a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_067_sequential_chain_ks_none_1068.png differ 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 0000000..80a83fa Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_068_side_vault_sg_none_1069.png differ 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 0000000..430f27e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_069_side_vault_sg_none_1070.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_070_winding_corridor_kd_dead_end_rooms1_1071.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_070_winding_corridor_kd_dead_end_rooms1_1071.png new file mode 100644 index 0000000..3a321a4 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_070_winding_corridor_kd_dead_end_rooms1_1071.png differ 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 0000000..8c3b3b7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_071_sequential_chain_ks_none_1072.png differ 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 0000000..738d6b2 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_072_side_vault_sg_none_1073.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_073_sequential_chain_sg_none_1074.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_073_sequential_chain_sg_none_1074.png new file mode 100644 index 0000000..93cbc5b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_073_sequential_chain_sg_none_1074.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_074_sequential_chain_none_none_1075.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_074_sequential_chain_none_none_1075.png new file mode 100644 index 0000000..2a0d95e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_074_sequential_chain_none_none_1075.png differ 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 0000000..cb53fc6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_075_side_vault_none_none_1076.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_076_winding_corridor_none_dead_end_rooms2_1077.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_076_winding_corridor_none_dead_end_rooms2_1077.png new file mode 100644 index 0000000..454edad Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_076_winding_corridor_none_dead_end_rooms2_1077.png differ 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 0000000..40218fb Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_077_winding_corridor_none_dead_end_rooms2_1078.png differ 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 0000000..fc232c1 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_078_dense_maze_kk_wrong_keys1_1079.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_079_sequential_chain_sk_dead_end_rooms1_1080.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_079_sequential_chain_sk_dead_end_rooms1_1080.png new file mode 100644 index 0000000..746c804 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_079_sequential_chain_sk_dead_end_rooms1_1080.png differ 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 0000000..b454977 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_080_sequential_chain_sg_wrong_keys1_1081.png differ 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 0000000..51bab8d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_081_multi_route_none_wrong_keys1_1082.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_082_multi_route_none_dead_end_rooms2_1083.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_082_multi_route_none_dead_end_rooms2_1083.png new file mode 100644 index 0000000..5c6aca7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_082_multi_route_none_dead_end_rooms2_1083.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_083_winding_corridor_sg_dead_end_rooms2_1084.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_083_winding_corridor_sg_dead_end_rooms2_1084.png new file mode 100644 index 0000000..8aba238 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_083_winding_corridor_sg_dead_end_rooms2_1084.png differ 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 0000000..94609f7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_084_dense_maze_sk_wrong_keys1_1085.png differ 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 0000000..19ee332 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_085_dense_maze_kk_wrong_keys2_1086.png differ 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 0000000..f18e39d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_086_multi_route_none_none_1087.png differ 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 0000000..96cb3ff Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_087_dense_maze_kk_distractor_chain2_1089.png differ 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 0000000..c0f9f2d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_088_side_vault_kd_wrong_keys2_1089.png differ 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 0000000..cbf95bc Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_089_sequential_chain_kd_dead_end_rooms2_1090.png differ 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 0000000..cfbf1d2 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_090_side_vault_none_wrong_keys2_1091.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_091_dense_maze_sk_wrong_keys2_1097.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_091_dense_maze_sk_wrong_keys2_1097.png new file mode 100644 index 0000000..1a59255 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_091_dense_maze_sk_wrong_keys2_1097.png differ 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 0000000..b698185 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_092_side_vault_sg_wrong_keys2_1093.png differ 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 0000000..b916dcc Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_093_dense_maze_kk_distractor_chain2_1098.png differ 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 0000000..19c153a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_094_multi_route_none_none_1095.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_095_sequential_chain_none_dead_end_rooms2_1096.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_095_sequential_chain_none_dead_end_rooms2_1096.png new file mode 100644 index 0000000..aea006b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_095_sequential_chain_none_dead_end_rooms2_1096.png differ 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 0000000..52ae634 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_096_dense_maze_none_none_1097.png differ 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 0000000..8ad8233 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_097_multi_route_none_dead_end_rooms2_1098.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_098_sequential_chain_kd_none_1099.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_098_sequential_chain_kd_none_1099.png new file mode 100644 index 0000000..ab1b508 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_098_sequential_chain_kd_none_1099.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_099_winding_corridor_sg_none_1100.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_099_winding_corridor_sg_none_1100.png new file mode 100644 index 0000000..c732ef8 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_099_winding_corridor_sg_none_1100.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_100_side_vault_kd_dead_end_rooms1_1101.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_100_side_vault_kd_dead_end_rooms1_1101.png new file mode 100644 index 0000000..a3e2143 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_100_side_vault_kd_dead_end_rooms1_1101.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_101_side_vault_none_wrong_keys2_1102.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_101_side_vault_none_wrong_keys2_1102.png new file mode 100644 index 0000000..deb15b2 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_101_side_vault_none_wrong_keys2_1102.png differ 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 0000000..ff04cc6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_102_sequential_chain_kk_dead_end_rooms2_1103.png differ 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 0000000..21bd504 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_103_side_vault_kd_dead_end_rooms1_1104.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_104_winding_corridor_none_dead_end_rooms1_1105.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_104_winding_corridor_none_dead_end_rooms1_1105.png new file mode 100644 index 0000000..daf5061 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_104_winding_corridor_none_dead_end_rooms1_1105.png differ 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 0000000..a55b13e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_105_sequential_chain_ks_dead_end_rooms1_1106.png differ 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 0000000..b06763a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_106_multi_route_none_dead_end_rooms2_1107.png differ 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 0000000..9b3758e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_107_multi_route_none_wrong_keys2_1108.png differ 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 0000000..d0977cd Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_108_sequential_chain_none_dead_end_rooms1_1109.png differ 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 0000000..760a3f3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_109_sequential_chain_kd_wrong_keys1_1110.png differ 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 0000000..d1a04b6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_110_multi_route_none_none_1111.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_111_side_vault_none_dead_end_rooms1_1112.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_111_side_vault_none_dead_end_rooms1_1112.png new file mode 100644 index 0000000..2676d9b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_111_side_vault_none_dead_end_rooms1_1112.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_112_winding_corridor_none_none_1113.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_112_winding_corridor_none_none_1113.png new file mode 100644 index 0000000..52ce394 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_112_winding_corridor_none_none_1113.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_113_dense_maze_sg_wrong_keys2_1114.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_113_dense_maze_sg_wrong_keys2_1114.png new file mode 100644 index 0000000..a6be2d4 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_113_dense_maze_sg_wrong_keys2_1114.png differ 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 0000000..37038e3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_114_side_vault_kd_none_1115.png differ 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 0000000..5f89940 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_115_dense_maze_ks_wrong_keys1_1119.png differ 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 0000000..e47dc49 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_116_sequential_chain_sk_none_1117.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_117_multi_route_none_wrong_keys1_1118.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_117_multi_route_none_wrong_keys1_1118.png new file mode 100644 index 0000000..5260d12 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_117_multi_route_none_wrong_keys1_1118.png differ 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 0000000..c053f08 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_118_winding_corridor_sg_wrong_keys1_1119.png differ 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 0000000..4c9bfc6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_119_dense_maze_kk_none_1122.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_120_dense_maze_sk_none_1122.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_120_dense_maze_sk_none_1122.png new file mode 100644 index 0000000..eb6c31c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_120_dense_maze_sk_none_1122.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_121_sequential_chain_sk_none_1122.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_121_sequential_chain_sk_none_1122.png new file mode 100644 index 0000000..59c133c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_121_sequential_chain_sk_none_1122.png differ 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 0000000..0c9251d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_122_side_vault_kd_wrong_keys1_1123.png differ 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 0000000..540a2d9 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_123_winding_corridor_kd_wrong_keys2_1124.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_124_multi_route_none_dead_end_rooms2_1125.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_124_multi_route_none_dead_end_rooms2_1125.png new file mode 100644 index 0000000..4c0f789 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_124_multi_route_none_dead_end_rooms2_1125.png differ 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 0000000..8b49039 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_125_side_vault_none_none_1126.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_126_sequential_chain_kd_dead_end_rooms1_1127.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_126_sequential_chain_kd_dead_end_rooms1_1127.png new file mode 100644 index 0000000..5e0cbf7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_126_sequential_chain_kd_dead_end_rooms1_1127.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_127_winding_corridor_sg_none_1128.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_127_winding_corridor_sg_none_1128.png new file mode 100644 index 0000000..332620f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_127_winding_corridor_sg_none_1128.png differ 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 0000000..d487990 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_128_sequential_chain_sg_none_1129.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_129_dense_maze_sg_distractor_chain2_1130.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_129_dense_maze_sg_distractor_chain2_1130.png new file mode 100644 index 0000000..af54a3c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_129_dense_maze_sg_distractor_chain2_1130.png differ 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 0000000..79266fe Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_130_winding_corridor_sg_none_1132.png differ 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 0000000..c51b0f6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_131_dense_maze_kd_none_1132.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_132_sequential_chain_ks_dead_end_rooms1_1133.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_132_sequential_chain_ks_dead_end_rooms1_1133.png new file mode 100644 index 0000000..5b9cdcb Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_132_sequential_chain_ks_dead_end_rooms1_1133.png differ 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 0000000..1215884 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_133_winding_corridor_sg_none_1134.png differ 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 0000000..622b7b4 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_134_dense_maze_ks_none_1135.png differ 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 0000000..d7d8ef8 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_135_winding_corridor_none_dead_end_rooms2_1136.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_136_sequential_chain_sk_none_1137.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_136_sequential_chain_sk_none_1137.png new file mode 100644 index 0000000..29d6856 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_136_sequential_chain_sk_none_1137.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_137_side_vault_sg_wrong_keys2_1138.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_137_side_vault_sg_wrong_keys2_1138.png new file mode 100644 index 0000000..6bb2f62 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_137_side_vault_sg_wrong_keys2_1138.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_138_winding_corridor_kd_none_1139.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_138_winding_corridor_kd_none_1139.png new file mode 100644 index 0000000..d0c7523 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_138_winding_corridor_kd_none_1139.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_139_side_vault_sg_none_1140.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_139_side_vault_sg_none_1140.png new file mode 100644 index 0000000..cf652ed Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_139_side_vault_sg_none_1140.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_140_sequential_chain_kd_none_1141.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_140_sequential_chain_kd_none_1141.png new file mode 100644 index 0000000..38a12fd Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_140_sequential_chain_kd_none_1141.png differ 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 0000000..7c697f5 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_141_winding_corridor_none_dead_end_rooms2_1142.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_142_multi_route_none_dead_end_rooms2_1143.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_142_multi_route_none_dead_end_rooms2_1143.png new file mode 100644 index 0000000..4517cd4 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_142_multi_route_none_dead_end_rooms2_1143.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_143_dense_maze_ks_wrong_keys2_1144.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_143_dense_maze_ks_wrong_keys2_1144.png new file mode 100644 index 0000000..6b99340 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_143_dense_maze_ks_wrong_keys2_1144.png differ 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 0000000..a2ba68f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_144_multi_route_none_wrong_keys2_1145.png differ 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 0000000..0fff013 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_145_multi_route_none_dead_end_rooms2_1147.png differ 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 0000000..1d05c5c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_146_sequential_chain_sg_wrong_keys1_1148.png differ 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 0000000..b98a899 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_147_dense_maze_kd_distractor_chain2_1151.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_148_multi_route_none_dead_end_rooms1_1150.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_148_multi_route_none_dead_end_rooms1_1150.png new file mode 100644 index 0000000..e661761 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_148_multi_route_none_dead_end_rooms1_1150.png differ 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 0000000..df68fb5 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_149_multi_route_none_wrong_keys1_1151.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_150_dense_maze_sk_distractor_chain1_1153.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_150_dense_maze_sk_distractor_chain1_1153.png new file mode 100644 index 0000000..f93728d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_150_dense_maze_sk_distractor_chain1_1153.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_151_winding_corridor_kd_wrong_keys2_1154.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_151_winding_corridor_kd_wrong_keys2_1154.png new file mode 100644 index 0000000..7fb4856 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_151_winding_corridor_kd_wrong_keys2_1154.png differ 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 0000000..feb8899 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_152_dense_maze_none_none_1154.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_153_multi_route_none_wrong_keys2_1155.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_153_multi_route_none_wrong_keys2_1155.png new file mode 100644 index 0000000..e1949c0 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_153_multi_route_none_wrong_keys2_1155.png differ 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 0000000..42501f5 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_154_dense_maze_none_wrong_keys2_1156.png differ 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 0000000..7528b54 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_155_dense_maze_ks_distractor_chain1_1163.png differ 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 0000000..52b9635 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_156_side_vault_none_none_1158.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_157_multi_route_none_dead_end_rooms2_1159.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_157_multi_route_none_dead_end_rooms2_1159.png new file mode 100644 index 0000000..159507e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_157_multi_route_none_dead_end_rooms2_1159.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_158_sequential_chain_kd_dead_end_rooms2_1160.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_158_sequential_chain_kd_dead_end_rooms2_1160.png new file mode 100644 index 0000000..119404c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_158_sequential_chain_kd_dead_end_rooms2_1160.png differ 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 0000000..1e1122e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_159_dense_maze_sg_distractor_chain1_1163.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_160_sequential_chain_none_none_1162.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_160_sequential_chain_none_none_1162.png new file mode 100644 index 0000000..9d7c151 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_160_sequential_chain_none_none_1162.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_161_winding_corridor_none_dead_end_rooms2_1163.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_161_winding_corridor_none_dead_end_rooms2_1163.png new file mode 100644 index 0000000..ee8186d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_161_winding_corridor_none_dead_end_rooms2_1163.png differ 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 0000000..5f18077 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_162_multi_route_none_none_1164.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_163_multi_route_none_wrong_keys2_1165.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_163_multi_route_none_wrong_keys2_1165.png new file mode 100644 index 0000000..8e9fc0d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_163_multi_route_none_wrong_keys2_1165.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_164_winding_corridor_sg_dead_end_rooms1_1166.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_164_winding_corridor_sg_dead_end_rooms1_1166.png new file mode 100644 index 0000000..b28f8a6 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_164_winding_corridor_sg_dead_end_rooms1_1166.png differ 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 0000000..acfec38 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_165_multi_route_none_dead_end_rooms1_1167.png differ 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 0000000..884ea24 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_166_dense_maze_sk_none_1168.png differ 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 0000000..4df417e Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_167_winding_corridor_sg_none_1169.png differ 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 0000000..598110c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_168_winding_corridor_none_none_1170.png differ 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 0000000..e085245 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_169_sequential_chain_ks_none_1171.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_170_dense_maze_sk_wrong_keys2_1172.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_170_dense_maze_sk_wrong_keys2_1172.png new file mode 100644 index 0000000..50673f1 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_170_dense_maze_sk_wrong_keys2_1172.png differ 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 0000000..0fe2299 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_171_sequential_chain_kd_wrong_keys2_1173.png differ 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 0000000..04501bc Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_172_multi_route_none_dead_end_rooms2_1174.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_173_sequential_chain_sk_wrong_keys2_1175.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_173_sequential_chain_sk_wrong_keys2_1175.png new file mode 100644 index 0000000..c699bc7 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_173_sequential_chain_sk_wrong_keys2_1175.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_174_dense_maze_kd_none_1176.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_174_dense_maze_kd_none_1176.png new file mode 100644 index 0000000..c1a3cd3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_174_dense_maze_kd_none_1176.png differ 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 0000000..eee961a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_175_sequential_chain_sg_wrong_keys2_1177.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_176_dense_maze_ks_wrong_keys2_1180.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_176_dense_maze_ks_wrong_keys2_1180.png new file mode 100644 index 0000000..03fb06b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_176_dense_maze_ks_wrong_keys2_1180.png differ 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 0000000..1c4af52 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_177_dense_maze_none_none_1179.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_178_side_vault_none_dead_end_rooms1_1181.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_178_side_vault_none_dead_end_rooms1_1181.png new file mode 100644 index 0000000..138ab4f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_178_side_vault_none_dead_end_rooms1_1181.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_179_multi_route_none_wrong_keys1_1182.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_179_multi_route_none_wrong_keys1_1182.png new file mode 100644 index 0000000..14e83d5 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_179_multi_route_none_wrong_keys1_1182.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_180_side_vault_sg_none_1183.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_180_side_vault_sg_none_1183.png new file mode 100644 index 0000000..2709d8a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_180_side_vault_sg_none_1183.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_181_dense_maze_kd_wrong_keys1_1184.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_181_dense_maze_kd_wrong_keys1_1184.png new file mode 100644 index 0000000..232511c Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_181_dense_maze_kd_wrong_keys1_1184.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_182_side_vault_none_none_1185.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_182_side_vault_none_none_1185.png new file mode 100644 index 0000000..2d0ac37 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_182_side_vault_none_none_1185.png differ 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 0000000..a6ee05a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_183_side_vault_kd_wrong_keys1_1186.png differ 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 0000000..a5ea9d2 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_184_side_vault_none_wrong_keys2_1187.png differ 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 0000000..7d471e3 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_185_dense_maze_sk_none_1188.png differ 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 0000000..862fc24 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_186_dense_maze_kk_distractor_chain2_1191.png differ 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 0000000..03c8c8d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_187_sequential_chain_sk_wrong_keys1_1190.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_188_sequential_chain_sg_dead_end_rooms1_1191.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_188_sequential_chain_sg_dead_end_rooms1_1191.png new file mode 100644 index 0000000..4df44aa Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_188_sequential_chain_sg_dead_end_rooms1_1191.png differ 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 0000000..5997ff1 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_189_side_vault_kd_dead_end_rooms1_1192.png differ 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 0000000..7f57a7d Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_190_side_vault_sg_wrong_keys2_1193.png differ 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 0000000..4398e56 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_191_side_vault_sg_none_1194.png differ 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 0000000..9d8157a Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_192_side_vault_kd_dead_end_rooms1_1195.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_193_multi_route_none_dead_end_rooms2_1196.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_193_multi_route_none_dead_end_rooms2_1196.png new file mode 100644 index 0000000..9e38cee Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_193_multi_route_none_dead_end_rooms2_1196.png differ 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 0000000..951941b Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_194_multi_route_none_wrong_keys2_1197.png differ 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 0000000..bb59a35 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_195_side_vault_sg_dead_end_rooms1_1198.png differ 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 0000000..6d0989f Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_196_winding_corridor_sg_wrong_keys1_1199.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_197_side_vault_sg_dead_end_rooms1_1200.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_197_side_vault_sg_dead_end_rooms1_1200.png new file mode 100644 index 0000000..f3d8f72 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_197_side_vault_sg_dead_end_rooms1_1200.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_198_multi_route_none_none_1201.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_198_multi_route_none_none_1201.png new file mode 100644 index 0000000..4c3a3e0 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_198_multi_route_none_none_1201.png differ diff --git a/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_199_side_vault_kd_dead_end_rooms1_1202.png b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_199_side_vault_kd_dead_end_rooms1_1202.png new file mode 100644 index 0000000..6e8cb45 Binary files /dev/null and b/src/v2/automatic_maze_generation/generated_mazes/pngs/maze_199_side_vault_kd_dead_end_rooms1_1202.png differ 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 0000000..c4325e8 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V01_empty_room.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V02_winding_corridor.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V02_winding_corridor.png new file mode 100644 index 0000000..47c7d77 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V02_winding_corridor.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V03_multi_path.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V03_multi_path.png new file mode 100644 index 0000000..8c0d817 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V03_multi_path.png differ 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 0000000..88c5df4 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V04_single_key.png differ 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 0000000..4c279e9 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V05_single_switch.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V06_chain_ks.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V06_chain_ks.png new file mode 100644 index 0000000..77bf30b Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V06_chain_ks.png differ 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 0000000..d58b716 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V07_chain_sk.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V08_chain_kk.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V08_chain_kk.png new file mode 100644 index 0000000..ca55a88 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V08_chain_kk.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V09_distractor_simple.png b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V09_distractor_simple.png new file mode 100644 index 0000000..eedba69 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V09_distractor_simple.png differ 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 0000000..26add6a Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/sample mazes/pngs/V10_distractor_chain.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/analyze_smoke_runner_logs.py b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/analyze_smoke_runner_logs.py new file mode 100644 index 0000000..989c8b1 --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/analyze_smoke_runner_logs.py @@ -0,0 +1,99 @@ +from __future__ import annotations + +import argparse +import json +from pathlib import Path + + +def main() -> 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 0000000..832c212 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_000_reset.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_001_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_001_TURN_RIGHT.png new file mode 100644 index 0000000..b024c8d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_001_TURN_RIGHT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_002_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_002_TURN_RIGHT.png new file mode 100644 index 0000000..38778fb Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_002_TURN_RIGHT.png differ 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 0000000..a6d7d9e Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_003_MOVE_FORWARD.png differ 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 0000000..6b406c0 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_004_MOVE_FORWARD.png differ 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 0000000..78798a5 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_005_MOVE_FORWARD.png differ 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 0000000..cbe61ae Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_006_MOVE_FORWARD.png differ 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 0000000..19cf1ac Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_007_TURN_LEFT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_008_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_008_MOVE_FORWARD.png new file mode 100644 index 0000000..958f47a Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_008_MOVE_FORWARD.png differ 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 0000000..4cd8d14 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_009_TURN_RIGHT.png differ 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 0000000..4013556 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_010_MOVE_FORWARD.png differ 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 0000000..6ede75f Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_011_TURN_LEFT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_012_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_012_MOVE_FORWARD.png new file mode 100644 index 0000000..e30d4ae Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_012_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_013_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_013_MOVE_FORWARD.png new file mode 100644 index 0000000..44c50c4 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_013_MOVE_FORWARD.png differ 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 0000000..f38311f Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_014_MOVE_FORWARD.png differ 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 0000000..6aee103 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_015_MOVE_FORWARD.png differ 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 0000000..bc5b40c Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_016_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_017_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_017_TURN_LEFT.png new file mode 100644 index 0000000..629d41e Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_017_TURN_LEFT.png differ 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 0000000..a55fae5 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_018_MOVE_FORWARD.png differ 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 0000000..9518279 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_019_PICKUP.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_020_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_020_TURN_LEFT.png new file mode 100644 index 0000000..6c00e31 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_020_TURN_LEFT.png differ 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 0000000..5f79366 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_021_MOVE_FORWARD.png differ 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 0000000..8eaa1e1 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_022_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_023_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_023_TURN_LEFT.png new file mode 100644 index 0000000..9d4a4b5 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_023_TURN_LEFT.png differ 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 0000000..4833983 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_024_MOVE_FORWARD.png differ 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 0000000..ba163f5 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_025_TURN_RIGHT.png differ 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 0000000..f1fa6ca Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_026_MOVE_FORWARD.png differ 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 0000000..50ee771 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_027_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_028_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_028_MOVE_FORWARD.png new file mode 100644 index 0000000..04a36bc Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_028_MOVE_FORWARD.png differ 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 0000000..78d930a Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_029_MOVE_FORWARD.png differ 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 0000000..36afdb8 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_030_TURN_LEFT.png differ 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 0000000..89d28a7 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_031_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_032_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_032_MOVE_FORWARD.png new file mode 100644 index 0000000..358ba35 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_032_MOVE_FORWARD.png differ 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 0000000..df4b372 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_033_MOVE_FORWARD.png differ 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 0000000..8f15fe0 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_034_MOVE_FORWARD.png differ 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 0000000..03191f2 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_035_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_036_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_036_MOVE_FORWARD.png new file mode 100644 index 0000000..e040008 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V04_single_key_smart_manual_run2/step_036_MOVE_FORWARD.png differ 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 0000000..a0b8acb Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_000_reset.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_001_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_001_TURN_RIGHT.png new file mode 100644 index 0000000..71c272f Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_001_TURN_RIGHT.png differ 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 0000000..94d8777 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_002_TURN_RIGHT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_003_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_003_MOVE_FORWARD.png new file mode 100644 index 0000000..bd41880 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_003_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_004_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_004_MOVE_FORWARD.png new file mode 100644 index 0000000..8bfe7f9 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_004_MOVE_FORWARD.png differ 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 0000000..27156ee Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_005_MOVE_FORWARD.png differ 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 0000000..fd7557d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_006_MOVE_FORWARD.png differ 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 0000000..de19ae9 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_007_TURN_LEFT.png differ 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 0000000..3f6dbd2 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_008_MOVE_FORWARD.png differ 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 0000000..71c9b9d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_009_TURN_RIGHT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_010_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_010_MOVE_FORWARD.png new file mode 100644 index 0000000..cac1d98 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_010_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_011_TURN_LEFT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_011_TURN_LEFT.png new file mode 100644 index 0000000..a0317f6 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_011_TURN_LEFT.png differ 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 0000000..d98bd4c Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_012_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_013_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_013_MOVE_FORWARD.png new file mode 100644 index 0000000..4f55c28 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_013_MOVE_FORWARD.png differ 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 0000000..db4ddc7 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_014_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_015_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_015_MOVE_FORWARD.png new file mode 100644 index 0000000..d4c281d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_015_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_016_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_016_MOVE_FORWARD.png new file mode 100644 index 0000000..02a4457 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_016_MOVE_FORWARD.png differ 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 0000000..f374f9c Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_017_TURN_LEFT.png differ 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 0000000..12e6cd4 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_018_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_019_PICKUP.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_019_PICKUP.png new file mode 100644 index 0000000..00ceb20 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_019_PICKUP.png differ 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 0000000..e3c4744 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_020_TURN_LEFT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_021_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_021_MOVE_FORWARD.png new file mode 100644 index 0000000..f1e4bff Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_021_MOVE_FORWARD.png differ 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 0000000..9b07f6d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_022_MOVE_FORWARD.png differ 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 0000000..a93b662 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_023_TURN_LEFT.png differ 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 0000000..3c2a8da Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_024_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_025_TURN_RIGHT.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_025_TURN_RIGHT.png new file mode 100644 index 0000000..f6deaea Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_025_TURN_RIGHT.png differ 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 0000000..d27ad41 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_026_MOVE_FORWARD.png differ 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 0000000..e18aa1b Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_027_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_028_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_028_MOVE_FORWARD.png new file mode 100644 index 0000000..16b6eea Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_028_MOVE_FORWARD.png differ 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 0000000..9eabb7d Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_029_MOVE_FORWARD.png differ 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 0000000..9186519 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_030_TURN_LEFT.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_031_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_031_MOVE_FORWARD.png new file mode 100644 index 0000000..4e7cf68 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_031_MOVE_FORWARD.png differ 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 0000000..29cd9f8 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_032_MOVE_FORWARD.png differ 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 0000000..a2edc8c Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_033_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_034_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_034_MOVE_FORWARD.png new file mode 100644 index 0000000..84841b0 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_034_MOVE_FORWARD.png differ 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 0000000..9e98f86 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_035_MOVE_FORWARD.png differ 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 0000000..b8fd888 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_036_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_037_MOVE_FORWARD.png b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_037_MOVE_FORWARD.png new file mode 100644 index 0000000..91d1a88 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_037_MOVE_FORWARD.png differ 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 0000000..27f66a3 Binary files /dev/null and b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_V10_distractor_chain_smart_manual_run1/step_038_MOVE_FORWARD.png differ diff --git a/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/detailed_logs.json b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/detailed_logs.json new file mode 100644 index 0000000..f785d6f --- /dev/null +++ b/src/v2/nlu_pipeline/nlu_benchmark/smoke_tests/results/smoke_runner_matrix/detailed_logs.json @@ -0,0 +1,2889 @@ +{ + "maze": "C:\\Users\\arush\\MIT Dropbox\\Arushi Jain\\MultiNet\\src\\v2\\nlu_pipeline\\nlu_benchmark\\sample mazes\\V01_empty_room.json", + "runs": [ + { + "label": "prompting=minimal", + "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": "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