#ifndef MAP_H_ #define MAP_H_ #include #include "structs.h" enum MapTile_e { EMPTY = 0, GOAL, WALL, }; typedef enum MapTile_e MapTile; enum Colors_e { EMPTY_COLOR = 1, GOAL_COLOR = 2, WALL_COLOR = 3, START_COLOR = 4, }; // A map is a 2D array of MapTiles. // Use as map[row][column] typedef MapTile** Map; // Returns an empty map of given size Map empty_map(size_t width, size_t height); // Stores all the existing neighbours of pos in neighbour_array and returns their amount unsigned int neighbours(Position neighbour_array[], Position pos, size_t width, size_t height, \ char visited[height][width]); // https://en.wikipedia.org/wiki/Maze_generation_algorithm#Randomized_depth-first_search // WARNING: width and height are not the width and height of the returned map! // TODO: formula for actual size Map rbt_maze_map(size_t width, size_t height, unsigned int seed); // Draw the map. Bet you didn't expect that. void draw_map(Map map, int width, int height, Position start); #endif //MAP_H_