Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 24.78 KB | None | 0 0
  1. //============================================================================
  2. // Name        : Chess.cpp
  3. // Author      :
  4. // Version     :
  5. // Copyright   : Your copyright notice
  6. // Description : Hello World in C++, Ansi-style
  7. //============================================================================
  8.  
  9. #include <iostream>
  10. #include <vector>
  11. #include <array>
  12. using namespace std;
  13.  
  14. int main() {
  15.     //initialize game
  16.     bool checkmate=false;
  17.     bool currentPlayer=0;
  18.     string move;
  19.     int pieceLoc[2];
  20.     int targetLoc[2];
  21.     char piece;
  22.     char target;
  23.     char gameState[8][8]={{'c','k','b','q','*','b','k','c'},
  24.             {'p','p','p','p','p','p','p','p'},
  25.             {' ',' ',' ',' ',' ',' ',' ',' '},
  26.             {' ',' ',' ','#',' ',' ',' ',' '},
  27.             {' ',' ',' ',' ',' ',' ',' ',' '},
  28.             {' ',' ',' ',' ',' ',' ',' ',' '},
  29.             {'P','P','P','P','P','P','P','P'},
  30.             {'C','K','B','#','Q','B','K','C'}
  31.     //{'',' ',' ',' ',' ',' ',' ',' '}
  32.     };
  33.     std::vector<std::array<int,2>> check;
  34.     cout<<(int) gameState[1][8]<<endl;
  35.  
  36.     //main loop
  37.     while(checkmate==false) {
  38.         check.clear();
  39.         if(currentPlayer==0){
  40.             cout << "White, enter your move" << endl;
  41.         }else{
  42.             cout << "Black, enter your move" << endl;
  43.         }
  44.         getline(cin,move);
  45.         if(move.length() != 8){
  46.             cout << "Invalid move, out of bounds" << endl;
  47.             continue;
  48.         }
  49.         pieceLoc[0] = (int) move[0]-65;
  50.         pieceLoc[1] = move[1]-49;
  51.         piece=gameState[pieceLoc[0]][pieceLoc[1]];
  52.  
  53.         targetLoc[0] = (int) move[6]-65;
  54.         targetLoc[1] = move[7]-49;
  55.         target=gameState[targetLoc[0]][targetLoc[1]];
  56.         if(pieceLoc[1]==targetLoc[1]&&pieceLoc[0]==targetLoc[0]){
  57.             cout<<"Not a move" <<endl;
  58.             continue;
  59.         }
  60.         cout<<pieceLoc[0]<<endl<<pieceLoc[1]<<endl<<targetLoc[0]<<endl<<targetLoc[1]<<endl;
  61.         cout << piece<< endl;
  62.         cout << target << endl;
  63.         //check move validity
  64.         if(currentPlayer == 0 && (piece == 'C'|| piece != 'B'|| piece != 'K'|| piece != '#'|| piece != 'Q'|| piece != 'P')){
  65.             if(target=='c'||target=='k'||target=='b'||target=='*'||target=='q'||target=='p'||target==' '){
  66.                 switch(piece){
  67.                 case 'C':
  68.                     for(int i = 1, x = 0;x==0; i++){
  69.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]]==' '&&pieceLoc[0]+i<8){
  70.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
  71.                             check.push_back(hold);
  72.                             cout<<check.size();
  73.                         }else if((gameState[pieceLoc[0]+i][pieceLoc[1]]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='q') && pieceLoc[0]+i<8){
  74.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
  75.                             check.push_back(hold);
  76.                             x=1;
  77.                             cout<<check.size();
  78.                         }else{
  79.                             x=1;
  80.                         }
  81.                     }
  82.                     for(int i = 1, x = 0;x==0; i++){
  83.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]]==' ' && pieceLoc[0]-i>-1){
  84.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
  85.                             check.push_back(hold);
  86.                             cout<<check.size();
  87.                         }else if((gameState[pieceLoc[0]-i][pieceLoc[1]]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='q')&& pieceLoc[0]-i>-1){
  88.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
  89.                             check.push_back(hold);
  90.                             x=1;
  91.                             cout<<check.size();
  92.                         }else{
  93.                             x=1;
  94.                         }
  95.                     }
  96.                     for(int i = 1, x = 0;x==0; i++){
  97.                         if(gameState[pieceLoc[0]][pieceLoc[1]+i]==' '&&pieceLoc[1]+i<8){
  98.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
  99.                             check.push_back(hold);
  100.                             cout<<check.size();
  101.                         }else if((gameState[pieceLoc[0]][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='q')&&pieceLoc[1]+i<8){
  102.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
  103.                             check.push_back(hold);
  104.                             x=1;
  105.                             cout<<check.size();
  106.                         }else{
  107.                             x=1;
  108.                         }
  109.                     }
  110.                     for(int i = 1, x = 0;x==0; i++){
  111.                         if(gameState[pieceLoc[0]][pieceLoc[1]-i]==' '&&pieceLoc[1]-i>-1){
  112.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
  113.                             check.push_back(hold);
  114.                             cout<<check.size();
  115.                         }else if((gameState[pieceLoc[0]][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='q')&&pieceLoc[1]-i>-1){
  116.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
  117.                             check.push_back(hold);
  118.                             x=1;
  119.                             cout<<check.size();
  120.                         }else{
  121.                             x=1;
  122.                         }
  123.                     }
  124.                     break;
  125.                 case 'B':
  126.                     for(int i = 1, x = 0;x==0; i++ ){
  127.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  128.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
  129.                             check.push_back(hold);
  130.                             cout<<check.size()<<endl;
  131.                             std::array<int,2> y;
  132.                             y = check.at(i-1);
  133.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  134.                             cout<<gameState[1][11]<<endl;
  135.                         }else{
  136.                             if((gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  137.                                 std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
  138.                                 check.push_back(hold);
  139.                                 x=1;
  140.                             }else{
  141.                                 x=1;
  142.                             }
  143.                         }
  144.  
  145.                     }
  146.                     for(int i = 1, x = 0;x==0; i++ ){
  147.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  148.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
  149.                             check.push_back(hold);
  150.                             cout<<check.size()<<endl;
  151.                             std::array<int,2> y;
  152.                             y = check.at(i-1);
  153.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  154.                             cout<<gameState[1][11]<<endl;
  155.                         }else{
  156.                             if((gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  157.                                 std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
  158.                                 check.push_back(hold);
  159.                                 x=1;
  160.                             }else{
  161.                                 x=1;
  162.                             }
  163.                         }
  164.  
  165.                     }
  166.                     for(int i = 1, x = 0;x==0; i++ ){
  167.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
  168.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
  169.                             check.push_back(hold);
  170.                             cout<<check.size()<<endl;
  171.                             std::array<int,2> y;
  172.                             y = check.at(i-1);
  173.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  174.                             cout<<gameState[1][11]<<endl;
  175.                         }else{
  176.                             if((gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  177.                                 std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
  178.                                 check.push_back(hold);
  179.                                 x=1;
  180.                             }else{
  181.                                 x=1;
  182.                             }
  183.                         }
  184.  
  185.                     }
  186.                     for(int i = 1, x = 0;x==0; i++ ){
  187.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
  188.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
  189.                             check.push_back(hold);
  190.                             cout<<check.size()<<endl;
  191.                             std::array<int,2> y;
  192.                             y = check.at(i-1);
  193.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  194.                             cout<<gameState[1][11]<<endl;
  195.                         }else{
  196.                             if((gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  197.                                 std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
  198.                                 check.push_back(hold);
  199.                                 x=1;
  200.                             }else{
  201.                                 x=1;
  202.                             }
  203.                         }
  204.  
  205.                     }
  206.                     break;
  207.                 case 'K':
  208.                     if((gameState[pieceLoc[0]-2][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='q'||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]-2][pieceLoc[1]-1]=='q')&&pieceLoc[0]-2<8&&-1<pieceLoc[0]-2&&-1<pieceLoc[1]-1&&pieceLoc[1]-1<8){
  209.                         std::array<int,2> hold={pieceLoc[0]-2,pieceLoc[1]-1};
  210.                         check.push_back(hold);
  211.                     }
  212.                     if((gameState[pieceLoc[0]-2][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='q'||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]-2][pieceLoc[1]+1]=='q')&&pieceLoc[0]-2<8&&-1<pieceLoc[0]-2&&-1<pieceLoc[1]+1&&pieceLoc[1]+1<8){
  213.                         std::array<int,2> hold={pieceLoc[0]-2,pieceLoc[1]+1};
  214.                         check.push_back(hold);
  215.                     }
  216.                     if((gameState[pieceLoc[0]+2][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='q'||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]+2][pieceLoc[1]-1]=='q')&&pieceLoc[0]+2<8&&-1<pieceLoc[0]+2&&-1<pieceLoc[1]-1&&pieceLoc[1]-1<8){
  217.                         std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]-1};
  218.                         check.push_back(hold);
  219.                     }
  220.                     if((gameState[pieceLoc[0]+2][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='q'||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]+2][pieceLoc[1]+1]=='q')&&pieceLoc[0]+2<8&&-1<pieceLoc[0]+2&&-1<pieceLoc[1]+1&&pieceLoc[1]+1<8){
  221.                         std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]+1};
  222.                         check.push_back(hold);
  223.                     }
  224.                     //
  225.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]-2]==' '||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='c'||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='b'||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='q'||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='*'||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='k'||gameState[pieceLoc[0]-1][pieceLoc[1]-2]=='q')&&pieceLoc[0]-1<8&&-1<pieceLoc[0]-1&&-1<pieceLoc[1]-2&&pieceLoc[1]-2<8){
  226.                         std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]-2};
  227.                         check.push_back(hold);
  228.                     }
  229.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]+2]==' '||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='c'||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='b'||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='q'||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='*'||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='k'||gameState[pieceLoc[0]-1][pieceLoc[1]+2]=='q')&&pieceLoc[0]-1<8&&-1<pieceLoc[0]-1&&-1<pieceLoc[1]+2&&pieceLoc[1]+2<8){
  230.                         std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]+2};
  231.                         check.push_back(hold);
  232.                     }
  233.                     if((gameState[pieceLoc[0]+1][pieceLoc[1]-2]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='q'||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]-2]=='q')&&pieceLoc[0]+1<8&&-1<pieceLoc[0]+1&&-1<pieceLoc[1]-2&&pieceLoc[1]-2<8){
  234.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-2};
  235.                         check.push_back(hold);
  236.                     }
  237.                     if((gameState[pieceLoc[0]+1][pieceLoc[1]+2]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='q'||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]+2]=='q')&&pieceLoc[0]+1<8&&-1<pieceLoc[0]+1&&-1<pieceLoc[1]+2&&pieceLoc[1]+2<8){
  238.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+2};
  239.                         check.push_back(hold);
  240.                     }
  241.                     break;
  242.                 case 'P':
  243.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='q')&&pieceLoc[0]+1<8){
  244.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]};
  245.                         check.push_back(hold);
  246.                     }
  247.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='q')&&pieceLoc[0]+1<8&&pieceLoc[1]<8){
  248.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+1};
  249.                         check.push_back(hold);
  250.                     }
  251.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='q')&&pieceLoc[0]+1<8){
  252.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-1};
  253.                         check.push_back(hold);
  254.                     }
  255.                     if(pieceLoc[0]==6&&(gameState[pieceLoc[0]-2][pieceLoc[1]]==' '||gameState[pieceLoc[0]+2][pieceLoc[1]]=='c'||gameState[pieceLoc[0]+2][pieceLoc[1]]=='k'||gameState[pieceLoc[0]+2][pieceLoc[1]]=='b'||gameState[pieceLoc[0]+2][pieceLoc[1]]=='p'||gameState[pieceLoc[0]+2][pieceLoc[1]]=='*'||gameState[pieceLoc[0]+2][pieceLoc[1]]=='q')){
  256.                         std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]};
  257.                         check.push_back(hold);
  258.                     }
  259.                     break;
  260.                 case 'Q':
  261.                     for(int i = 1, x = 0;x==0; i++){
  262.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]]==' '&&pieceLoc[0]+i<8){
  263.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
  264.                             check.push_back(hold);
  265.                             cout<<check.size();
  266.                         }else if((gameState[pieceLoc[0]+i][pieceLoc[1]]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]]=='q') && pieceLoc[0]+i<8){
  267.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
  268.                             check.push_back(hold);
  269.                             x=1;
  270.                             cout<<check.size();
  271.                         }else{
  272.                             x=1;
  273.                         }
  274.                     }
  275.                     for(int i = 1, x = 0;x==0; i++){
  276.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]]==' ' && pieceLoc[0]-i>-1){
  277.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
  278.                             check.push_back(hold);
  279.                             cout<<check.size();
  280.                         }else if((gameState[pieceLoc[0]-i][pieceLoc[1]]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]]=='q')&& pieceLoc[0]-i>-1){
  281.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
  282.                             check.push_back(hold);
  283.                             x=1;
  284.                             cout<<check.size();
  285.                         }else{
  286.                             x=1;
  287.                         }
  288.                     }
  289.                     for(int i = 1, x = 0;x==0; i++){
  290.                         if(gameState[pieceLoc[0]][pieceLoc[1]+i]==' '&&pieceLoc[1]+i<8){
  291.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
  292.                             check.push_back(hold);
  293.                             cout<<check.size();
  294.                         }else if((gameState[pieceLoc[0]][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]][pieceLoc[1]+i]=='q')&&pieceLoc[1]+i<8){
  295.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
  296.                             check.push_back(hold);
  297.                             x=1;
  298.                             cout<<check.size();
  299.                         }else{
  300.                             x=1;
  301.                         }
  302.                     }
  303.                     for(int i = 1, x = 0;x==0; i++){
  304.                         if(gameState[pieceLoc[0]][pieceLoc[1]-i]==' '&&pieceLoc[1]-i>-1){
  305.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
  306.                             check.push_back(hold);
  307.                             cout<<check.size();
  308.                         }else if((gameState[pieceLoc[0]][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]][pieceLoc[1]-i]=='q')&&pieceLoc[1]-i>-1){
  309.                             std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
  310.                             check.push_back(hold);
  311.                             x=1;
  312.                             cout<<check.size();
  313.                         }else{
  314.                             x=1;
  315.                         }
  316.                     }
  317.                     for(int i = 1, x = 0;x==0; i++ ){
  318.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  319.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
  320.                             check.push_back(hold);
  321.                             cout<<check.size()<<endl;
  322.                             std::array<int,2> y;
  323.                             y = check.at(i-1);
  324.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  325.                             cout<<gameState[1][11]<<endl;
  326.                         }else{
  327.                             if((gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]+i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  328.                                 std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
  329.                                 check.push_back(hold);
  330.                                 x=1;
  331.                             }else{
  332.                                 x=1;
  333.                             }
  334.                         }
  335.  
  336.                     }
  337.                     for(int i = 1, x = 0;x==0; i++ ){
  338.                         if(gameState[pieceLoc[0]-i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  339.                             std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
  340.                             check.push_back(hold);
  341.                             cout<<check.size()<<endl;
  342.                             std::array<int,2> y;
  343.                             y = check.at(i-1);
  344.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  345.                             cout<<gameState[1][11]<<endl;
  346.                         }else{
  347.                             if((gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]-i][pieceLoc[1]-i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  348.                                 std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
  349.                                 check.push_back(hold);
  350.                                 x=1;
  351.                             }else{
  352.                                 x=1;
  353.                             }
  354.                         }
  355.  
  356.                     }
  357.                     for(int i = 1, x = 0;x==0; i++ ){
  358.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
  359.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
  360.                             check.push_back(hold);
  361.                             cout<<check.size()<<endl;
  362.                             std::array<int,2> y;
  363.                             y = check.at(i-1);
  364.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  365.                             cout<<gameState[1][11]<<endl;
  366.                         }else{
  367.                             if((gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]+i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  368.                                 std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
  369.                                 check.push_back(hold);
  370.                                 x=1;
  371.                             }else{
  372.                                 x=1;
  373.                             }
  374.                         }
  375.  
  376.                     }
  377.                     for(int i = 1, x = 0;x==0; i++ ){
  378.                         if(gameState[pieceLoc[0]+i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
  379.                             std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
  380.                             check.push_back(hold);
  381.                             cout<<check.size()<<endl;
  382.                             std::array<int,2> y;
  383.                             y = check.at(i-1);
  384.                             cout<< y.at(0)<<','<<y.at(1)<<endl;
  385.                             cout<<gameState[1][11]<<endl;
  386.                         }else{
  387.                             if((gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='c'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='k'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='p'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='b'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='*'||gameState[pieceLoc[0]+i][pieceLoc[1]-i]=='q')&& -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
  388.                                 std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
  389.                                 check.push_back(hold);
  390.                                 x=1;
  391.                             }else{
  392.                                 x=1;
  393.                             }
  394.                         }
  395.  
  396.                     }
  397.                     break;
  398.                 case '#':
  399.                     if((gameState[pieceLoc[0]+1][pieceLoc[1]]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]]=='q')&&pieceLoc[0]+1<8){
  400.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]};
  401.                         check.push_back(hold);
  402.                     }
  403.                     if((gameState[pieceLoc[0]+1][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]+1]=='q')&&pieceLoc[0]+1<8&&pieceLoc[1]<8){
  404.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+1};
  405.                         check.push_back(hold);
  406.                     }
  407.                     if((gameState[pieceLoc[0]][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]][pieceLoc[1]+1]=='p'||gameState[pieceLoc[0]][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]][pieceLoc[1]+1]=='q')&&pieceLoc[1]<8){
  408.                         std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+1};
  409.                         check.push_back(hold);
  410.                     }
  411.                     //
  412.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]]==' '||gameState[pieceLoc[0]-1][pieceLoc[1]]=='c'||gameState[pieceLoc[0]-1][pieceLoc[1]]=='k'||gameState[pieceLoc[0]-1][pieceLoc[1]]=='b'||gameState[pieceLoc[0]-1][pieceLoc[1]]=='p'||gameState[pieceLoc[0]-1][pieceLoc[1]]=='*'||gameState[pieceLoc[0]-1][pieceLoc[1]]=='q')&&pieceLoc[0]-1<8){
  413.                         std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]};
  414.                         check.push_back(hold);
  415.                     }
  416.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='p'||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]-1][pieceLoc[1]-1]=='q')&&pieceLoc[0]-1<8){
  417.                         std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]-1};
  418.                         check.push_back(hold);
  419.                     }
  420.                     if((gameState[pieceLoc[0]+1][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='p'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]+1][pieceLoc[1]-1]=='q')&&pieceLoc[0]+1<8){
  421.                         std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-1};
  422.                         check.push_back(hold);
  423.                     }
  424.                     if((gameState[pieceLoc[0]-1][pieceLoc[1]+1]==' '||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='c'||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='k'||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='b'||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='p'||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='*'||gameState[pieceLoc[0]-1][pieceLoc[1]+1]=='q')&&pieceLoc[0]-1<8){
  425.                         std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]+1};
  426.                         check.push_back(hold);
  427.                     }
  428.                     if((gameState[pieceLoc[0]][pieceLoc[1]-1]==' '||gameState[pieceLoc[0]][pieceLoc[1]-1]=='c'||gameState[pieceLoc[0]][pieceLoc[1]-1]=='k'||gameState[pieceLoc[0]][pieceLoc[1]-1]=='b'||gameState[pieceLoc[0]][pieceLoc[1]-1]=='p'||gameState[pieceLoc[0]][pieceLoc[1]-1]=='*'||gameState[pieceLoc[0]][pieceLoc[1]-1]=='q')&&pieceLoc[0]<8){
  429.                         std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-1};
  430.                         check.push_back(hold);
  431.                     }
  432.                     break;
  433.                 }
  434.  
  435.             }
  436.         }
  437.         std::array<int,2> hold = {targetLoc[0],targetLoc[1]};
  438.         if(std::find(check.begin(), check.end(), hold)){
  439.             cout<<"good"<<endl;
  440.         }
  441.         cout<<"bad";
  442.     }
  443.     return 0;
  444. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement