@sbj42/word-search-generator
Version:
A program to generate word search puzzles
78 lines (51 loc) • 1.8 kB
Markdown
# word-search-generator
A word search generator
## usage
```
var generator = require('@sbj42/word-search-generator');
var puzzle = generator();
console.info(puzzle.toString());
console.info(puzzle.words.join(','));
```
That might print:
```
H T E S A D A N W O
A O W O R T R U N K
R E A D I O M P I G
D T O W D L Y D A M
L G I S E D H C A E
Y N O N D R R O C K
D C U D U A I Y N L
K T A T O D Y C E O
J U D G E O O T H U
E H T O B P R G W D
add,army,both,day,dog,door,dry,each,god,hardly,judge,let,loud,
mad,old,own,pet,pig,read,rich,ride,rock,row,sad,set,sock,the,
toe,trunk,tune,unit,when,win,wind
```
# options
The generator function takes an optional options object, with these options:
`diagonals` (boolean)
Defaults to `true`. Determines whether words can be placed diagonally on
the puzzle.
`width` and `height` (integer)
Defaults to 10x10. Sets the size of the puzzle.
`minLength` and `maxLength` (integer)
Useful for making sure the words aren't too short or too long. The default
for `minLength` is 3, and for `maxLength` is undefined.
`words` (array of strings)
Words will be chosen randomly from this list. If this is not provided, it
uses a built-in set of around 2,000 words.
# puzzle api
The object returned from the generator function has the following properties:
`width` and `height` (integer)
The size of the puzzle.
`grid` (array of string)
The letters in the puzzle. For row R and column C, the letter can be found at
`grid[R * width + C]`.
`words` (array of string)
The words placed in the puzzle, in alphabetical order.
`get(C, R)`
A helper function to fetch the letter at row R and column C.
`toString()`
Prints the puzzle to a string, for testing or command-line output.