aboutsummaryrefslogtreecommitdiff
path: root/src/grid.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/grid.h')
-rw-r--r--src/grid.h59
1 files changed, 59 insertions, 0 deletions
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
+