diff options
Diffstat (limited to '')
| -rw-r--r-- | src/nissy.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/nissy.c b/src/nissy.c index ffda4b3..ed1d3f4 100644 --- a/src/nissy.c +++ b/src/nissy.c | |||
| @@ -451,14 +451,16 @@ nissy_gendata_unsafe( | |||
| 451 | return NISSY_ERROR_DATA; | 451 | return NISSY_ERROR_DATA; |
| 452 | } | 452 | } |
| 453 | 453 | ||
| 454 | arg.buf_size = data_size; | ||
| 455 | arg.buf = data; | ||
| 456 | if (!strncmp(solver, "h48", 3)) { | 454 | if (!strncmp(solver, "h48", 3)) { |
| 455 | arg.buf_size = data_size; | ||
| 456 | arg.buf = data; | ||
| 457 | parse_ret = parse_h48_solver(solver, &arg.h, &arg.k); | 457 | parse_ret = parse_h48_solver(solver, &arg.h, &arg.k); |
| 458 | arg.maxdepth = 20; | 458 | arg.maxdepth = 20; |
| 459 | if (parse_ret != NISSY_OK) | 459 | if (parse_ret != NISSY_OK) |
| 460 | return parse_ret; | 460 | return parse_ret; |
| 461 | return gendata_h48(&arg); | 461 | return gendata_h48(&arg); |
| 462 | } else if (!strncmp(solver, "coord_", 6)) { | ||
| 463 | return gendata_coord_dispatch(solver+6, data); | ||
| 462 | } else { | 464 | } else { |
| 463 | LOG("gendata: unknown solver %s\n", solver); | 465 | LOG("gendata: unknown solver %s\n", solver); |
| 464 | return NISSY_ERROR_INVALID_SOLVER; | 466 | return NISSY_ERROR_INVALID_SOLVER; |
| @@ -501,6 +503,7 @@ long long | |||
| 501 | nissy_solve( | 503 | nissy_solve( |
| 502 | const char cube[static NISSY_SIZE_B32], | 504 | const char cube[static NISSY_SIZE_B32], |
| 503 | const char *solver, | 505 | const char *solver, |
| 506 | const char *options, | ||
| 504 | unsigned nissflag, | 507 | unsigned nissflag, |
| 505 | unsigned minmoves, | 508 | unsigned minmoves, |
| 506 | unsigned maxmoves, | 509 | unsigned maxmoves, |
| @@ -536,6 +539,8 @@ nissy_solve( | |||
| 536 | return NISSY_ERROR_UNSOLVABLE_CUBE; | 539 | return NISSY_ERROR_UNSOLVABLE_CUBE; |
| 537 | } | 540 | } |
| 538 | 541 | ||
| 542 | /* TODO: checks for minmoves, maxmoves, nissflag */ | ||
| 543 | |||
| 539 | if (maxsols == 0) { | 544 | if (maxsols == 0) { |
| 540 | LOG("solve: 'maxsols' is 0, returning no solution\n"); | 545 | LOG("solve: 'maxsols' is 0, returning no solution\n"); |
| 541 | return 0; | 546 | return 0; |
| @@ -562,11 +567,15 @@ nissy_solve( | |||
| 562 | 567 | ||
| 563 | if (!strncmp(solver, "h48", 3)) { | 568 | if (!strncmp(solver, "h48", 3)) { |
| 564 | parse_ret = parse_h48_solver(solver, &h, &k); | 569 | parse_ret = parse_h48_solver(solver, &h, &k); |
| 565 | if (parse_ret == NISSY_OK) | 570 | if (parse_ret != NISSY_OK) |
| 566 | return solve_h48(c, minmoves, maxmoves, maxsols, opt, | ||
| 567 | t, data_size, data, sols_size, sols, stats); | ||
| 568 | else | ||
| 569 | return parse_ret; | 571 | return parse_ret; |
| 572 | /* TODO give warning if options is not NULL or empty? */ | ||
| 573 | return solve_h48(c, minmoves, maxmoves, maxsols, | ||
| 574 | opt, t, data_size, data, sols_size, sols, stats); | ||
| 575 | } else if (!strncmp(solver, "coord_", 6)) { | ||
| 576 | return solve_coord_dispatch(c, solver + 6, options, nissflag, | ||
| 577 | minmoves, maxmoves, maxsols, opt, t, data_size, data, | ||
| 578 | sols_size, sols); | ||
| 570 | } else { | 579 | } else { |
| 571 | LOG("solve: unknown solver '%s'\n", solver); | 580 | LOG("solve: unknown solver '%s'\n", solver); |
| 572 | return NISSY_ERROR_INVALID_SOLVER; | 581 | return NISSY_ERROR_INVALID_SOLVER; |
