Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- char A[8][8]={ {'T','H','F','W','K','F','H','T'},
- {'S','S','S','S','S','S','S','S'},
- {'.','.','.','.','.','.','.','.'},
- {'.','.','.','.','.','.','.','.'},
- {'.','.','.','.','.','.','.','.'},
- {'.','.','.','.','.','.','.','.'},
- {'s','s','s','s','s','s','s','s'},
- {'t','h','f','w','k','f','h','t'}};
- char* address[16];
- char* Ptr=NULL;
- char value_n='&';
- char value='&';
- char letter[16];
- int c;
- char* KPtr=&A[0][4];
- char* kPtr=&A[7][4];
- int soldier1(int x,int y)
- {
- c=0; //3dd el-t3'yeraat elly 7slt 34an n2dro nrg3ooha l-aslaha
- if(A[x+1][y]=='.'&&x+1<8)
- {
- c++;
- letter[c]=A[x+1][y];
- A[x+1][y]='+';
- address[c]=&A[x+1][y]; //tasgeel el-address elly et3'yr f global array 34an function getnormal() t3rf trga3ha b3d el-move zy makant
- }
- if(A[x+2][y]=='.' && x==1 && A[x+1][y]=='+') // x==2 lw el-3skry lessa f mkano el-asasy
- {
- c++;
- letter[c]=A[x+2][y];
- A[x+2][y]='+';
- address[c]=&A[x+2][y];
- }
- if(x+1<8 && y-1>-1)
- switch(A[x+1][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+1][y-1]; A[x+1][y-1]='$'; address[c]=&A[x+1][y-1]; break;
- }
- if(x+1<8 && y+1<8)
- switch(A[x+1][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+1][y+1]; A[x+1][y+1]='$'; address[c]=&A[x+1][y+1]; break;
- }
- }
- int tabia1(int x,int y)
- {
- c=0;
- int i=0,flag=1;
- for(i=x+1;i<8;i++)
- {
- switch(A[i][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x-1;i>-1;i--)
- {
- switch(A[i][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y+1;i<8;i++)
- {
- switch(A[x][i])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y-1;i>-1;i--)
- {
- switch(A[x][i])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int fel1(int x,int y)
- {
- c=0;
- int i=0,j=0,flag=1;
- for(i=x+1,j=y+1 ; i<8 && j<8 ; i++,j++)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x+1,j=y-1 ; i<8 && j>-1 ; i++,j--)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y-1 ; i>-1 && j>-1 ; i--,j--)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y+1 ; i>-1 && j<8 ; i--,j++)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int wazer1(int x,int y)
- {
- c=0;
- int i=0,j=0,flag=1;
- for(i=x+1;i<8;i++)
- {
- switch(A[i][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x-1;i>-1;i--)
- {
- switch(A[i][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y+1;i<8;i++)
- {
- switch(A[x][i])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y-1;i>-1;i--)
- {
- switch(A[x][i])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x+1,j=y+1 ; i<8 && j<8 ; i++,j++)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x+1,j=y-1 ; i<8 && j>-1 ; i++,j--)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y-1 ; i>-1 && j>-1 ; i--,j--)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y+1 ; i>-1 && j<8 ; i--,j++)
- {
- switch(A[i][j])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int hourse1(int x,int y)
- {
- c=0;
- if(x+1<8&&y+2<8) //bttcheck kol el-amakn elly el-7osan mmkn yro7laha mn 3'eer loop
- switch(A[x+1][y+2])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+1][y+2]; A[x+1][y+2]='$'; address[c]=&A[x+1][y+2]; break;
- case '.': c++; letter[c]=A[x+1][y+2]; A[x+1][y+2]='+'; address[c]=&A[x+1][y+2]; break;
- default: break;
- }
- if(x+2<8&&y+1<8)
- switch(A[x+2][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+2][y+1]; A[x+2][y+1]='$'; address[c]=&A[x+2][y+1]; break;
- case '.': c++; letter[c]=A[x+2][y+1]; A[x+2][y+1]='+'; address[c]=&A[x+2][y+1]; break;
- default: break;
- }
- if(x-1>-1&&y-2>-1)
- switch(A[x-1][y-2])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x-1][y-2]; A[x-1][y-2]='$'; address[c]=&A[x-1][y-2]; break;
- case '.': c++; letter[c]=A[x-1][y-2]; A[x-1][y-2]='+'; address[c]=&A[x-1][y-2]; break;
- default: break;
- }
- if(x-2>-1&&y-1>-1)
- switch(A[x-2][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x-2][y-1]; A[x-2][y-1]='$'; address[c]=&A[x-2][y-1]; break;
- case '.': c++; letter[c]=A[x-2][y-1]; A[x-2][y-1]='+'; address[c]=&A[x-2][y-1]; break;
- default: break;
- }
- if(x-1>-1&&y+2<8)
- switch(A[x-1][y+2])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x-1][y+2]; A[x-1][y+2]='$'; address[c]=&A[x-1][y+2]; break;
- case '.': c++; letter[c]=A[x-1][y+2]; A[x-1][y+2]='+'; address[c]=&A[x-1][y+2]; break;
- default: break;
- }
- if(x-2>-1&&y+1<8)
- switch(A[x-2][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x-2][y+1]; A[x-2][y+1]='$'; address[c]=&A[x-2][y+1]; break;
- case '.': c++; letter[c]=A[x-2][y+1]; A[x-2][y+1]='+'; address[c]=&A[x-2][y+1]; break;
- default: break;
- }
- if(x+1<8&&y-2>-1)
- switch(A[x+1][y-2])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+1][y-2]; A[x+1][y-2]='$'; address[c]=&A[x+1][y-2]; break;
- case '.': c++; letter[c]=A[x+1][y-2]; A[x+1][y-2]='+'; address[c]=&A[x+1][y-2]; break;
- default: break;
- }
- if(x+2<8&&y-1>-1)
- switch(A[x+2][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w':case 'k': c++; letter[c]=A[x+2][y-1]; A[x+2][y-1]='$'; address[c]=&A[x+2][y-1]; break;
- case '.': c++; letter[c]=A[x+2][y-1]; A[x+2][y-1]='+'; address[c]=&A[x+2][y-1]; break;
- default: break;
- }
- }
- int king1(int x,int y)
- {
- c=0; //3dd el-t3'yeraat elly 7slt 34an n2dro nrg3ooha l-aslaha
- if(x+1<8)
- switch(A[x+1][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x+1][y]; A[x+1][y]='$'; address[c]=&A[x+1][y]; break;
- case '.': c++; letter[c]=A[x+1][y]; A[x+1][y]='+'; address[c]=&A[x+1][y]; break;
- default: break;
- }
- if(x-1>-1)
- switch(A[x-1][y])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x-1][y]; A[x-1][y]='$'; address[c]=&A[x-1][y]; break;
- case '.': c++; letter[c]=A[x-1][y]; A[x-1][y]='+'; address[c]=&A[x-1][y]; break;
- default: break;
- }
- if(y+1<8)
- switch(A[x][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x][y+1]; A[x][y+1]='$'; address[c]=&A[x][y+1]; break;
- case '.': c++; letter[c]=A[x][y+1]; A[x][y+1]='+'; address[c]=&A[x][y+1]; break;
- default: break;
- }
- if(y-1>-1)
- switch(A[x][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x][y-1]; A[x][y-1]='$'; address[c]=&A[x][y-1]; break;
- case '.': c++; letter[c]=A[x][y-1]; A[x][y-1]='+'; address[c]=&A[x][y-1]; break;
- default: break;
- }
- if(x+1<8&&y+1<8)
- switch(A[x+1][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x+1][y+1]; A[x+1][y+1]='$'; address[c]=&A[x+1][y+1]; break;
- case '.': c++; letter[c]=A[x+1][y+1]; A[x+1][y+1]='+'; address[c]=&A[x+1][y+1]; break;
- default: break;
- }
- if(x-1>-1&&y-1>-1)
- switch(A[x-1][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x-1][y-1]; A[x-1][y-1]='$'; address[c]=&A[x-1][y-1]; break;
- case '.': c++; letter[c]=A[x-1][y-1]; A[x-1][y-1]='+'; address[c]=&A[x-1][y-1]; break;
- default: break;
- }
- if(x-1>-1&&y+1<8)
- switch(A[x-1][y+1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x-1][y+1]; A[x-1][y+1]='$'; address[c]=&A[x-1][y+1]; break;
- case '.': c++; letter[c]=A[x-1][y+1]; A[x-1][y+1]='+'; address[c]=&A[x-1][y+1]; break;
- default: break;
- }
- if(x+1<8&&y-1>-1)
- switch(A[x+1][y-1])
- {
- case 's':case 't':case 'h':case 'f':case 'w': c++; letter[c]=A[x+1][y-1]; A[x+1][y-1]='$'; address[c]=&A[x+1][y-1]; break;
- case '.': c++; letter[c]=A[x+1][y-1]; A[x+1][y-1]='+'; address[c]=&A[x+1][y-1]; break;
- default: break;
- }
- }
- int soldier0(int x,int y)
- {
- c=0; //3dd el-t3'yeraat elly 7slt 34an n2dro nrg3ooha l-aslaha
- if(A[x-1][y]=='.'&&x-1>-1)
- {
- c++;
- letter[c]=A[x-1][y];
- A[x-1][y]='+';
- address[c]=&A[x-1][y]; //tasgeel el-address elly et3'yr f global array 34an function getnormal() t3rf trga3ha b3d el-move zy makant
- }
- if(A[x-2][y]=='.' && x==6 && A[x-1][y]=='+') // x==2 lw el-3skry lessa f mkano el-asasy
- {
- c++;
- letter[c]=A[x-2][y];
- A[x-2][y]='+';
- address[c]=&A[x-2][y];
- }
- if(x-1>-1 && y-1>-1)
- switch(A[x-1][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-1][y-1]; A[x-1][y-1]='$'; address[c]=&A[x-1][y-1]; break;
- }
- if(x-1>-1 && y+1<8)
- switch(A[x-1][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-1][y+1]; A[x-1][y+1]='$'; address[c]=&A[x-1][y+1]; break;
- }
- }
- int tabia0(int x,int y)
- {
- c=0;
- int i=0,flag=1;
- for(i=x+1;i<8;i++)
- {
- switch(A[i][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x-1;i>-1;i--)
- {
- switch(A[i][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y+1;i<8;i++)
- {
- switch(A[x][i])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y-1;i>-1;i--)
- {
- switch(A[x][i])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int fel0(int x,int y)
- {
- c=0;
- int i=0,j=0,flag=1;
- for(i=x+1,j=y+1 ; i<8 && j<8 ; i++,j++)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x+1,j=y-1 ; i<8 && j>-1 ; i++,j--)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y-1 ; i>-1 && j>-1 ; i--,j--)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y+1 ; i>-1 && j<8 ; i--,j++)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int wazer0(int x,int y)
- {
- c=0;
- int i=0,j=0,flag=1;
- for(i=x+1;i<8;i++)
- {
- switch(A[i][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x-1;i>-1;i--)
- {
- switch(A[i][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][y]; A[i][y]='$'; address[c]=&A[i][y]; flag=0; break;
- case '.': c++; letter[c]=A[i][y]; A[i][y]='+'; address[c]=&A[i][y]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y+1;i<8;i++)
- {
- switch(A[x][i])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=y-1;i>-1;i--)
- {
- switch(A[x][i])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x][i]; A[x][i]='$'; address[c]=&A[x][i]; flag=0; break;
- case '.': c++; letter[c]=A[x][i]; A[x][i]='+'; address[c]=&A[x][i]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x+1,j=y+1 ; i<8 && j<8 ; i++,j++)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;} //34an yw2f el-looping 3nd aa5r mkan y2dr ywsalo elly howa feh qet3a tania
- }
- for(i=x+1,j=y-1 ; i<8 && j>-1 ; i++,j--)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y-1 ; i>-1 && j>-1 ; i--,j--)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- for(i=x-1,j=y+1 ; i>-1 && j<8 ; i--,j++)
- {
- switch(A[i][j])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[i][j]; A[i][j]='$'; address[c]=&A[i][j]; flag=0; break;
- case '.': c++; letter[c]=A[i][j]; A[i][j]='+'; address[c]=&A[i][j]; break;
- default: flag=0;break;
- }
- if(flag==0)
- {flag=1;break;}
- }
- }
- int hourse0(int x,int y)
- {
- c=0;
- if(x+1<8&&y+2<8) //bttcheck kol el-amakn elly el-7osan mmkn yro7laha mn 3'eer loop
- switch(A[x+1][y+2])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x+1][y+2]; A[x+1][y+2]='$'; address[c]=&A[x+1][y+2]; break;
- case '.': c++; letter[c]=A[x+1][y+2]; A[x+1][y+2]='+'; address[c]=&A[x+1][y+2]; break;
- default: break;
- }
- if(x+2<8&&y+1<8)
- switch(A[x+2][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x+2][y+1]; A[x+2][y+1]='$'; address[c]=&A[x+2][y+1]; break;
- case '.': c++; letter[c]=A[x+2][y+1]; A[x+2][y+1]='+'; address[c]=&A[x+2][y+1]; break;
- default: break;
- }
- if(x-1>-1&&y-2>-1)
- switch(A[x-1][y-2])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-1][y-2]; A[x-1][y-2]='$'; address[c]=&A[x-1][y-2]; break;
- case '.': c++; letter[c]=A[x-1][y-2]; A[x-1][y-2]='+'; address[c]=&A[x-1][y-2]; break;
- default: break;
- }
- if(x-2>-1&&y-1>-1)
- switch(A[x-2][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-2][y-1]; A[x-2][y-1]='$'; address[c]=&A[x-2][y-1]; break;
- case '.': c++; letter[c]=A[x-2][y-1]; A[x-2][y-1]='+'; address[c]=&A[x-2][y-1]; break;
- default: break;
- }
- if(x-1>-1&&y+2<8)
- switch(A[x-1][y+2])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-1][y+2]; A[x-1][y+2]='$'; address[c]=&A[x-1][y+2]; break;
- case '.': c++; letter[c]=A[x-1][y+2]; A[x-1][y+2]='+'; address[c]=&A[x-1][y+2]; break;
- default: break;
- }
- if(x-2>-1&&y+1<8)
- switch(A[x-2][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x-2][y+1]; A[x-2][y+1]='$'; address[c]=&A[x-2][y+1]; break;
- case '.': c++; letter[c]=A[x-2][y+1]; A[x-2][y+1]='+'; address[c]=&A[x-2][y+1]; break;
- default: break;
- }
- if(x+1<8&&y-2>-1)
- switch(A[x+1][y-2])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x+1][y-2]; A[x+1][y-2]='$'; address[c]=&A[x+1][y-2]; break;
- case '.': c++; letter[c]=A[x+1][y-2]; A[x+1][y-2]='+'; address[c]=&A[x+1][y-2]; break;
- default: break;
- }
- if(x+2<8&&y-1>-1)
- switch(A[x+2][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W':case 'K': c++; letter[c]=A[x+2][y-1]; A[x+2][y-1]='$'; address[c]=&A[x+2][y-1]; break;
- case '.': c++; letter[c]=A[x+2][y-1]; A[x+2][y-1]='+'; address[c]=&A[x+2][y-1]; break;
- default: break;
- }
- }
- int king0(int x,int y)
- {
- c=0; //3dd el-t3'yeraat elly 7slt 34an n2dro nrg3ooha l-aslaha
- if(x+1<8)
- switch(A[x+1][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x+1][y]; A[x+1][y]='$'; address[c]=&A[x+1][y]; break;
- case '.': c++; letter[c]=A[x+1][y]; A[x+1][y]='+'; address[c]=&A[x+1][y]; break;
- default: break;
- }
- if(x-1>-1)
- switch(A[x-1][y])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x-1][y]; A[x-1][y]='$'; address[c]=&A[x-1][y]; break;
- case '.': c++; letter[c]=A[x-1][y]; A[x-1][y]='+'; address[c]=&A[x-1][y]; break;
- default: break;
- }
- if(y+1<8)
- switch(A[x][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x][y+1]; A[x][y+1]='$'; address[c]=&A[x][y+1]; break;
- case '.': c++; letter[c]=A[x][y+1]; A[x][y+1]='+'; address[c]=&A[x][y+1]; break;
- default: break;
- }
- if(y-1>-1)
- switch(A[x][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x][y-1]; A[x][y-1]='$'; address[c]=&A[x][y-1]; break;
- case '.': c++; letter[c]=A[x][y-1]; A[x][y-1]='+'; address[c]=&A[x][y-1]; break;
- default: break;
- }
- if(x+1<8&&y+1<8)
- switch(A[x+1][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x+1][y+1]; A[x+1][y+1]='$'; address[c]=&A[x+1][y+1]; break;
- case '.': c++; letter[c]=A[x+1][y+1]; A[x+1][y+1]='+'; address[c]=&A[x+1][y+1]; break;
- default: break;
- }
- if(x-1>-1&&y-1>-1)
- switch(A[x-1][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x-1][y-1]; A[x-1][y-1]='$'; address[c]=&A[x-1][y-1]; break;
- case '.': c++; letter[c]=A[x-1][y-1]; A[x-1][y-1]='+'; address[c]=&A[x-1][y-1]; break;
- default: break;
- }
- if(x-1>-1&&y+1<8)
- switch(A[x-1][y+1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x-1][y+1]; A[x-1][y+1]='$'; address[c]=&A[x-1][y+1]; break;
- case '.': c++; letter[c]=A[x-1][y+1]; A[x-1][y+1]='+'; address[c]=&A[x-1][y+1]; break;
- default: break;
- }
- if(x+1<8&&y-1>-1)
- switch(A[x+1][y-1])
- {
- case 'S':case 'T':case 'H':case 'F':case 'W': c++; letter[c]=A[x+1][y-1]; A[x+1][y-1]='$'; address[c]=&A[x+1][y-1]; break;
- case '.': c++; letter[c]=A[x+1][y-1]; A[x+1][y-1]='+'; address[c]=&A[x+1][y-1]; break;
- default: break;
- }
- }
- int getnormal_befor()
- {
- int x;
- for(x=1;x<=c;x++)
- *address[x]=letter[x];
- }
- int getnormal_after()
- {
- int x;
- for(x=1;x<=c;x++)
- if(address[x]!=Ptr) // 34an el-qet3a elly 7rknaha matrg34 '.'
- {
- *address[x]=letter[x];
- }
- }
- int status()
- {
- size_t x,y;
- for(x=0;x<8;x++)
- {
- printf("\t%d",x);
- }
- puts("\n\t----------------------------------------------------------");
- for(x=0;x<8;x++)
- {
- printf("%d||",x);
- for(y=0;y<8;y++)
- printf("\t%c",A[x][y]);
- puts("\n\n");
- }
- puts("\n\n\n\n\n");
- }
- int tybecheck1(int x,int y)
- {
- switch(A[x][y])
- {
- case 'S':soldier1(x,y);break; //el-functions elly bttcheck el-amakn el-mota7a ll-7raka
- case 'T':tabia1(x,y);break;
- case 'H':hourse1(x,y);break;
- case 'F':fel1(x,y);break;
- case 'W':wazer1(x,y);break;
- case 'K':king1(x,y);break;
- default :puts("WRONG ENTERY");return 123;
- }
- if(c==0)
- {puts("No MOVES AVAILABLE");return 123;}
- }
- int tybecheck0(int x,int y)
- {
- switch(A[x][y])
- {
- case 's':soldier0(x,y);break; //el-functions elly bttcheck el-amakn el-mota7a ll-7raka
- case 't':tabia0(x,y);break;
- case 'h':hourse0(x,y);break;
- case 'f':fel0(x,y);break;
- case 'w':wazer0(x,y);break;
- case 'k':king0(x,y);break;
- default :puts("WRONG ENTERY");return 123;
- }
- if(c==0)
- {puts("No MOVES AVAILABLE");return 123;}
- }
- int check_K()
- {
- int x,y,flag=1;
- for(x=0;x<8;x++)
- for(y=0;y<8;y++)
- {
- switch(A[x][y])
- {
- case 's':soldier0(x,y);
- if(*KPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 't':tabia0(x,y);
- if(*KPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'h':hourse0(x,y);
- if(*KPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'f':fel0(x,y);
- if(*KPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'w':wazer0(x,y);
- if(*KPtr=='$')
- flag=0;
- getnormal_befor();break;
- }
- if(flag==0)
- return 123;
- }
- }
- int check_k()
- {
- int x,y,flag=1;
- for(x=0;x<8;x++)
- for(y=0;y<8;y++)
- {
- switch(A[x][y])
- {
- case 'S':soldier1(x,y);
- if(*kPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'T':tabia1(x,y);
- if(*kPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'H':hourse1(x,y);
- if(*kPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'F':fel1(x,y);
- if(*kPtr=='$')
- flag=0;
- getnormal_befor();break;
- case 'W':wazer1(x,y);
- if(*kPtr=='$')
- flag=0;
- getnormal_befor();break;
- }
- if(flag==0)
- return 123;
- }
- }
- move(int x,int y,int m,int n)
- {
- if((A[m][n]=='$'||A[m][n]=='+')&&m<8&&m>-1&&n<8&&n>-1)
- {
- A[m][n]=A[x][y];
- A[x][y]='.';
- Ptr=&A[m][n];
- value=A[m][n]; //bysgl 3nwan el-qet3a elly 7rknaha 34an nstsneeha mn getnormal()
- if(A[m][n]=='K')
- KPtr=&A[m][n];
- if(A[m][n]=='k')
- kPtr=&A[m][n];
- return 0;
- }
- else
- {puts("WRONG MOVE");return 123;}
- }
- int main()
- {
- int door,i;
- int x,y,m,n;
- for(door=1;;door++) //loop bt7sb meen elly 3aleh el-le3b >>el-capital= 1 wel-small=0;
- {
- if(door%2==1)
- {
- puts(">>>Team Capital letters");
- if(check_K()==123)
- puts("ATTENTION! King under threat");
- back1:
- status();
- scanf("%d %d",&x,&y); //el-index bta3 el-qet3a elly hatt7rk
- if(tybecheck1(x,y)==123) //de bttcheck el-noo3 bta3 el-qet3a w btcall function bt7ot 3ala amakn el-7rka el-mota7a '-' w '+'
- goto back1;
- status(); //function btprint el-le3ba
- scanf("%d %d",&m,&n); //el-index elly hatt7rklo
- getnormal_befor();
- value_n=A[m][n];
- tybecheck1(x,y);
- if(move(x,y,m,n)==123) //bttcheck el-mkan da feh '-' aw '+' wla l2 w b3den bt3ml el-move
- {
- getnormal_befor();
- goto back1;
- }
- getnormal_befor();
- A[m][n]=value;
- A[x][y]='.';
- if(check_K()==123)
- {
- A[x][y]=A[m][n];
- A[m][n]=value_n;
- if(A[x][y]=='K')
- KPtr=&A[x][y];
- puts("WRONG! your King will be under threat");
- puts(">>>Team Capital letters");
- goto back1;
- }
- }
- else
- {
- puts(">>>Team Small letters");
- if(check_k()==123)
- puts("ATTENTION! King under threat");
- back0:
- status();
- scanf("%d %d",&x,&y); //el-index bta3 el-qet3a elly hatt7rk
- if(tybecheck0(x,y)==123) //de bttcheck el-noo3 bta3 el-qet3a w btcall function bt7ot 3ala amakn el-7rka el-mota7a '-' w '+'
- goto back0;
- status(); //function btprint el-le3ba
- scanf("%d %d",&m,&n); //el-index elly hatt7rklo
- getnormal_befor();
- value_n=A[m][n];
- tybecheck0(x,y);
- if(move(x,y,m,n)==123) //bttcheck el-mkan da feh '-' aw '+' wla l2 w b3den bt3ml el-move
- {
- getnormal_befor();
- goto back0;
- }
- getnormal_befor();
- A[m][n]=value;
- A[x][y]='.';
- if(check_k()==123)
- {
- A[x][y]=A[m][n];
- A[m][n]=value_n;
- if(A[x][y]=='k')
- kPtr=&A[x][y];
- puts("WRONG! your King will be under threat");
- puts(">>>Team Small letters");
- goto back0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement