~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some minor fixes to the unfinished Pearl solver:
[sgt/puzzles]
/
unfinished
/
pearl.c
diff --git
a/unfinished/pearl.c
b/unfinished/pearl.c
index
41ab998
..
bd40dba
100644
(file)
--- a/
unfinished/pearl.c
+++ b/
unfinished/pearl.c
@@
-217,6
+217,7
@@
int pearl_solve(int w, int h, char *clues, char *result)
* Now repeatedly try to find something we can do.
*/
while (1) {
* Now repeatedly try to find something we can do.
*/
while (1) {
+ int done_something = FALSE;
#ifdef SOLVER_DIAGNOSTICS
for (y = 0; y < H; y++) {
#ifdef SOLVER_DIAGNOSTICS
for (y = 0; y < H; y++) {
@@
-226,8
+227,6
@@
int pearl_solve(int w, int h, char *clues, char *result)
}
#endif
}
#endif
- int done_something = FALSE;
-
/*
* Go through the square state words, and discard any
* square state which is inconsistent with known facts
/*
* Go through the square state words, and discard any
* square state which is inconsistent with known facts
@@
-267,9
+266,9
@@
int pearl_solve(int w, int h, char *clues, char *result)
if (!workspace[(2*y+1)*W+(2*x+1)]) {
#ifdef SOLVER_DIAGNOSTICS
printf("edge check at (%d,%d): inconsistency\n", x, y);
if (!workspace[(2*y+1)*W+(2*x+1)]) {
#ifdef SOLVER_DIAGNOSTICS
printf("edge check at (%d,%d): inconsistency\n", x, y);
+#endif
ret = 0;
goto cleanup;
ret = 0;
goto cleanup;
-#endif
}
}
}
}
@@
-298,9
+297,9
@@
int pearl_solve(int w, int h, char *clues, char *result)
if (edgeand & ~edgeor) {
#ifdef SOLVER_DIAGNOSTICS
printf("square check at (%d,%d): inconsistency\n", x, y);
if (edgeand & ~edgeor) {
#ifdef SOLVER_DIAGNOSTICS
printf("square check at (%d,%d): inconsistency\n", x, y);
+#endif
ret = 0;
goto cleanup;
ret = 0;
goto cleanup;
-#endif
}
for (d = 1; d <= 8; d += d) {
}
for (d = 1; d <= 8; d += d) {
@@
-385,7
+384,6
@@
int pearl_solve(int w, int h, char *clues, char *result)
}
}
}
}
-
break;
case STRAIGHT:
/*
break;
case STRAIGHT:
/*