aboutsummaryrefslogtreecommitdiff
path: root/cpp/nissy.cpp
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-07-31 09:47:57 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-07-31 09:47:57 +0200
commit992de12cc081e7dde16c3c231f83bfa77c67825a (patch)
treeaf0b2d51b1a6cd92ae2cd6a32d581d752ddce8ea /cpp/nissy.cpp
parente2b154c40acaac4e7a7b3e379ada0404519c3750 (diff)
downloadnissy-core-992de12cc081e7dde16c3c231f83bfa77c67825a.tar.gz
nissy-core-992de12cc081e7dde16c3c231f83bfa77c67825a.zip
Added move sequence comparison function
Diffstat (limited to '')
-rw-r--r--cpp/nissy.cpp14
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);

Generated with cgit - Back to sebastiano.tronto.net