#pragma one #include typedef struct { char *file; int count; int nbMovment; } t_params; typedef struct { char grid[6][3][3]; } t_rubiks; struct s_stackitem { struct s_stackitem *prev; int value; }; typedef struct s_stack { struct s_stackitem *items; size_t count; } t_stack; /* params.c */ void usage(char*); int parse_params(char **, t_params *, char *); /* generator.c */ t_rubiks *doGenerate(t_params *); /* solver.c */ t_stack *doSolve(char buffer[54], int nbMovment); /* std */ void xfree(void *); /* rubiks_transform.c */ void rubik_applyX(t_rubiks *, char[3]); void rubik_applyY(t_rubiks *, char[3]); void rubik_applyZ(t_rubiks *, char[3]); /* rubiks.c */ t_rubiks *rubik_create(char [54]); t_rubiks *rubik_createempty(); void rubik_applyVect(t_rubiks *, char [3]); void rubik_apply(t_rubiks *, char movment); void rubik_reverse(t_rubiks *, char movment); int rubik_isDone(const t_rubiks *); /* output.c */ void spatial_show(t_rubiks *); void rubik_output(t_rubiks *, FILE *); /* tree.c */ t_stack *stack_create(); t_stack *stack_copy(const t_stack *); void stack_destroy(t_stack*); int stack_pop(t_stack *); int stack_value(const t_stack *); size_t stack_length(const t_stack *); void stack_push(t_stack *, int value);