From e3690eb85a9456cc1f3ccda751ae7d9fdf2d3b03 Mon Sep 17 00:00:00 2001 From: Hampus Date: Tue, 4 Jan 2022 18:55:51 +0100 Subject: refactor: improve even more --- src/grid.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/grid.h (limited to 'src/grid.h') diff --git a/src/grid.h b/src/grid.h new file mode 100644 index 0000000..65fa01a --- /dev/null +++ b/src/grid.h @@ -0,0 +1,59 @@ +#ifndef GRID_H +#define GRID_H + +#include "position.h" + +typedef struct Dimensions +{ + unsigned int width; + unsigned int height; +} Dimensions; + +typedef struct Grid +{ + char ***grid; + Dimensions dimens; +} Grid; + +/** + * Returns a grid. + * + * @param width The grid width + * @param height The grid height + * @param fill A string to fill the new grid with + */ +Grid grid_create(unsigned int width, unsigned int height, char *fill); + +/* + * Returns a value from a position in a grid. + * + * @param grid A grid + * @param pos A grid position + */ +char *grid_get(Grid grid, Position pos); + +/* + * Sets the value of a position in a grid. + * + * @param grid A grid + * @param pos A grid position + * @param value A new value + */ +void grid_set(Grid grid, Position pos, char *value); + +/** + * Prints a grid. + * + * @param grid A grid + */ +void grid_print(Grid grid); + +/** + * Destroys a grid. + * + * @param grid A grid + */ +void grid_destroy(Grid grid); + +#endif + -- cgit v1.2.3-18-g5258