/********************************************************** *函数功能:放棋子在棋盘内的交叉点 * * ********************************************************/ 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; }
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; }