Maze gen can now more efficiently produce an interesting map that is fully pathable.

This commit is contained in:
Zed A. Shaw 2026-03-12 00:54:34 -04:00
parent f85ae8a6c6
commit e6fcbd8dcf
3 changed files with 75 additions and 8 deletions

View file

@ -7,7 +7,7 @@
#include "algos/maze.hpp"
#include "algos/stats.hpp"
#define DUMP 1
#define DUMP 0
using std::string;
using matrix::Matrix;
@ -106,7 +106,7 @@ TEST_CASE("hunt-and-kill validator", "[mazes]") {
bool valid = true;
Stats mofm;
for(int i = 0; i < 100; i++) {
for(int i = 0; i < 10; i++) {
Stats door_prob;
do {
@ -123,16 +123,24 @@ TEST_CASE("hunt-and-kill validator", "[mazes]") {
maze.enclose();
valid = maze.validate();
if(valid && i == 99) {
maze.dump("VALIDATED");
if(!valid) valid = maze.repair();
if(i == 9) {
if(valid) {
maze.dump("VALIDATED");
} else {
matrix::dump("PATHING", maze.$paths.$paths);
}
}
door_prob.sample(valid);
} while(!valid);
door_prob.dump();
mofm.sample(door_prob.mean());
}
fmt::println("FINAL m-of-m");
mofm.dump();
REQUIRE(mofm.mean() > 0.20);
}