New puzzle: `Slant', picked from the Japanese-language section of

nikoli.co.jp (which has quite a few puzzles that they don't seem to
have bothered to translate into English).

Minor structural change: the disjoint set forest code used in the
Net solver has come in handy again, so I've moved it out into its
own module dsf.c.

[originally from svn r6155]
This commit is contained in:
Simon Tatham
2005-08-02 23:16:46 +00:00
parent 207c847553
commit afe80030e4
8 changed files with 1413 additions and 36 deletions

23
net.c
View File

@ -382,29 +382,6 @@ static char *validate_params(game_params *params, int full)
* avoidance is required.
*/
static int dsf_canonify(int *dsf, int val)
{
int v2 = val;
while (dsf[val] != val)
val = dsf[val];
while (v2 != val) {
int tmp = dsf[v2];
dsf[v2] = val;
v2 = tmp;
}
return val;
}
static void dsf_merge(int *dsf, int v1, int v2)
{
v1 = dsf_canonify(dsf, v1);
v2 = dsf_canonify(dsf, v2);
dsf[v2] = v1;
}
struct todo {
unsigned char *marked;
int *buffer;