Advertisement
vnduylequang

ma_hau_3_ngoi.c

Mar 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.90 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int valid(int x,int y,int a,int b){
  4.  
  5.     return (
  6.             (
  7.                 (x==a) && (y==b) /*Quân mã ăn quân hậu*/
  8.             )
  9.             ||
  10.             (
  11.                 ((x<1?0:1) && (x>8?0:1)) && /*x,y phải nằm trong bàn cờ*/
  12.                 ((y<1?0:1) && (y>8?0:1))
  13.             ) &&
  14.              ((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?*/
  15.  
  16.             /* (x,y) có cùng đường chéo với (a,b) không?*/
  17.             (
  18.                 (
  19.                  ((float)(x)-a)/((float)(y)-b)==1?0:1
  20.                 ) && /*Chéo góc trái trên + phải dưới)*/
  21.                  (
  22.                  ((float)(x)-a)/((float)(y)-b)==-1?0:1
  23.                 )/*Chéo góc trái dưới + phải trên)*/
  24.             )
  25.         );
  26.  
  27. }
  28.  
  29. int main(){
  30.     int ma_x, ma_y, hau_x, hau_y;
  31.     ma_x=ma_y=-1;
  32.     hau_x=hau_y=-1;
  33.  
  34.     while(ma_x<1?1:0 || ma_x>8?1:0 ||
  35.           ma_y<1?1:0 || ma_y>8?1:0 ||
  36.           hau_x<1?1:0 || hau_x>8?1:0 ||
  37.           hau_y<1?1:0 || hau_y>8?1:0
  38.           ){
  39.         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:");
  40.         scanf("%d %d %d %d", &ma_x, &ma_y, &hau_x, &hau_y);
  41.     }
  42.  
  43.     valid(ma_x-1,ma_y+2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-1, ma_y+2):0;
  44.  
  45.     valid(ma_x+1,ma_y+2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+1,ma_y+2):0;
  46.  
  47.     valid(ma_x+2,ma_y+1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+2,ma_y+1):0;
  48.  
  49.     valid(ma_x+2,ma_y-1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+2,ma_y-1):0;
  50.  
  51.     valid(ma_x+1,ma_y-2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x+1,ma_y-2):0;
  52.  
  53.     valid(ma_x-1,ma_y-2,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-1,ma_y-2):0;
  54.  
  55.     valid(ma_x-2,ma_y+1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-2,ma_y+1):0;
  56.  
  57.     valid(ma_x-2,ma_y-1,hau_x,hau_y)==1?printf("(%d,%d)\n",ma_x-2,ma_y-1):0;
  58.  
  59.     return 0;
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement