aboutsummaryrefslogtreecommitdiff
path: root/src/maze.hpp
blob: e525d70346a546b6c9bb182ee215b1e0827fcba1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "engine/matrix.hpp"
#include "engine/vector2.hpp"
#include <memory>
#include <random>
#include <string>

/**
 * Turns a matrix into a maze.
 *
 * @param matrix A matrix
 * @param start_pos The start position in the matrix
 * @param space_element A matrix element used to indicate a space in a maze
 * @param random_gen A pseudo-random number generator
 */
template <typename Element>
void matrix_to_maze(Matrix<Element> *matrix, std::shared_ptr<Vector2> start_pos,
					Element space_element, std::mt19937 random_gen);

#include "maze.tpp"