aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/constants.h62
1 files changed, 56 insertions, 6 deletions
diff --git a/src/utils/constants.h b/src/utils/constants.h
index ab1b9d8..dd2b92a 100644
--- a/src/utils/constants.h
+++ b/src/utils/constants.h
@@ -93,12 +93,11 @@ STATIC int64_t binomial[12][12] = {
93#define TRANS_BDm UINT8_C(46) 93#define TRANS_BDm UINT8_C(46)
94#define TRANS_BLm UINT8_C(47) 94#define TRANS_BLm UINT8_C(47)
95 95
96#define MM_NORMAL UINT8_C(0x00) 96#define NMOVES (1+MOVE_B3)
97#define MM_INVERSE UINT8_C(0x01) 97#define NTRANS (1+TRANS_BLr)
98#define MM_INVERSEBRANCH UINT8_C(0x03) 98
99#define MM_NORMALBRANCH UINT8_C(0x02) 99#define MM_ALLMOVES UINT32_C(0x3FFFF)
100#define MM_ALLMOVES UINT32_C(0x3FFFF) 100#define MM_NOHALFTURNS UINT32_C(0x2DB6D)
101#define MM_NOHALFTURNS UINT32_C(0x2DB6D)
102 101
103#define CORNER_UFR UINT8_C(0) 102#define CORNER_UFR UINT8_C(0)
104#define CORNER_UBL UINT8_C(1) 103#define CORNER_UBL UINT8_C(1)
@@ -296,3 +295,54 @@ static uint8_t inverse_trans_table[48] = {
296 [TRANS_BLr] = TRANS_RDr, 295 [TRANS_BLr] = TRANS_RDr,
297 [TRANS_BLm] = TRANS_LDm, 296 [TRANS_BLm] = TRANS_LDm,
298}; 297};
298
299static uint8_t trans_move_table[48][3] = {
300 [TRANS_UFr] = { MOVE_U, MOVE_R, MOVE_F },
301 [TRANS_UFm] = { MOVE_U, MOVE_L, MOVE_F },
302 [TRANS_ULr] = { MOVE_U, MOVE_F, MOVE_L },
303 [TRANS_ULm] = { MOVE_U, MOVE_F, MOVE_R },
304 [TRANS_UBr] = { MOVE_U, MOVE_L, MOVE_B },
305 [TRANS_UBm] = { MOVE_U, MOVE_R, MOVE_B },
306 [TRANS_URr] = { MOVE_U, MOVE_B, MOVE_R },
307 [TRANS_URm] = { MOVE_U, MOVE_B, MOVE_L },
308 [TRANS_DFr] = { MOVE_D, MOVE_L, MOVE_F },
309 [TRANS_DFm] = { MOVE_D, MOVE_R, MOVE_F },
310 [TRANS_DLr] = { MOVE_D, MOVE_B, MOVE_L },
311 [TRANS_DLm] = { MOVE_D, MOVE_B, MOVE_R },
312 [TRANS_DBr] = { MOVE_D, MOVE_R, MOVE_B },
313 [TRANS_DBm] = { MOVE_D, MOVE_L, MOVE_B },
314 [TRANS_DRr] = { MOVE_D, MOVE_F, MOVE_R },
315 [TRANS_DRm] = { MOVE_D, MOVE_F, MOVE_L },
316 [TRANS_RUr] = { MOVE_R, MOVE_F, MOVE_U },
317 [TRANS_RUm] = { MOVE_L, MOVE_F, MOVE_U },
318 [TRANS_RFr] = { MOVE_R, MOVE_D, MOVE_F },
319 [TRANS_RFm] = { MOVE_L, MOVE_D, MOVE_F },
320 [TRANS_RDr] = { MOVE_R, MOVE_B, MOVE_D },
321 [TRANS_RDm] = { MOVE_L, MOVE_B, MOVE_D },
322 [TRANS_RBr] = { MOVE_R, MOVE_U, MOVE_B },
323 [TRANS_RBm] = { MOVE_L, MOVE_U, MOVE_B },
324 [TRANS_LUr] = { MOVE_L, MOVE_B, MOVE_U },
325 [TRANS_LUm] = { MOVE_R, MOVE_B, MOVE_U },
326 [TRANS_LFr] = { MOVE_L, MOVE_U, MOVE_F },
327 [TRANS_LFm] = { MOVE_R, MOVE_U, MOVE_F },
328 [TRANS_LDr] = { MOVE_L, MOVE_F, MOVE_D },
329 [TRANS_LDm] = { MOVE_R, MOVE_F, MOVE_D },
330 [TRANS_LBr] = { MOVE_L, MOVE_D, MOVE_B },
331 [TRANS_LBm] = { MOVE_R, MOVE_D, MOVE_B },
332 [TRANS_FUr] = { MOVE_F, MOVE_L, MOVE_U },
333 [TRANS_FUm] = { MOVE_F, MOVE_R, MOVE_U },
334 [TRANS_FRr] = { MOVE_F, MOVE_U, MOVE_R },
335 [TRANS_FRm] = { MOVE_F, MOVE_U, MOVE_L },
336 [TRANS_FDr] = { MOVE_F, MOVE_R, MOVE_D },
337 [TRANS_FDm] = { MOVE_F, MOVE_L, MOVE_D },
338 [TRANS_FLr] = { MOVE_F, MOVE_D, MOVE_L },
339 [TRANS_FLm] = { MOVE_F, MOVE_D, MOVE_R },
340 [TRANS_BUr] = { MOVE_B, MOVE_R, MOVE_U },
341 [TRANS_BUm] = { MOVE_B, MOVE_L, MOVE_U },
342 [TRANS_BRr] = { MOVE_B, MOVE_D, MOVE_R },
343 [TRANS_BRm] = { MOVE_B, MOVE_D, MOVE_L },
344 [TRANS_BDr] = { MOVE_B, MOVE_L, MOVE_D },
345 [TRANS_BDm] = { MOVE_B, MOVE_R, MOVE_D },
346 [TRANS_BLr] = { MOVE_B, MOVE_U, MOVE_L },
347 [TRANS_BLm] = { MOVE_B, MOVE_U, MOVE_R },
348};

Generated with cgit - Back to sebastiano.tronto.net