aboutsummaryrefslogtreecommitdiff
path: root/blackbox.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2006-02-07 21:45:50 +0000
committerSimon Tatham <anakin@pobox.com>2006-02-07 21:45:50 +0000
commitc5001ca751641b341b90913ba67c9138923ab759 (patch)
tree530896788fcd401e50c72ab21c4cc5e074c66bc4 /blackbox.c
parentacafc4d93f81d06069dcdda7a99666bcc04e7850 (diff)
downloadpuzzles-c5001ca751641b341b90913ba67c9138923ab759.zip
puzzles-c5001ca751641b341b90913ba67c9138923ab759.tar.gz
puzzles-c5001ca751641b341b90913ba67c9138923ab759.tar.bz2
puzzles-c5001ca751641b341b90913ba67c9138923ab759.tar.xz
Tal Kelrich spotted that hitting `Solve' on a configuration which is
laser-indistinguishable from the right solution _but_ has a number of balls outside the acceptable range does not report an error. His example was the game ID w8h8m5M5:1e3e6e80fa3e16265ccef7ca , omitting the rightmost ball in the second row. [originally from svn r6542]
Diffstat (limited to 'blackbox.c')
-rw-r--r--blackbox.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/blackbox.c b/blackbox.c
index 835175d..165ee2e 100644
--- a/blackbox.c
+++ b/blackbox.c
@@ -813,7 +813,9 @@ static int check_guesses(game_state *state, int cagey)
ret = 0;
}
}
- if (ret == 0) goto done;
+ if (ret == 0 ||
+ state->nguesses < state->minballs ||
+ state->nguesses > state->maxballs) goto done;
/* fix up original state so the 'correct' balls end up matching the guesses,
* as we've just proved that they were equivalent. */