aboutsummaryrefslogtreecommitdiff
path: root/src/solve.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/solve.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/solve.c b/src/solve.c
index 931dc02..79e421d 100644
--- a/src/solve.c
+++ b/src/solve.c
@@ -373,7 +373,7 @@ niss_makes_sense(DfsArg *arg)
373AlgList * 373AlgList *
374solve(Cube cube, Step *step, SolveOptions *opts) 374solve(Cube cube, Step *step, SolveOptions *opts)
375{ 375{
376 int d; 376 int d, op;
377 AlgList *sols; 377 AlgList *sols;
378 Cube c; 378 Cube c;
379 379
@@ -396,16 +396,19 @@ solve(Cube cube, Step *step, SolveOptions *opts)
396 return sols; 396 return sols;
397 } 397 }
398 398
399 op = -1;
399 for (d = opts->min_moves; 400 for (d = opts->min_moves;
400 d <= opts->max_moves && 401 d <= opts->max_moves &&
401 !(sols->len && opts->optimal_only) && 402 !(opts->optimal != -1 && op != -1 && opts->optimal + op < d) &&
402 sols->len < opts->max_solutions; 403 sols->len < opts->max_solutions;
403 d++) { 404 d++) {
404 if (opts->verbose) 405 if (opts->verbose)
405 fprintf(stderr, 406 fprintf(stderr,
406 "Found %d solutions, searching depth %d...\n", 407 "Found %d solutions, searching depth %d...\n",
407 sols->len, d); 408 sols->len, d);
408 multidfs(c, step, opts, sols, d); 409 multidfs(c, step, opts, sols, d);
410 if (sols->len > 0 && op == -1)
411 op = d;
409 } 412 }
410 413
411 return sols; 414 return sols;

Generated with cgit - Back to sebastiano.tronto.net