diff options
Diffstat (limited to '')
| -rw-r--r-- | src/cube.h | 59 |
1 files changed, 35 insertions, 24 deletions
| @@ -3,33 +3,44 @@ | |||
| 3 | 3 | ||
| 4 | #include <stdio.h> | 4 | #include <stdio.h> |
| 5 | 5 | ||
| 6 | #include "cubetypes.h" | ||
| 7 | #include "env.h" | 6 | #include "env.h" |
| 7 | #include "pf.h" | ||
| 8 | #include "utils.h" | 8 | #include "utils.h" |
| 9 | 9 | ||
| 10 | void compose(Cube *c2, Cube *c1); /* Use c2 as an alg on c1 */ | 10 | Cube admissible_ep(Cube cube, PieceFilter f); |
| 11 | void compose_centers(Cube *c2, Cube *c1); | 11 | int array_ep_to_epos(int *ep, int *eps_solved); |
| 12 | void compose_corners(Cube *c2, Cube *c1); | 12 | Cube arrays_to_cube(CubeArray *arr, PieceFilter f); |
| 13 | void compose_edges(Cube *c2, Cube *c1); | 13 | Cube compose(Cube c2, Cube c1); /* Use c2 as an alg on c1 */ |
| 14 | void copy_cube(Cube *src, Cube *dst); | 14 | Cube compose_filtered(Cube c2, Cube c1, PieceFilter f); |
| 15 | void copy_cube_centers(Cube *src, Cube *dst); | 15 | void cube_to_arrays(Cube cube, CubeArray *arr, PieceFilter f); |
| 16 | void copy_cube_corners(Cube *src, Cube *dst); | 16 | int edge_slice(Edge e); /* E=0, S=1, M=2 */ |
| 17 | void copy_cube_edges(Cube *src, Cube *dst); | 17 | bool equal(Cube c1, Cube c2); |
| 18 | bool equal(Cube *c1, Cube *c2); | 18 | Cube inverse_cube(Cube cube); |
| 19 | void invert_cube(Cube *cube); | 19 | bool is_admissible(Cube cube); |
| 20 | void invert_cube_centers(Cube *cube); | 20 | bool is_solved(Cube cube); |
| 21 | void invert_cube_corners(Cube *cube); | 21 | bool is_block_solved(Cube cube, Block); |
| 22 | void invert_cube_edges(Cube *cube); | 22 | bool is_solved_center(Cube cube, Center c); |
| 23 | bool is_admissible(Cube *cube); | 23 | bool is_solved_corner(Cube cube, Corner c); |
| 24 | bool is_solved(Cube *cube); | 24 | bool is_solved_edge(Cube cube, Edge e); |
| 25 | void make_solved(Cube *cube); | 25 | void epos_to_partial_ep(int epos, int *ep, int *ss); |
| 26 | void make_solved_centers(Cube *cube); | 26 | void epos_to_compatible_ep(int epos, int *ep, int *ss); |
| 27 | void make_solved_corners(Cube *cube); | 27 | void fix_eorleoud(CubeArray *arr); |
| 28 | void make_solved_edges(Cube *cube); | 28 | void fix_cofbcorl(CubeArray *arr); |
| 29 | void print_cube(Cube *cube); | 29 | Cube fourval_to_cube(int eofb, int ep, int coud, int cp); |
| 30 | int where_is_center(Center x, Cube *c); | 30 | void free_cubearray(CubeArray *arr, PieceFilter f); |
| 31 | int where_is_corner(Corner k, Cube *c); | 31 | Cube move_via_arrays(CubeArray *arr, Cube c, PieceFilter pf); |
| 32 | int where_is_edge(Edge e, Cube *c); | 32 | CubeArray * new_cubearray(Cube cube, PieceFilter f); |
| 33 | void print_cube(Cube cube); | ||
| 34 | Center what_center_at(Cube cube, Center c); | ||
| 35 | Corner what_corner_at(Cube cube, Corner c); | ||
| 36 | Edge what_edge_at(Cube cube, Edge e); | ||
| 37 | int what_orientation_corner(int co, Corner c); | ||
| 38 | int what_orientation_edge(int eo, Edge e); | ||
| 39 | Center where_is_center(Cube cube, Center c); | ||
| 40 | Corner where_is_corner(Cube cube, Corner c); | ||
| 41 | Edge where_is_edge(Cube cube, Edge e); | ||
| 42 | |||
| 43 | void init_cube(); | ||
| 33 | 44 | ||
| 34 | #endif | 45 | #endif |
| 35 | 46 | ||
