mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
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:
23
net.c
23
net.c
@ -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;
|
||||
|
Reference in New Issue
Block a user