#pragma once #include "matrix.hpp" #include "map.hpp" namespace maze { struct Builder { Matrix& $walls; std::vector& $rooms; std::vector& $dead_ends; Builder(Map& map) : $walls(map.$walls), $rooms(map.$rooms), $dead_ends(map.$dead_ends) { init(); } void hunt_and_kill(Point on={1,1}); void init(); void randomize_rooms(); void inner_donut(float outer_rad, float inner_rad); void inner_box(size_t outer_size, size_t inner_size); void divide(Point start, Point end); void remove_dead_ends(); void dump(const std::string& msg); }; }