diff options
Diffstat (limited to '')
| -rw-r--r-- | cpp/nissy.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/nissy.cpp b/cpp/nissy.cpp index 2c290a6..90fcf20 100644 --- a/cpp/nissy.cpp +++ b/cpp/nissy.cpp | |||
| @@ -24,6 +24,7 @@ extern "C" { | |||
| 24 | const unsigned char *, unsigned, char *, long long *, | 24 | const unsigned char *, unsigned, char *, long long *, |
| 25 | int (*)(void *), void *); | 25 | int (*)(void *), void *); |
| 26 | long long nissy_countmoves(const char *); | 26 | long long nissy_countmoves(const char *); |
| 27 | long long nissy_comparemoves(const char *, const char *); | ||
| 27 | long long nissy_setlogger(void (*)(const char *, void *), void *); | 28 | long long nissy_setlogger(void (*)(const char *, void *), void *); |
| 28 | } | 29 | } |
| 29 | 30 | ||
| @@ -53,6 +54,9 @@ namespace nissy { | |||
| 53 | const status status::STOP{1}; | 54 | const status status::STOP{1}; |
| 54 | const status status::PAUSE{2}; | 55 | const status status::PAUSE{2}; |
| 55 | 56 | ||
| 57 | const compare_result compare_result::EQUAL{0}; | ||
| 58 | const compare_result compare_result::DIFFERENT{99}; | ||
| 59 | |||
| 56 | namespace size { | 60 | namespace size { |
| 57 | constexpr size_t CUBE = 24; | 61 | constexpr size_t CUBE = 24; |
| 58 | constexpr size_t TRANSFORMATION = 12; | 62 | constexpr size_t TRANSFORMATION = 12; |
| @@ -210,6 +214,16 @@ namespace nissy { | |||
| 210 | return error{err}; | 214 | return error{err}; |
| 211 | } | 215 | } |
| 212 | 216 | ||
| 217 | std::variant<error, compare_result> | ||
| 218 | compare_moves(const std::string& m1, const std::string& m2) | ||
| 219 | { | ||
| 220 | auto cmp = nissy_comparemoves(m1.c_str(), m2.c_str()); | ||
| 221 | if (cmp < 0) | ||
| 222 | return error{cmp}; | ||
| 223 | else | ||
| 224 | return compare_result{cmp}; | ||
| 225 | } | ||
| 226 | |||
| 213 | void set_logger(void (*log)(const char *, void *), void *data) | 227 | void set_logger(void (*log)(const char *, void *), void *data) |
| 214 | { | 228 | { |
| 215 | nissy_setlogger(log, data); | 229 | nissy_setlogger(log, data); |
