diff options
Diffstat (limited to '')
| -rw-r--r-- | cpp/nissy.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cpp/nissy.cpp b/cpp/nissy.cpp index 944944b..92b10bd 100644 --- a/cpp/nissy.cpp +++ b/cpp/nissy.cpp | |||
| @@ -21,8 +21,8 @@ extern "C" { | |||
| 21 | long long nissy_gendata(const char *, unsigned long long, char *); | 21 | long long nissy_gendata(const char *, unsigned long long, char *); |
| 22 | long long nissy_checkdata(unsigned long long, const char *); | 22 | long long nissy_checkdata(unsigned long long, const char *); |
| 23 | long long nissy_solve(const char *, const char *, unsigned, unsigned, | 23 | long long nissy_solve(const char *, const char *, unsigned, unsigned, |
| 24 | unsigned, unsigned, int, int, unsigned long long, const char *, | 24 | unsigned, unsigned, unsigned, unsigned, unsigned long long, |
| 25 | unsigned, char *, long long *); | 25 | const char *, unsigned, char *, long long *); |
| 26 | long long nissy_countmoves(const char *); | 26 | long long nissy_countmoves(const char *); |
| 27 | long long nissy_setlogger(void (*)(const char *, void *), void *); | 27 | long long nissy_setlogger(void (*)(const char *, void *), void *); |
| 28 | } | 28 | } |
| @@ -182,11 +182,19 @@ namespace nissy { | |||
| 182 | 182 | ||
| 183 | solver::solve_result | 183 | solver::solve_result |
| 184 | solver::solve(const cube& cube, nissflag niss, unsigned minmoves, | 184 | solver::solve(const cube& cube, nissflag niss, unsigned minmoves, |
| 185 | unsigned maxmoves, unsigned maxsols, int optimal, int threads) | 185 | unsigned maxmoves, unsigned maxsols, unsigned optimal, |
| 186 | unsigned threads) | ||
| 186 | { | 187 | { |
| 188 | solver::solve_result result; | ||
| 189 | |||
| 190 | if (maxsols == 0) { | ||
| 191 | result.solutions = {}; | ||
| 192 | result.err = error::OK; | ||
| 193 | return result; | ||
| 194 | } | ||
| 195 | |||
| 187 | const size_t len = 3 * (maxmoves+1) * maxsols; | 196 | const size_t len = 3 * (maxmoves+1) * maxsols; |
| 188 | std::vector<char> csols(len); | 197 | std::vector<char> csols(len); |
| 189 | solver::solve_result result; | ||
| 190 | 198 | ||
| 191 | auto err = nissy_solve(cube.to_string().c_str(), | 199 | auto err = nissy_solve(cube.to_string().c_str(), |
| 192 | name.c_str(), niss.value, minmoves, maxmoves, maxsols, | 200 | name.c_str(), niss.value, minmoves, maxmoves, maxsols, |
