From 3568412f8f230774d0d11d7ed1c897424f95d3ef Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 11 Nov 2021 21:37:34 +0100 Subject: Rewritten from scratch. Welocme nissy 2.0! --- old/2021-02-18-piecefilter/src/cube.h | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 old/2021-02-18-piecefilter/src/cube.h (limited to 'old/2021-02-18-piecefilter/src/cube.h') diff --git a/old/2021-02-18-piecefilter/src/cube.h b/old/2021-02-18-piecefilter/src/cube.h new file mode 100644 index 0000000..9b64a0c --- /dev/null +++ b/old/2021-02-18-piecefilter/src/cube.h @@ -0,0 +1,45 @@ +#ifndef CUBE_H +#define CUBE_H + +#include +#include +#include +#include "utils.h" + +typedef enum {U_center,D_center,R_center,L_center,F_center,B_center} Center; +typedef enum { UF, UL, UB, UR, DF, DL, DB, DR, FR, FL, BL, BR } Edge; +typedef enum { UFR, UFL, UBL, UBR, DFR, DFL, DBL, DBR } Corner; + +typedef struct { + bool epose, eposs, eposm, eofb, eorl, eoud, cp, coud, cofb, corl, cpos; +} PieceFilter; + +typedef struct { + uint16_t eofb, eorl, eoud, coud, cofb, corl, + epose, eposs, eposm, cp, cpos; +} Cube; + +typedef struct { + int ep[12], eofb[12], eorl[12], eoud[12], + cp[8], coud[8], corl[8], cofb[8], cpos[6]; +} CubeArray; + + +extern PieceFilter fAll; + +Cube blank_cube(); +/* Return axis (ud=0, rl=1, fb=0) of center c */ +int center_axis(int c); +/* Return slice (e=0, s=1, m=2) to which e belongs */ +int edge_slice(int e); +void cube_to_arrays(Cube cube, CubeArray *arr, PieceFilter f); +Cube arrays_to_cube(CubeArray arr, PieceFilter f); +bool equal(Cube c1, Cube c2); +bool is_solvable(Cube cube); +bool is_solved(Cube cube); +void print_cube(Cube cube); +Cube inverse_cube(Cube cube); +/* Use c2 as an alg on c1 */ +Cube compose_via_arrays(CubeArray c2, Cube c1, PieceFilter f); + +#endif -- cgit v1.3