Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int valid(int x,int y,int a,int b){
- return (
- (
- (x==a) && (y==b) /*Quân mã ăn quân hậu*/
- )
- ||
- (
- ((x<1?0:1) && (x>8?0:1)) && /*x,y phải nằm trong bàn cờ*/
- ((y<1?0:1) && (y>8?0:1))
- ) &&
- ((x!=a?1:0) && (y!=b?1:0))&& /*(x,y) có cùng hàng hoặc cột với (a,b) không?*/
- /* (x,y) có cùng đường chéo với (a,b) không?*/
- (
- (
- ((float)(x)-a)/((float)(y)-b)==1?0:1
- ) && /*Chéo góc trái trên + phải dưới)*/
- (
- ((float)(x)-a)/((float)(y)-b)==-1?0:1
- )/*Chéo góc trái dưới + phải trên)*/
- )
- );
- }
- int main(){
- int ma_x, ma_y, hau_x, hau_y;
- ma_x=ma_y=-1;
- hau_x=hau_y=-1;
- while(ma_x<1?1:0 || ma_x>8?1:0 ||
- ma_y<1?1:0 || ma_y>8?1:0 ||
- hau_x<1?1:0 || hau_x>8?1:0 ||
- hau_y<1?1:0 || hau_y>8?1:0
- ){
- printf("Nhap toa do cua quan co ma(x1,y1) hau(x2,y2) \n trong pham vi [1,8] theo thu tu x1 y1 x2 y2:");
- scanf("%d %d %d %d", &ma_x, &ma_y, &hau_x, &hau_y);
- }
- valid(ma_x-1,ma_y+2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-1, ma_y+2):0;
- valid(ma_x+1,ma_y+2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+1,ma_y+2):0;
- valid(ma_x+2,ma_y+1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+2,ma_y+1):0;
- valid(ma_x+2,ma_y-1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+2,ma_y-1):0;
- valid(ma_x+1,ma_y-2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+1,ma_y-2):0;
- valid(ma_x-1,ma_y-2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-1,ma_y-2):0;
- valid(ma_x-2,ma_y+1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-2,ma_y+1):0;
- valid(ma_x-2,ma_y-1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-2,ma_y-1):0;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement