blog/static/files/pb071/bonuses/04/maze.h
Matej Focko 7427475022
chore: transfer all KBs to single one
Signed-off-by: Matej Focko <mfocko@redhat.com>
2022-11-05 15:25:15 +01:00

33 lines
1.1 KiB
C

#include <stdlib.h>
enum end_state_t
{
NONE,
FOUND_KEY,
FOUND_TREASURE,
OUT_OF_BOUNDS,
INFINITE_LOOP,
};
/**
* @brief Prints maze and the robot within it.
* @param map Map of the maze.
* @param position Current position of the robot.
* @param direction Direction the robot is facing, one of "^v<>".
* @param width Width of the map.
* @param height Height of the map.
*/
void print_maze(const char *map, char *position, char direction, size_t width, size_t height);
/**
* @brief Get end state of the robot after his walk.
* @param map Map of the maze.
* @param position Initial position of the robot in the maze.
* @param direction Direction the robot is facing at the beginning. You can assume
* correctness of this value.
* @param width Width of the maze. You can assume correctness of this value.
* @param height Height of the maze. You can assume correctness of this value.
* @returns End state of the robot after his walk is finished or has been terminated
* manually.
*/
enum end_state_t walk(const char *map, char *position, char direction, size_t width, size_t height);