From 483c635bda691556084042710f3f5c5f0d81c047 Mon Sep 17 00:00:00 2001 From: Kirill Petrashin Date: Thu, 23 Apr 2026 13:48:37 +0300 Subject: Implement 4dir wraparound --- map.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'map.h') diff --git a/map.h b/map.h index 7faa597..16c731f 100644 --- a/map.h +++ b/map.h @@ -20,11 +20,17 @@ Map empty_map(size_t width, size_t height); /* Stores all the existing 4dir neighbours of pos in neighbour_array and returns their amount */ unsigned int neighbours_4dir(Position neighbour_array[4], size_t cost_array[4], Position pos, size_t width, size_t height, \ char **visited, size_t **costs); +/* Same as above, but walls wrap around. IMPORTANT: the heuristic is tuned to no wraparound, so only dijkstras will work correctly */ +unsigned int neighbours_4dir_wraparound(Position neighbour_array[4], size_t cost_array[4], Position pos, size_t width, size_t height, \ + char **visited, size_t **costs); /* Stores all the existing 8dir neighbours of pos in neighbour_array and returns their amount. * Additionaly stores costs into cost_array if it's not NULL. * The cost of goint orthogonally is 10, diagonaly is 14 (sqrt(2) * 10) */ unsigned int neighbours_8dir(Position neighbour_array[8], size_t cost_array[8], Position pos, size_t width, size_t height, \ char **visited, size_t **costs); +/* Same as above, but walls wrap around. IMPORTANT: the heuristic is tuned to no wraparound, so only dijkstras will work correctly */ +unsigned int neighbours_8dir_wraparound(Position neighbour_array[8], size_t cost_array[8], Position pos, size_t width, size_t height, \ + char **visited, size_t **costs); /* 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! -- cgit v1.2.3