From fe40ce26ec975c2e2f89409913321064a7876d5c Mon Sep 17 00:00:00 2001 From: Kirill Petrashin Date: Tue, 10 Mar 2026 18:59:23 +0300 Subject: Initial commit --- map.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 map.h (limited to 'map.h') diff --git a/map.h b/map.h new file mode 100644 index 0000000..aa40652 --- /dev/null +++ b/map.h @@ -0,0 +1,37 @@ +#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, + PLAYER_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); + +// 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); + +// Draw the map. Bet you didn't expect that. +void draw_map(Map map, int width, int height, Position player_pos); + +#endif //MAP_H_ -- cgit v1.2.3