aboutsummaryrefslogtreecommitdiff
path: root/voerbak/board.h
diff options
context:
space:
mode:
Diffstat (limited to 'voerbak/board.h')
-rw-r--r--voerbak/board.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/voerbak/board.h b/voerbak/board.h
new file mode 100644
index 0000000..9b4c2f6
--- /dev/null
+++ b/voerbak/board.h
@@ -0,0 +1,47 @@
+#pragma once
+#include <stdbool.h>
+
+/**
+ * @brief Structure to store a board
+ *
+ * @param width Board width
+ * @param height Board height
+ * @param length Board state array length (width * height)
+ * @param board Board state array
+ */
+typedef struct {
+ int width;
+ int height;
+ int length;
+ int* board;
+} Board;
+
+/**
+ * @brief Create new board
+ *
+ * @param width Board width
+ * @param height Board height
+ *
+ * @return Empty board
+ */
+Board* createBoard(int, int);
+
+/**
+ * @brief Print the board array
+ */
+void printBoard(Board*);
+
+/**
+ * @brief Check if the board is full (draw)
+ *
+ * @return `true` board is full
+ */
+bool boardFull(Board*);
+
+/**
+ * @brief Drop a disc into the board
+ *
+ * @return `true` if drop was successful, `false` if column full
+ */
+bool dropFisje(Board*, int, int);
+