best = i; maxposs = nposs; minclues = nclues;
#ifdef STANDALONE_SOLVER
if (solver_show_working)
- printf("gg_best_clue: b%d (%d,%d) new best [%d poss, %d clues].",
+ printf("gg_best_clue: b%d (%d,%d) new best [%d poss, %d clues].\n",
best, x, y, nposs, nclues);
#endif
}
{
digit *sq = NULL;
int i, x, y, retlen, k, nsol;
- int o2 = params->order * params->order, ntries = 0;
+ int o2 = params->order * params->order, ntries = 1;
int *scratch, lscratch = o2*5;
char *ret, buf[80];
game_state *state = blank_game(params->order);
if (nsol > 0) {
#ifdef STANDALONE_SOLVER
if (solver_show_working)
- printf("game_assemble: puzzle as generated is too easy.");
+ printf("game_assemble: puzzle as generated is too easy.\n");
#endif
if (ntries < MAXTRIES) {
ntries++;
}
#ifdef STANDALONE_SOLVER
if (solver_show_working)
- printf("Unable to generate %s %dx%d after %d attempts.",
+ printf("Unable to generate %s %dx%d after %d attempts.\n",
unequal_diffnames[params->diff],
params->order, params->order, MAXTRIES);
#endif
}
#ifdef STANDALONE_SOLVER
if (solver_show_working)
- printf("new_game_desc: generated %s puzzle; %d attempts (%d solver).",
+ printf("new_game_desc: generated %s puzzle; %d attempts (%d solver).\n",
unequal_diffnames[params->diff], ntries, gg_solved);
#endif
button &= ~MOD_MASK;
- if (x >= 0 && x < ds->order && y >= 0 && y < ds->order) {
+ if (x >= 0 && x < ds->order && ((ox - COORD(x)) <= TILE_SIZE) &&
+ y >= 0 && y < ds->order && ((oy - COORD(y)) <= TILE_SIZE)) {
if (button == LEFT_BUTTON) {
/* normal highlighting for non-immutable squares */
if (GRID(state, flags, x, y) & F_IMMUTABLE)