diff options
Diffstat (limited to 'src/alg.h')
| -rw-r--r-- | src/alg.h | 76 |
1 files changed, 69 insertions, 7 deletions
| @@ -8,12 +8,13 @@ | |||
| 8 | #include "cubetypes.h" | 8 | #include "cubetypes.h" |
| 9 | #include "utils.h" | 9 | #include "utils.h" |
| 10 | 10 | ||
| 11 | extern Moveset moveset_HTM; | 11 | bool allowed_all(Move m); |
| 12 | extern Moveset moveset_URF; | 12 | bool allowed_HTM(Move m); |
| 13 | extern Moveset moveset_eofb; | 13 | bool allowed_URF(Move m); |
| 14 | extern Moveset moveset_drud; | 14 | bool allowed_eofb(Move m); |
| 15 | extern Moveset moveset_htr; | 15 | bool allowed_drud(Move m); |
| 16 | 16 | bool allowed_htr(Move m); | |
| 17 | bool allowed_next_all(Move l2, Move l1, Move m); | ||
| 17 | void append_alg(AlgList *l, Alg *alg); | 18 | void append_alg(AlgList *l, Alg *alg); |
| 18 | void append_move(Alg *alg, Move m, bool inverse); | 19 | void append_move(Alg *alg, Move m, bool inverse); |
| 19 | Move base_move(Move m); | 20 | Move base_move(Move m); |
| @@ -34,10 +35,71 @@ Alg * on_inverse(Alg *alg); | |||
| 34 | void print_alg(Alg *alg, bool l); | 35 | void print_alg(Alg *alg, bool l); |
| 35 | void print_alglist(AlgList *al, bool l); | 36 | void print_alglist(AlgList *al, bool l); |
| 36 | void swapmove(Move *m1, Move *m2); | 37 | void swapmove(Move *m1, Move *m2); |
| 38 | char * trans_string(Trans t); /* Here because similar to move_string, move? */ | ||
| 37 | Alg * unniss(Alg *alg); | 39 | Alg * unniss(Alg *alg); |
| 38 | 40 | ||
| 39 | void init_moveset(Moveset *ms); | 41 | void init_moveset(Moveset *ms); |
| 40 | void init_all_movesets(); | 42 | |
| 43 | /* Movesets ******************************************************************/ | ||
| 44 | |||
| 45 | #ifndef ALG_C | ||
| 46 | |||
| 47 | extern Moveset moveset_HTM; | ||
| 48 | extern Moveset moveset_URF; | ||
| 49 | extern Moveset moveset_eofb; | ||
| 50 | extern Moveset moveset_drud; | ||
| 51 | extern Moveset moveset_htr; | ||
| 52 | |||
| 53 | extern Moveset * all_ms[]; | ||
| 54 | |||
| 55 | #else | ||
| 56 | |||
| 57 | Moveset | ||
| 58 | moveset_HTM = { | ||
| 59 | .name = "HTM", | ||
| 60 | .allowed = allowed_HTM, | ||
| 61 | .allowed_next = allowed_next_all, | ||
| 62 | }; | ||
| 63 | |||
| 64 | Moveset | ||
| 65 | moveset_URF = { | ||
| 66 | .name = "URF", | ||
| 67 | .allowed = allowed_URF, | ||
| 68 | .allowed_next = allowed_next_all, | ||
| 69 | }; | ||
| 70 | |||
| 71 | Moveset | ||
| 72 | moveset_eofb = { | ||
| 73 | .name = "eofb", | ||
| 74 | .allowed = allowed_eofb, | ||
| 75 | .allowed_next = allowed_next_all, | ||
| 76 | }; | ||
| 77 | |||
| 78 | Moveset | ||
| 79 | moveset_drud = { | ||
| 80 | .name = "drud", | ||
| 81 | .allowed = allowed_drud, | ||
| 82 | .allowed_next = allowed_next_all, | ||
| 83 | }; | ||
| 84 | |||
| 85 | Moveset | ||
| 86 | moveset_htr = { | ||
| 87 | .name = "htr", | ||
| 88 | .allowed = allowed_htr, | ||
| 89 | .allowed_next = allowed_next_all, | ||
| 90 | }; | ||
| 91 | |||
| 92 | Moveset * | ||
| 93 | all_ms[] = { | ||
| 94 | &moveset_HTM, | ||
| 95 | &moveset_URF, | ||
| 96 | &moveset_eofb, | ||
| 97 | &moveset_drud, | ||
| 98 | &moveset_htr, | ||
| 99 | NULL | ||
| 100 | }; | ||
| 101 | |||
| 102 | #endif | ||
| 41 | 103 | ||
| 42 | #endif | 104 | #endif |
| 43 | 105 | ||
