More refinement of the maps. Now the inner box won't have rooms in it and I can mark a region free of rooms. Rooms also have a guaranteed door.

This commit is contained in:
Zed A. Shaw 2026-03-08 12:25:40 -04:00
parent 87a1193a4a
commit 8b129aea6b
4 changed files with 40 additions and 33 deletions

View file

@ -18,6 +18,7 @@ TEST_CASE("hunt-and-kill", "[mazes]") {
maze.randomize_rooms(ROOM_SIZE);
maze.hunt_and_kill();
maze.make_doors();
// maze.dump("ROOM MAZE");
REQUIRE(map.$dead_ends.size() > 0);
@ -30,15 +31,16 @@ TEST_CASE("hunt-and-kill box", "[mazes]") {
maze::Builder maze(map);
maze.hunt_and_kill();
maze.randomize_rooms(ROOM_SIZE+1);
maze.clear();
maze.inner_box(6, 4);
maze.randomize_rooms(ROOM_SIZE+2);
maze.inner_box(6, 3);
maze.hunt_and_kill();
maze.open_box(6);
maze.make_doors();
if(maze.$rooms.size() == 0) {
maze.dump("NO ROOMS");
if(i == 42) {
maze.dump("INNER BOX");
}
}
}
@ -67,8 +69,6 @@ TEST_CASE("hunt-and-kill fissure", "[mazes]") {
REQUIRE(maze.$rooms.size() == 0);
}
TEST_CASE("hunt-and-kill no-dead-ends", "[mazes]") {
Map map(21, 21);
maze::Builder maze(map);
@ -88,10 +88,13 @@ TEST_CASE("hunt-and-kill too much", "[mazes]") {
maze.hunt_and_kill();
maze.randomize_rooms(ROOM_SIZE);
maze.clear();
maze.inner_donut(4, 2);
maze.inner_donut(9, 4);
maze.divide({3,3}, {15,16});
maze.hunt_and_kill();
maze.make_doors();
// maze.dump("COMBINED");
// if(i == 41) {
// maze.dump("COMBINED");
// }
}
}