static int zip_seek(gp_container *self, int offset, enum gp_container_whence whence) { struct zip_priv *priv = GP_CONTAINER_PRIV(self); unsigned int where; int ret; GP_DEBUG(1, "Seek offset=%i whence=%i", offset, whence); switch (whence) { case GP_CONT_CUR: if (offset < 0 && priv->cur_pos < (unsigned int)-offset) { GP_WARN("Current position %u offset %i", priv->cur_pos, offset); where = 0; } else { where = priv->cur_pos + offset; } break; case GP_CONT_FIRST: where = offset; break; default: return ENOSYS; } ret = set_cur_pos(priv, where); self->cur_img = priv->cur_pos; return ret; }
int printAllMoves(struct board * b) { set_cur_pos(0,0); printf("player : %d" ,b->currentPlayer); for (int a = 0 ; a< b->s_pieces;a++) { printMoves(b->pieces[a]); } }
int drawBoard(struct board *b) { clear(); printAllMoves(b); // return 0; set_cur_pos(0,20); printf("pieces=%d",b->s_pieces); set_cur_pos(0,0); for (int x = 0 ; x < BOARD_WIDTH; x++) { for(int y = 0 ; y < BOARD_HEIGHT;y++) { set_cur_pos(y*2+DISPLAY_Y+2, 4*x+DISPLAY_X); put(BOARD_VERT); set_cur_pos(y*2+DISPLAY_Y+1, 4*x+DISPLAY_X); put(BOARD_VERT); set_cur_pos(y*2+DISPLAY_Y, 4*x+DISPLAY_X); put(BOARD_VERT); set_cur_pos(y*2+DISPLAY_Y, 4*x+DISPLAY_X+1); put(BOARD_HOR); set_cur_pos(y*2+DISPLAY_Y, 4*x+DISPLAY_X+2); put(BOARD_HOR); set_cur_pos(y*2+DISPLAY_Y, 4*x+DISPLAY_X+3); put(BOARD_HOR); } set_cur_pos(BOARD_HEIGHT*2+DISPLAY_Y,4*x+DISPLAY_X); put(BOARD_HOR); set_cur_pos(BOARD_HEIGHT*2+DISPLAY_Y,4*x+DISPLAY_X+1); put(BOARD_HOR); set_cur_pos(BOARD_HEIGHT*2+DISPLAY_Y,4*x+DISPLAY_X+2); put(BOARD_HOR); set_cur_pos(BOARD_HEIGHT*2+DISPLAY_Y,4*x+DISPLAY_X+3); put(BOARD_HOR); set_cur_pos(DISPLAY_Y,4*x+DISPLAY_X); put(BOARD_HOR); set_cur_pos(x*2+DISPLAY_Y,BOARD_WIDTH*4+DISPLAY_X); put(BOARD_VERT); set_cur_pos(x*2+1+DISPLAY_Y,BOARD_WIDTH*4+DISPLAY_X); put(BOARD_VERT); set_cur_pos(DISPLAY_Y-1,4*x+DISPLAY_X+2); put(x+'0'); set_cur_pos(x*2+1+DISPLAY_Y,DISPLAY_X+1+BOARD_WIDTH*4); put(x+'0'); set_cur_pos(DISPLAY_Y,DISPLAY_X); put(BOARD_CORN); set_cur_pos(DISPLAY_Y+BOARD_HEIGHT*2,DISPLAY_X); put(BOARD_CORN); set_cur_pos(DISPLAY_Y,DISPLAY_X+BOARD_WIDTH*4); put(BOARD_CORN); set_cur_pos(DISPLAY_Y+BOARD_HEIGHT*2,DISPLAY_X+BOARD_WIDTH*4); put(BOARD_CORN); } for(int a = 0; a < b->s_pieces;a++) { set_cur_pos(b->pieces[a]->loc->y*2+DISPLAY_Y+1, b->pieces[a]->loc->x*4 +DISPLAY_X+1); if(b->pieces[a]->player == 0) printf(BLUE); else printf(RED); put(b->pieces[a]->p); printf(RESET); } set_cur_pos(55,0); }