Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : Chess.cpp
- // Author :
- // Version :
- // Copyright : Your copyright notice
- // Description : Hello World in C++, Ansi-style
- //============================================================================
- #include <iostream>
- #include <vector>
- #include <array>
- using namespace std;
- int main() {
- //initialize game
- bool checkmate=false;
- bool currentPlayer=0;
- string move;
- int pieceLoc[2];
- int targetLoc[2];
- char piece;
- char target;
- char gameState[8][8]={{'c','k','b','q','*','b','k','c'},
- {'p','p','p','p','p','p','p','p'},
- {' ',' ',' ',' ',' ',' ',' ',' '},
- {' ',' ',' ','#',' ',' ',' ',' '},
- {' ',' ',' ',' ',' ',' ',' ',' '},
- {' ',' ',' ',' ',' ',' ',' ',' '},
- {'P','P','P','P','P','P','P','P'},
- {'C','K','B','#','Q','B','K','C'}
- //{'',' ',' ',' ',' ',' ',' ',' '}
- };
- std::vector<std::array<int,2>> check;
- cout<<(int) gameState[1][8]<<endl;
- //main loop
- while(checkmate==false) {
- check.clear();
- if(currentPlayer==0){
- cout << "White, enter your move" << endl;
- }else{
- cout << "Black, enter your move" << endl;
- }
- getline(cin,move);
- if(move.length() != 8){
- cout << "Invalid move, out of bounds" << endl;
- continue;
- }
- pieceLoc[0] = (int) move[0]-65;
- pieceLoc[1] = move[1]-49;
- piece=gameState[pieceLoc[0]][pieceLoc[1]];
- targetLoc[0] = (int) move[6]-65;
- targetLoc[1] = move[7]-49;
- target=gameState[targetLoc[0]][targetLoc[1]];
- if(pieceLoc[1]==targetLoc[1]&&pieceLoc[0]==targetLoc[0]){
- cout<<"Not a move" <<endl;
- continue;
- }
- cout<<pieceLoc[0]<<endl<<pieceLoc[1]<<endl<<targetLoc[0]<<endl<<targetLoc[1]<<endl;
- cout << piece<< endl;
- cout << target << endl;
- //check move validity
- if(currentPlayer == 0 && (piece == 'C'|| piece != 'B'|| piece != 'K'|| piece != '#'|| piece != 'Q'|| piece != 'P')){
- if(target=='c'||target=='k'||target=='b'||target=='*'||target=='q'||target=='p'||target==' '){
- switch(piece){
- case 'C':
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]]==' '&&pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]]==' ' && pieceLoc[0]-i>-1){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]][pieceLoc[1]+i]==' '&&pieceLoc[1]+i<8){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]][pieceLoc[1]-i]==' '&&pieceLoc[1]-i>-1){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- break;
- case 'B':
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- break;
- case 'K':
- 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){
- std::array<int,2> hold={pieceLoc[0]-2,pieceLoc[1]-1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]-2,pieceLoc[1]+1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]-1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]+1};
- check.push_back(hold);
- }
- //
- 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){
- std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]-2};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]+2};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-2};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+2};
- check.push_back(hold);
- }
- break;
- case 'P':
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-1};
- check.push_back(hold);
- }
- 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')){
- std::array<int,2> hold={pieceLoc[0]+2,pieceLoc[1]};
- check.push_back(hold);
- }
- break;
- case 'Q':
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]]==' '&&pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]]==' ' && pieceLoc[0]-i>-1){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]][pieceLoc[1]+i]==' '&&pieceLoc[1]+i<8){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++){
- if(gameState[pieceLoc[0]][pieceLoc[1]-i]==' '&&pieceLoc[1]-i>-1){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size();
- }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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- cout<<check.size();
- }else{
- x=1;
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]-i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]-i && pieceLoc[0]-i<8){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]-i,pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]+i]==' ' && -1<pieceLoc[1]+i && pieceLoc[1]+i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]+i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- for(int i = 1, x = 0;x==0; i++ ){
- if(gameState[pieceLoc[0]+i][pieceLoc[1]-i]==' ' && -1<pieceLoc[1]-i && pieceLoc[1]-i<8 && -1<pieceLoc[0]+i && pieceLoc[0]+i<8){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
- check.push_back(hold);
- cout<<check.size()<<endl;
- std::array<int,2> y;
- y = check.at(i-1);
- cout<< y.at(0)<<','<<y.at(1)<<endl;
- cout<<gameState[1][11]<<endl;
- }else{
- 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){
- std::array<int,2> hold={pieceLoc[0]+i,pieceLoc[1]-i};
- check.push_back(hold);
- x=1;
- }else{
- x=1;
- }
- }
- }
- break;
- case '#':
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]+1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]+1};
- check.push_back(hold);
- }
- //
- 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){
- std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]-1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]+1,pieceLoc[1]-1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0]-1,pieceLoc[1]+1};
- check.push_back(hold);
- }
- 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){
- std::array<int,2> hold={pieceLoc[0],pieceLoc[1]-1};
- check.push_back(hold);
- }
- break;
- }
- }
- }
- std::array<int,2> hold = {targetLoc[0],targetLoc[1]};
- if(std::find(check.begin(), check.end(), hold)){
- cout<<"good"<<endl;
- }
- cout<<"bad";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement