Doxygen config
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
/*! @file maze.hpp
|
||||
Заголовочный файл класса лабиринта для игры.
|
||||
@author ParkSuMin
|
||||
@date 2025.04.30 */
|
||||
|
||||
#ifndef MAZE_HPP
|
||||
#define MAZE_HPP
|
||||
|
||||
@@ -7,29 +12,55 @@
|
||||
#include <climits>
|
||||
#include <random>
|
||||
|
||||
/*! Размер лабиринта (количество узлов). */
|
||||
const int MAZE_SIZE = 9;
|
||||
/*! Количество направлений движения (вперёд, направо, назад, налево). */
|
||||
const int DIRECTIONS = 4;
|
||||
/*! Минимальное количество стен в лабиринте. */
|
||||
const int MIN_WALLS = 3;
|
||||
/*! Максимальное количество стен в лабиринте. */
|
||||
const int MAX_WALLS = 5;
|
||||
|
||||
/*! Класс лабиринта для игры. */
|
||||
class Maze{
|
||||
private:
|
||||
std::unordered_map<int, std::vector<bool>> graph;
|
||||
int moves_left;
|
||||
std::unordered_map<int, std::vector<bool>> graph; ///< Граф лабиринта, где узлы связаны направлениями.
|
||||
int moves_left; ///< Количество оставшихся ходов.
|
||||
bool test_mode; ///< Флаг тестового режима (без ограничения ходов).
|
||||
|
||||
/*! Проверяет наличие пути между двумя узлами.
|
||||
@details Использует поиск в ширину (BFS) для проверки существования пути от start до end.
|
||||
@param start Начальный узел.
|
||||
@param end Конечный узел.
|
||||
@return true, если путь существует, false — иначе. */
|
||||
bool is_path_exists(int start, int end);
|
||||
|
||||
/*! Структура, представляющая ребро в графе лабиринта. */
|
||||
struct Edge {
|
||||
int node1, dir1;
|
||||
int node2, dir2;
|
||||
int node1; ///< Первый узел ребра.
|
||||
int dir1; ///< Направление от первого узла.
|
||||
int node2; ///< Второй узел ребра.
|
||||
int dir2; ///< Направление от второго узла.
|
||||
};
|
||||
public:
|
||||
bool test_mode;
|
||||
|
||||
/*! Создаёт лабиринт.
|
||||
@details Инициализирует граф лабиринта, добавляет случайные стены и задаёт количество ходов.
|
||||
@param flag Флаг тестового режима (true — без ограничения ходов).
|
||||
@param steps Количество ходов, доступных игроку (игнорируется в тестовом режиме). */
|
||||
Maze(bool flag, int steps);
|
||||
|
||||
|
||||
/*! Возвращает количество оставшихся ходов.
|
||||
@return Целое число, представляющее оставшиеся ходы. */
|
||||
int get_moves_left() const;
|
||||
|
||||
/*! Устанавливает количество оставшихся ходов.
|
||||
@param _steps Новое значение количества ходов. */
|
||||
void set_moves_left(int _steps);
|
||||
|
||||
/*! Проверяет наличие стены в указанном направлении от узла.
|
||||
@param node Узел лабиринта.
|
||||
@param direction Направление (0 — вперёд, 1 — направо, 2 — назад, 3 — налево).
|
||||
@return true, если в указанном направлении стена, false — иначе. */
|
||||
bool is_wall(int node, int direction) const;
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user