aboutsummaryrefslogtreecommitdiff
path: root/old/2021-06-15-before-separating-steps/cube.h
diff options
context:
space:
mode:
Diffstat (limited to 'old/2021-06-15-before-separating-steps/cube.h')
-rw-r--r--old/2021-06-15-before-separating-steps/cube.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/old/2021-06-15-before-separating-steps/cube.h b/old/2021-06-15-before-separating-steps/cube.h
new file mode 100644
index 0000000..c30b53f
--- /dev/null
+++ b/old/2021-06-15-before-separating-steps/cube.h
@@ -0,0 +1,72 @@
1#ifndef CUBE_H
2#define CUBE_H
3
4#include <stdio.h>
5#include <stdbool.h>
6#include <stdint.h>
7#include <stdlib.h>
8#include <string.h>
9#include <time.h>
10#include <unistd.h>
11#include <sys/stat.h>
12#include "cubetypes.h"
13
14/* Steps *********************************************************************/
15
16extern Step eofb_HTM;
17extern Step eorl_HTM;
18extern Step eoud_HTM;
19extern Step coud_HTM;
20extern Step corl_HTM;
21extern Step cofb_HTM;
22extern Step coud_URF;
23extern Step corl_URF;
24extern Step cofb_URF;
25extern Step corners_HTM;
26extern Step corners_URF;
27extern Step edges_HTM;
28extern Step drud_HTM;
29extern Step optimal_HTM;
30
31extern PruneData pd_eofb_HTM;
32extern PruneData pd_coud_HTM;
33extern PruneData pd_corners_HTM;
34extern PruneData pd_ep_HTM;
35extern PruneData pd_drud_HTM;
36
37/* Public functions **********************************************************/
38
39Cube apply_alg(Alg *alg, Cube cube);
40Cube apply_move(Move m, Cube cube);
41Cube apply_trans(Trans t, Cube cube);
42bool block_solved(Cube cube, Block);
43Center center_at(Cube cube, Center c);
44Cube compose(Cube c2, Cube c1); /* Use c2 as an alg on c1 */
45Corner corner_at(Cube cube, Corner c);
46Edge edge_at(Cube cube, Edge e);
47bool equal(Cube c1, Cube c2);
48Cube inverse_cube(Cube cube);
49Move inverse_move(Move m);
50Trans inverse_trans(Trans t);
51bool is_admissible(Cube cube);
52bool is_solved(Cube cube, bool reorient);
53int piece_orientation(Cube cube, int piece, char *orientation);
54void print_cube(Cube cube);
55Cube random_cube();
56AlgList * solve(Cube cube, Step step, SolveOptions *opts);
57
58void free_alg(Alg *alg);
59void free_alglist(AlgList *l);
60Alg * inverse_alg(Alg *alg);
61Alg * new_alg(char *str);
62Alg * on_inverse(Alg *alg);
63void print_alg(Alg *alg, bool l);
64void print_alglist(AlgList *al, bool l);
65void transform_alg(Trans t, Alg *alg);
66
67void print_ptable(PruneData *pd);
68
69void init();
70
71#endif
72

Generated with cgit - Back to sebastiano.tronto.net