#include "sokoban.h"
-typedef enum { LEFT, UP, RIGHT, DOWN } direction;
+typedef struct {
+ BDDSET varset;
+ int size;
+} variables;
+
+typedef struct {
+ BDD bdd;
+ variables vars;
+} state;
+
+typedef struct lurd {
+ char c;
+ struct lurd *next;
+} lurd_t;
-BDD encode_screen(sokoban_screen *screen);
+typedef struct {
+ BDD bdd;
+ variables vars;
+ lurd_t *lrd;
+} state_t;
-BDD encode_rel(sokoban_screen *screen);
+typedef struct trans {
+ BDD bdd;
+ variables varset;
+ struct trans *next_rel;
+} trans_t;
+
+typedef struct {
+ trans_t *rell;
+ trans_t *relu;
+ trans_t *relr;
+ trans_t *reld;
+} rels;
+
+typedef enum { LEFT, UP, RIGHT, DOWN } direction;
-//int test_relprod();
+state *encode_screen(sokoban_screen *screen);
+rels *encode_rel(sokoban_screen *screen);
+state *encode_goal(sokoban_screen *screen);
#endif