diff options
Diffstat (limited to 'include/actions.h')
| -rw-r--r-- | include/actions.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/actions.h b/include/actions.h new file mode 100644 index 0000000..661f11e --- /dev/null +++ b/include/actions.h @@ -0,0 +1,33 @@ +#ifndef ACTIONS_H +#define ACTIONS_H + +#include <stdlib.h> +#include <stdint.h> + +#include <tak.h> + +enum A_TYPE { A_PLACE, A_MOVE }; + +typedef uint32_t action_t; + +typedef struct action_node_s { + struct action_node_s *next; + action_t action; +} action_node_t; + +typedef struct action_list_s { + struct action_node_s *head, *tail; + uint32_t length; +} action_list_t; + +void action_list_init(void); +void action_list_free(action_list_t *list); +action_list_t *action_list_generate(void); +int action_move_to_front(const action_t action, action_list_t *list); + +void action_take(const action_t action); +void action_undo(const action_t action); + +void action_to_ptn(const action_t action, char* out_ptn); + +#endif |
