+ for (unsigned int i = 0; i < HASH_COUNT(screen); i++){
+ printf("i:%d\n", i);
+ bddxy = getbdd(i*3, bm->t);
+ x = bddxy->value.x;
+ y = bddxy->value.y;
+ if (check_space(x, y, LEFT, 1, bm) == 0){
+ tmp_scr = get_coord(x, y, screen);
+ if (tmp_scr->tile == AGENT){
+
+ }
+ if (tmp_scr->tile == TARGAGENT){
+
+ }
+ }
+ else if (check_space(x, y, LEFT, 1, bm) == 1 && check_space(x, y, LEFT, 2, bm) == 0){
+ tmp_scr = get_coord(x, y, screen);
+ tmp_scr_d = get_coord(x - 1, y, screen);
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && (tmp_scr_d->tile == BOX || tmp_scr_d->tile == TARGBOX)){
+ //can't move
+ }
+ if (tmp_scr->tile == TARGAGENT && (tmp_scr_d->tile == BOX || tmp_scr_d->tile == TARGBOX)){
+ //can't move
+ }
+ }
+ else if (check_space(x, y, LEFT, 1, bm) == 1 && check_space(x, y, LEFT, 2, bm) == 1){
+ tmp_scr = get_coord(x, y, screen);
+ tmp_scr_d = get_coord(x - 1, y, screen);
+ tmp_scr_g = get_coord(x - 2, y, screen);
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d-> tile == BOX && (tmp_scr_g->tile == BOX || tmp_scr_g == TARGBOX)){
+ //can't move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d-> tile == BOX && (tmp_scr_g->tile == BOX || tmp_scr_g == TARGBOX)){
+ //can't move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == BOX && tmp_scr_g->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == TARGBOX && tmp_scr_g->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == BOX && tmp_scr_g->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == AGENT && tmp_scr_d->tile == TARGBOX && tmp_scr_g->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == BOX && tmp_scr_g->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == TARGBOX && tmp_scr_g->tile == FREE){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == BOX && tmp_scr_g->tile == TARGET){
+ //can move
+ }
+ if (tmp_scr->tile == TARGAGENT && tmp_scr_d->tile == TARGBOX && tmp_scr_g->tile == TARGET){
+ //can move
+ }
+ }
+ printf("x:%d y:%d\n", x, y);
+ }