Fix a misdesign I must have missed when I reviewed the Killer patch:
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 30 Apr 2009 17:56:56 +0000 (17:56 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 30 Apr 2009 17:56:56 +0000 (17:56 +0000)
commitd68762325555dfb025d58f77f95557098fadf0c8
treec469980a44497defe7c8b8106ecd8d7dd9c155dc
parent997065cf756f7f031d3ab0e7cf7a6a8d80d143bb
Fix a misdesign I must have missed when I reviewed the Killer patch:
merge_some_cages() was written in the assumption that it would
always be able to do something, in that it returned void on success
and if it couldn't find anything to do it would just loop round
forever trying the same things over and over again.

Now it makes a methodical list of the pairs of cages which are merge
candidates, goes through them in a random order until it finds a
viable one, and returns a boolean indicating whether it succeeded or
ran out of candidates.

A test case which previously hung and now does not is "solo
--generate 1 7jxkdt#12345-10".

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