Ejemplo n.º 1
0
/**********************************************************
 *函数功能:放棋子在棋盘内的交叉点
 *
 *
 ********************************************************/
int chess_doing(void)
{
  /*  int rx = (mx-ST_X)%SPACE;
    int ry = (my-ST_Y)%SPACE;
    int cx = mx - rx;
    int cy = my - ry;*/
    if((mx < ST_X)||(mx > (ST_X + (X_NUM-1)*SPACE))||(my < ST_Y)||(my > (ST_Y + (Y_NUM-1)*SPACE)) )
    {
        return 0;
    }
  /*  if(rx > SPACE/2)
    {
        cx += SPACE;
    }
    if(ry > SPACE/2)
    {
        cy += SPACE;
    }
    fb_circle(cx,cy,8,0x00ff0000);*/
    int rx = (mx+15-ST_X)%SPACE;
    int ry = (my+15-ST_Y)%SPACE;
    int cx = mx+15 - rx;
    int cy = my+15 - ry;
    int flag = 0;
    fb_circle(cx,cy,8,current_color);
     flag =  chess_put((cx-ST_X)/SPACE,(cy-ST_Y)/SPACE);
     if(flag > 0)  // 判断是否有满足五个点
     {
        return flag;
     }
    if(current_color == BLACK)   //放了一个棋子后, 交换棋子的颜色
    {
        current_color = WHITE;
        player = 2;
    }
    else
    {
        current_color = BLACK;
        player = 1;
    }
    return 0;
}
Ejemplo n.º 2
0
int chess_doing(void)
{
	int rx = (mx-ST_X)%SPACE;
	int ry = (my-ST_Y)%SPACE;
	int cx = mx - rx;
	int cy = my - ry;

	if((mx < ST_X) || (mx > (ST_X+(X_NUM-1)*SPACE)))
	{
		return 0;
	}
	if((my < ST_Y) || (my > (ST_Y+(Y_NUM-1)*SPACE)))
	{
		return 0;
	}
	if(rx > (SPACE/2))
	{
		cx += SPACE;	
	}
	if(ry > (SPACE/2))
	{
		cy += SPACE;
	}
	fb_circle(cx, cy, 13, current_color); //画棋子
	chess_put((cx-ST_X)/SPACE, (cy-ST_Y)/SPACE); //找坐标
	if(current_color == WHITE)
	{
		current_color = BLACK;
		player = 1;
	}
	else
	{
		current_color = WHITE;
		player = 2;
	}

	return 0;
}