MaskFactory cycles through all possible masks for a grid of a given size.
Masks will be ignored if they are simply rotated or reflected forms of earlier
masks in the sequence.
MaskFactory [-c cellsInRow] [-r|-a boxes across] [-v] -i|filledCells
The option [-c cellsInRow] stipualtes the number of cells to appear
in a single row or column of the grid. The default value is 9.
MaskFactory will cycle through all possible masks - however, the
user has some control over where in the cycle the app will start. By default,
the app will start at the beginning. When the -r option is specified,
the app will start the cycle at a random position. When the -a boxes across,
the cycle will start at a position such that the filled cells are uniformly distributed
across the grid of the given size.
The option [-v] enables verbose output.
The option [-i] stipulates that the initial mask will be read from standard
input. The mask should be entered in the format that MaskFactory displays if
the -v option has been specified.
filledCells stipulates the number of filled cells to appear on the masks.
MaskFactory -c 4 -v 4 displays all masks for a 2x2 Su Doku grid with
4 initially-filled cells.
MaskFactory 10 counts the number of distinct masks for the classis
Su Doku grid with 10 initially-filled cells.