X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=grid.c;h=c68ae435353d4e09380cfbd46aa874a6cf91c7ec;hb=b157806da521d22963c0246fdffa4671fd22e091;hp=273a6e83e765cb28c2ac291a17766e3ee1249b16;hpb=4209ed5b071d81e28d7a9286599d33352be84c5e;p=wordgame diff --git a/grid.c b/grid.c index 273a6e8..c68ae43 100644 --- 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) {