Пример #1
0
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;
}
Пример #2
0
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]);
	}
}
Пример #3
0
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);

}