aboutsummaryrefslogtreecommitdiff
path: root/include/actions.h
diff options
context:
space:
mode:
authortslil clingman <tslil@posteo.de>2021-01-26 17:42:53 -0500
committertslil <tslil@posteo.de>2026-08-28 19:37:41 +0100
commitde4f20f28afe23ecfc546ad242e5bb44710996cc (patch)
tree32cd0cf0757327cee4ee4d4631920284d54816f3 /include/actions.h
parentd45db690ce92cb2c847175cfd9ac497f3dd40cea (diff)
Storing best moves!
Diffstat (limited to 'include/actions.h')
-rw-r--r--include/actions.h33
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