Cleaned up maze and ready to use.

This commit is contained in:
Zed A. Shaw 2025-05-20 10:32:20 -04:00
parent 33cd490ed3
commit 37715f05a5
3 changed files with 53 additions and 18 deletions

View file

@ -15,6 +15,7 @@ TEST_CASE("hunt-and-kill", "[mazes]") {
std::vector<Room> rooms;
std::vector<Point> dead_ends;
maze::init(map);
maze::hunt_and_kill(map, rooms, dead_ends);
matrix::dump("BASIC MAZE", map);
@ -32,19 +33,36 @@ TEST_CASE("hunt-and-kill", "[mazes]") {
matrix::dump("MAZE WITH ROOMS", map);
}
TEST_CASE("hunt-and-kill box", "[mazes]") {
auto map = matrix::make(21, 21);
std::vector<Room> rooms;
std::vector<Point> dead_ends;
maze::init(map);
maze::inner_box(map, 5, 3);
maze::hunt_and_kill(map, rooms, dead_ends);
for(auto at : dead_ends) {
map[at.y][at.x]=32;
}
matrix::dump("INNER BOX", map);
REQUIRE(rooms.size() == 0);
}
TEST_CASE("hunt-and-kill ring", "[mazes]") {
auto map = matrix::make(21, 21);
std::vector<Room> rooms;
std::vector<Point> dead_ends;
maze::init(map);
maze::inner_ring(map, 5, 2);
maze::hunt_and_kill(map, rooms, dead_ends, false);
maze::inner_donut(map, 5.5, 3.5);
maze::hunt_and_kill(map, rooms, dead_ends);
for(auto at : dead_ends) {
map[at.y][at.x]=32;
}
matrix::dump("RING MAZE", map);
matrix::dump("INNER RING", map);
REQUIRE(rooms.size() == 0);
}
@ -56,7 +74,7 @@ TEST_CASE("hunt-and-kill fissure", "[mazes]") {
maze::init(map);
maze::divide(map, {3,3}, {19,18});
maze::hunt_and_kill(map, rooms, dead_ends, false);
maze::hunt_and_kill(map, rooms, dead_ends);
for(auto at : dead_ends) {
map[at.y][at.x]=32;
@ -75,7 +93,7 @@ TEST_CASE("hunt-and-kill no-dead-ends", "[mazes]") {
maze::init(map);
maze::hunt_and_kill(map, rooms, dead_ends, false);
maze::hunt_and_kill(map, rooms, dead_ends);
maze::remove_dead_ends(map, dead_ends);
@ -88,16 +106,15 @@ TEST_CASE("hunt-and-kill too much", "[mazes]") {
std::vector<Point> dead_ends;
maze::init(map);
maze::inner_ring(map, 4, 2);
maze::inner_donut(map, 4, 2);
maze::divide(map, {3,3}, {19,18});
auto copy = map;
maze::hunt_and_kill(copy, rooms, dead_ends, false);
maze::hunt_and_kill(copy, rooms, dead_ends);
map = copy;
maze::randomize_rooms(rooms, dead_ends);
maze::hunt_and_kill(map, rooms, dead_ends, false);
maze::hunt_and_kill(map, rooms, dead_ends);
matrix::dump("NO DEAD ENDS", map);
matrix::dump("COMBINED", map);
}