diff --git a/puissance4_GRB/puissance4.c b/puissance4_GRB/puissance4.c
new file mode 100644
index 0000000000000000000000000000000000000000..b15968f16df21d1662984b24431dde344d4d1eb8
--- /dev/null
+++ b/puissance4_GRB/puissance4.c
@@ -0,0 +1,29 @@
+#include "puissance4.h"
+#include <stdint.h>
+#include <stdio.h>
+
+/***********************************
+ * function     : Create_grid2D
+ * arguments    : taille de grille (ex: 3 pour 3x3)
+ *
+ * return value : cell_t** -> la grille mise à jour et allouée
+ * 		initialise les valeurs de la grille
+ * 		et alloue la mémoire dynamiquement
+ ***********************************/
+struct cell **Create_grid2D(uint8_t height, uint8_t width){
+	struct cell** cells = malloc(height*sizeof(struct cell));
+	for(int k =0; k<height; k++){
+		cells[k] = malloc(width*sizeof(struct cell));
+	}
+	//initialise les positions et les valeurs de base
+	for(int i = 0; i<height; i++){
+		for(int j=0; j<width; j++){
+			cells[i][j].pressed = false;
+			cells[i][j].symbol = EMPTY;
+			cells[i][j].i_pos = i;
+			cells[i][j].j_pos = j;
+		}
+	}
+	return cells;
+}
+
diff --git a/puissance4_GRB/puissance4.h b/puissance4_GRB/puissance4.h
new file mode 100644
index 0000000000000000000000000000000000000000..db8ee4e7ce958e1b7af3e78ba4f261a25835594a
--- /dev/null
+++ b/puissance4_GRB/puissance4.h
@@ -0,0 +1,28 @@
+#ifndef _PUIS4_
+#define _PUIS4_
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+
+struct grid{
+    int height;
+    int width;
+    struct cell** cells;
+}typedef grid;
+
+typedef enum{
+	CIRCLE,	//signifie le symbole du cercle
+	CROSS,	//signifie le symbole de la croix
+	EMPTY,	//signifie une cellule vide
+	EQUAL	//signifie un état d'égalité entre la croix et le cercle
+}symbol_t;
+
+struct cell{
+    bool pressed;
+    symbol_t symbol;
+    int i_pos;
+    int j_pos;
+};
+
+#endif
\ No newline at end of file