]> git.cworth.org Git - wordgame/blobdiff - grid.c
Add the ability to specify grid letters on the command line.
[wordgame] / grid.c
diff --git a/grid.c b/grid.c
index 273a6e83e765cb28c2ac291a17766e3ee1249b16..c68ae435353d4e09380cfbd46aa874a6cf91c7ec 100644 (file)
--- a/grid.c
+++ b/grid.c
@@ -86,6 +86,31 @@ grid_init (grid_t *grid, int size)
            cubes_source[cubes[i]][rand_within(6)];
 }
 
+void
+grid_set_letters (grid_t       *grid,
+                 const char    *letters)
+{
+    int i;
+    int num_cubes = grid->size * grid->size;
+    char letter;
+
+    if (strlen (letters) != num_cubes) {
+       fprintf (stderr, "Error: Invalid string for %dx%d grid. Expected %d letters: %s\n",
+                grid->size, grid->size, num_cubes, letters);
+       exit (1);
+    }
+
+    for (i = 0; i < num_cubes; i++) {
+       letter = tolower (letters[i]);
+       if (letter < 'a' || letter > 'z') {
+           fprintf (stderr, "Error: Invalid character '%c' in letters: %s\n",
+                    letters[i], letters);
+           exit (1);
+       }
+       grid->letters[i / grid->size][i % grid->size] = letter;
+    }
+}
+
 char *
 grid_string (grid_t *grid)
 {