]> git.cworth.org Git - wordgame/blobdiff - grid.h
grid: Generalize to allow either 4x4 or 5x5 grid.
[wordgame] / grid.h
diff --git a/grid.h b/grid.h
index 3d200c7e81d8efbd77c133bb826010ab44aa747c..e5b3d1e09b12164db08851f552f62a9bf621aece 100644 (file)
--- a/grid.h
+++ b/grid.h
 
 #include "dict.h"
 
+#define GRID_SIZE_MAX 5
 /* (  3 chars per cell
- *  x 4 cells per row
+ *  x GRID_SIZE_MAX cells per row
  *  + 1 newline per row
- * ) x 4 rows per grid
+ * ) x GRID_SIZE_MAX rows per grid
  *   + 1 terminator character
- * = 53
  */
-#define GRID_STRING_MAX 53
+#define GRID_STRING_MAX (((3 * GRID_SIZE_MAX + 1) * GRID_SIZE_MAX) + 1)
 
 typedef struct _grid {
-    char letters[4][4];
+    int size;
+    char letters[GRID_SIZE_MAX][GRID_SIZE_MAX];
     char string[GRID_STRING_MAX];
 
     /* Private, transient state used by enumerate */
     dict_t *results;
 } grid_t;
 
+/* size must be 4 or 5 */
 void
-grid_init (grid_t *grid);
+grid_init (grid_t *grid, int size);
 
 char *
 grid_string (grid_t *grid);