aboutsummaryrefslogtreecommitdiff
path: root/src/cube.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/cube.h90
1 files changed, 2 insertions, 88 deletions
diff --git a/src/cube.h b/src/cube.h
index 43d9172..fd0d3e8 100644
--- a/src/cube.h
+++ b/src/cube.h
@@ -1,6 +1,3 @@
1/* Types *********************************************************************/
2
3/* See doc/CUBE_INTERNAL.md for a description of the cube format */
4typedef struct { 1typedef struct {
5 uint8_t c[16]; 2 uint8_t c[16];
6 uint8_t e[16]; 3 uint8_t e[16];
@@ -14,8 +11,6 @@ typedef cube_arr_t cube_t;
14typedef uint8_t move_t; 11typedef uint8_t move_t;
15typedef uint8_t trans_t; 12typedef uint8_t trans_t;
16 13
17/* Functions *****************************************************************/
18
19int readmoves(char *, move_t *); 14int readmoves(char *, move_t *);
20void writemoves(move_t *, int, char *); 15void writemoves(move_t *, int, char *);
21trans_t readtrans(char *); 16trans_t readtrans(char *);
@@ -24,11 +19,9 @@ void writetrans(trans_t, char *);
24move_t inverse_move(move_t); 19move_t inverse_move(move_t);
25trans_t inverse_trans(trans_t); 20trans_t inverse_trans(trans_t);
26 21
27/* Not all formats are supported for both read and write. */
28/* See doc/CUBE_TEXT.md for details. */
29typedef enum {H48, SRC} format_t; 22typedef enum {H48, SRC} format_t;
30cube_t readcube(format_t, char *); 23cube_t readcube(format_t, char *); /* Supports: H48 */
31void writecube(format_t, cube_t, char *); 24void writecube(format_t, cube_t, char *); /* Supports: H48, SRC */
32 25
33cube_t solvedcube(void); 26cube_t solvedcube(void);
34cube_t zerocube(void); 27cube_t zerocube(void);
@@ -41,82 +34,3 @@ cube_t move(cube_t, move_t);
41cube_t inverse(cube_t); 34cube_t inverse(cube_t);
42cube_t compose(cube_t, cube_t); 35cube_t compose(cube_t, cube_t);
43cube_t transform(cube_t, trans_t); 36cube_t transform(cube_t, trans_t);
44
45/* Constants for moves and transformations ***********************************/
46
47/* Standard moves */
48#define U 0U
49#define U2 1U
50#define U3 2U
51#define D 3U
52#define D2 4U
53#define D3 5U
54#define R 6U
55#define R2 7U
56#define R3 8U
57#define L 9U
58#define L2 10U
59#define L3 11U
60#define F 12U
61#define F2 13U
62#define F3 14U
63#define B 15U
64#define B2 16U
65#define B3 17U
66
67/* Regular transformations (rotations) */
68#define UFr 0
69#define ULr 1
70#define UBr 2
71#define URr 3
72#define DFr 4
73#define DLr 5
74#define DBr 6
75#define DRr 7
76#define RUr 8
77#define RFr 9
78#define RDr 10
79#define RBr 11
80#define LUr 12
81#define LFr 13
82#define LDr 14
83#define LBr 15
84#define FUr 16
85#define FRr 17
86#define FDr 18
87#define FLr 19
88#define BUr 20
89#define BRr 21
90#define BDr 22
91#define BLr 23
92
93/* Mirrored transformations */
94#define UFm 24
95#define ULm 25
96#define UBm 26
97#define URm 27
98#define DFm 28
99#define DLm 29
100#define DBm 30
101#define DRm 31
102#define RUm 32
103#define RFm 33
104#define RDm 34
105#define RBm 35
106#define LUm 36
107#define LFm 37
108#define LDm 38
109#define LBm 39
110#define FUm 40
111#define FRm 41
112#define FDm 42
113#define FLm 43
114#define BUm 44
115#define BRm 45
116#define BDm 46
117#define BLm 47
118
119/* Errors */
120#define errormove 99U
121#define errortrans 99U
122

Generated with cgit - Back to sebastiano.tronto.net