New configuration option in Unruly, to enable a mode in which no two
rows are permitted to have exactly the same pattern, and likewise
columns. (A row and a column can match, though.) This rule is
sometimes used, but not always; http://www.binarypuzzle.com/ in
particular has it (as a user just pointed out).

Since the filled-grid-generation stage of Unruly is implemented by
repeatedly choosing a square and then calling the solver to fill in
all its consequences, simply adding a solver mode conditional on this
flag is sufficient to do the whole of the interesting part of the job.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9837 cda61777-01e9-0310-a592-d414129be87e
Correct the comment at the top of unruly.c, which is out of date as of
r9837.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9838 cda61777-01e9-0310-a592-d414129be87e
Fix grid generation crashes at Penrose 3x3 sizes. What seemed to be
happening was that at the point of calling grid_make_consistent, the
grid had no faces or vertices, probably because grid_trim_vigorously
had removed them all, causing grid_make_consistent to try to allocate
a negative amount of memory and die in snewn.

Fixed by detecting this case in new_desc_penrose and retrying until
generation is successful. (It wasn't happening 100% of the time, just
_most_ of the time.) The same verification step is also used in
validate_desc_penrose in case a user manages to manually construct a
set of parameters leading to this failure mode.


git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9840 cda61777-01e9-0310-a592-d414129be87e