word searches are a type of puzzle in which a grid of letters is provi
Question
Word searches are a type of puzzle in which a grid of letters is provided, along side a series
of words. The task is then to find the given words inside the grid of letters. Depending on
the word search itself, the words can be found in different orientations, left-to-right, top-
to-bottom, or even at angles. While these are not terribly taxing puzzles compared to, for
example, a crossword, or a sudoku, word searches remain a simple and entertaining type of
puzzle for all ages.
From a programmer's perspective, word searches create two interesting, and closely re-
lated, challenges. First, given a 2d grid of characters and a specific string - determine
whether or not the string is present, and if so report not only the location, but direction
at which the word can be found. Second, given a target size, and a list of words, generate
a pseudo-random 2d grid of characters such that all (or most) of the given words can be
found in the generated grid. By the end of this project you should have a program capable
of solving both of these problems.