From: simon Date: Tue, 17 Jan 2012 18:53:02 +0000 (+0000) Subject: Fix a bug causing premature defeatism in the Bridges solver. Deducing X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/commitdiff_plain/370cbbac43638ae4e2148c4d637ba08d83c966b6?hp=91d3791cb52e807cda8bd0b250c12ce0e1398f6c Fix a bug causing premature defeatism in the Bridges solver. Deducing a better upper bound on the number of bridges leaving a given island in a given direction was not counted as having 'done something'; so a solver run could make several such deductions, but then terminate in the belief that it hadn't achieved anything, when just going back round the main solver loop would have enabled it to make further deductions based on those new bounds. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9377 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/bridges.c b/bridges.c index 5860e0c..6a677e3 100644 --- a/bridges.c +++ b/bridges.c @@ -1505,11 +1505,11 @@ static int solve_island_stage3(struct island *is, int *didsth_r) if (maxb == 0) { debug(("...adding NOLINE.\n")); solve_join(is, i, -1, 0); /* we can't have any bridges here. */ - didsth = 1; } else { debug(("...setting maximum\n")); solve_join(is, i, maxb, 1); } + didsth = 1; } map_update_possibles(is->state); }