aboutsummaryrefslogtreecommitdiff
path: root/cpp/nissy.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpp/nissy.cpp16
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,

Generated with cgit - Back to sebastiano.tronto.net