void check_win(int last_x, int last_y, t_data *powf) { char p; p = powf->board[last_y * powf->col + last_x]; if (check_up(p, last_x, last_y, powf) || check_left(p, last_x, last_y, powf) || check_up_left(p, last_x, last_y, powf) || check_up_right(p, last_x, last_y, powf)) powf->winner = p; powf->nmatch = 0; }
int check_possible_movement(int j,int k) { int count=0; if( check_up(j,k)==0) { move_loc[count][0]=j; move_loc[count][1]=k-1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_down(j,k)==0) { move_loc[count][0]=j; move_loc[count][1]=k+1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_left(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_right(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k; //draw_target(move_loc[count][0],move_loc[count][1]); count++; } if((j+k)%2==0) { if( check_up_left(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k-1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_up_right(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k-1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_down_left(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k+1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } if( check_down_right(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k+1; // draw_target(move_loc[count][0],move_loc[count][1]); count++; } } return count; }
int check_movement_ok(int j,int k,int m,int n) { int count=0; int ok=0; if( check_up(j,k)==0) { move_loc[count][0]=j; move_loc[count][1]=k-1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_down(j,k)==0) { move_loc[count][0]=j; move_loc[count][1]=k+1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_left(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_right(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if((j+k)%2==0) { if( check_up_left(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k-1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_up_right(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k-1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_down_left(j,k)==0) { move_loc[count][0]=j+1; move_loc[count][1]=k+1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } if( check_down_right(j,k)==0) { move_loc[count][0]=j-1; move_loc[count][1]=k+1; if(move_loc[count][0]==m && move_loc[count][1]==n) ok=1; count++; } } return ok; }
int check_possible_jump_movement(int j,int k) { int count=0; if( check_up(j,k)==2 && check_up(j,k-1)==0) { jump_loc[count][0]=j; jump_loc[count][1]=k-2; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_down(j,k)==2 && check_down(j,k+1)==0) { jump_loc[count][0]=j; jump_loc[count][1]=k+2; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_left(j,k)==2 && check_left(j-1,k)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_right(j,k)==2 && check_right(j+1,k)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if((j+k)%2==0) { if( check_up_left(j,k)==2 && check_up_left(j-1,k-1)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k-2; //draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_up_right(j,k)==2 && check_up_right(j+1,k-1)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k-2; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_down_left(j,k)==2 && check_down_left(j+1,k+1)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k+2; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } if( check_down_right(j,k)==2 && check_down_right(j-1,k+1)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k+2; // draw_target(jump_loc[count][0],jump_loc[count][1]); count++; } } return count; }
int check_jump_movement_ok(int j,int k,int m,int n) { int count=0; int ok=0; if( check_up(j,k)==2 && check_up(j,k-1)==0) { jump_loc[count][0]=j; jump_loc[count][1]=k-2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_down(j,k)==2 && check_down(j,k+1)==0) { jump_loc[count][0]=j; jump_loc[count][1]=k+2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_left(j,k)==2 && check_left(j-1,k)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_right(j,k)==2 && check_right(j+1,k)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if((j+k)%2==0) { if( check_up_left(j,k)==2 && check_up_left(j-1,k-1)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k-2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_up_right(j,k)==2 && check_up_right(j+1,k-1)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k-2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_down_left(j,k)==2 && check_down_left(j+1,k+1)==0) { jump_loc[count][0]=j+2; jump_loc[count][1]=k+2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } if( check_down_right(j,k)==2 && check_down_right(j-1,k+1)==0) { jump_loc[count][0]=j-2; jump_loc[count][1]=k+2; if(jump_loc[count][0]==m && jump_loc[count][1]==n) ok=1; count++; } } return ok; }