mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Patch from Ben Hutchings to fix an error-checking goof: Keen
division clues were failing to light up as erroneous if the quotient of the numbers in them came out right under rounded-down C integer division (e.g. 2 and 5 would be accepted for a 2/ clue). Apparently I copied the code that invents clues in the generator straight into the solution checker, without remembering that the generator was allowed to do it that way because exact divisibility had been checked elsewhere. [originally from svn r8951]
This commit is contained in:
7
keen.c
7
keen.c
@ -1450,11 +1450,12 @@ static int check_errors(game_state *state, long *errors)
|
|||||||
break;
|
break;
|
||||||
case C_DIV:
|
case C_DIV:
|
||||||
{
|
{
|
||||||
int d1 = cluevals[j], d2 = state->grid[i];
|
int d1 = min(cluevals[j], state->grid[i]);
|
||||||
if (d1 == 0 || d2 == 0)
|
int d2 = max(cluevals[j], state->grid[i]);
|
||||||
|
if (d1 == 0 || d2 % d1 != 0)
|
||||||
cluevals[j] = 0;
|
cluevals[j] = 0;
|
||||||
else
|
else
|
||||||
cluevals[j] = d2/d1 + d1/d2;/* one of them is 0 :-) */
|
cluevals[j] = d2 / d1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user