#include #include using namespace std; int main() { int tab[8][8][2]; int a,d,e,f,g,h,i,j,m,n,k,x,y,z; int l=0; int c=0; int c1=0; int turno=1; int pieza; int pieza2; char b[10]; char exit[10]; char co1[]={"AaBbCcDdEeFfGgHh"}; char co2[]={"12345678"}; tab[0][0][0]=4; tab[1][0][0]=6; tab[2][0][0]=8; tab[3][0][0]=10; tab[4][0][0]=12; tab[5][0][0]=8; tab[6][0][0]=6; tab[7][0][0]=4; tab[0][1][0]=2; tab[1][1][0]=2; tab[2][1][0]=2; tab[3][1][0]=2; tab[4][1][0]=2; tab[5][1][0]=2; tab[6][1][0]=2; tab[7][1][0]=2; tab[0][7][0]=3; tab[1][7][0]=5; tab[2][7][0]=7; tab[3][7][0]=9; tab[4][7][0]=11; tab[5][7][0]=7; tab[6][7][0]=5; tab[7][7][0]=3; tab[0][6][0]=1; tab[1][6][0]=1; tab[2][6][0]=1; tab[3][6][0]=1; tab[4][6][0]=1; tab[5][6][0]=1; tab[6][6][0]=1; tab[7][6][0]=1; for(y=2;y<6;++y) { for(x=0;x<8;++x) { tab[x][y][0]=0; } } do { c=0; for(y=0;y<8;++y) { if (y==0) { printf(" "); while (c<8) { printf("_______ "); c++; } printf(" "); printf("\n"); } else{} for(z=1;z<=5;++z) { for(x=0;x<8;++x) { if (x==0) { if (z==3) { a=(8-y); printf(" "); printf("%d",a); printf(" |"); } else { printf(" |"); } } else{} switch (z) { case 1: { switch (tab[x][y][0]) { case 1: { if ((x+y)%2==0) { printf("///_///"); } else { printf(" _ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 2: { if ((x+y)%2==0) { printf("///_///"); } else { printf(" _ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 3: { if ((x+y)%2==0) { printf("//^^^//"); } else { printf(" ^^^ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 4: { if ((x+y)%2==0) { printf("//^^^//"); } else { printf(" ^^^ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 5: { if ((x+y)%2==0) { printf("//___//"); } else { printf(" ___ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 6: { if ((x+y)%2==0) { printf("//___//"); } else { printf(" ___ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 7: { if ((x+y)%2==0) { printf("///^///"); } else { printf(" ^ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 8: { if ((x+y)%2==0) { printf("///^///"); } else { printf(" ^ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 9: { if ((x+y)%2==0) { printf("//@@@//"); } else { printf(" @@@ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 10: { if ((x+y)%2==0) { printf("//@@@//"); } else { printf(" @@@ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 11: { if ((x+y)%2==0) { printf("//{+}//"); } else { printf(" {+} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 12: { if ((x+y)%2==0) { printf("//{+}//"); } else { printf(" {+} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } default: { if ((x+y)%2==0) { printf("///////"); } else { printf(" "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } } break; } case 2: { switch (tab[x][y][0]) { case 1: { if ((x+y)%2==0) { printf("//(#)//"); } else { printf(" (#) "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 2: { if ((x+y)%2==0) { printf("//( )//"); } else { printf(" ( ) "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 3: { if ((x+y)%2==0) { printf("/[###]/"); } else { printf(" [###] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 4: { if ((x+y)%2==0) { printf("/[ ]/"); } else { printf(" [ ] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 5: { if ((x+y)%2==0) { printf("|/@#<|/"); } else { printf(" /@#< "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 6: { if ((x+y)%2==0) { printf("|/@ <|/"); } else { printf(" /@ < "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 7: { if ((x+y)%2==0) { printf("/<###>/"); } else { printf(" <###> "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 8: { if ((x+y)%2==0) { printf("/< >/"); } else { printf(" < > "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 9: { if ((x+y)%2==0) { printf("//>##< "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 10: { if ((x+y)%2==0) { printf("//> < "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 11: { if ((x+y)%2==0) { printf("//>##< "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 12: { if ((x+y)%2==0) { printf("//> < "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } default: { if ((x+y)%2==0) { printf("///////"); } else { printf(" "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } } break; } case 3: { switch (tab[x][y][0]) { case 1: { if ((x+y)%2==0) { printf("//}#{//"); } else { printf(" }#{ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 2: { if ((x+y)%2==0) { printf("//} {//"); } else { printf(" } { "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 3: { if ((x+y)%2==0) { printf("//]#[//"); } else { printf(" ]#[ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 4: { if ((x+y)%2==0) { printf("//] [//"); } else { printf(" ] [ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 5: { if ((x+y)%2==0) { printf("/}##/|/"); } else { printf(" }##/ "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 6: { if ((x+y)%2==0) { printf("/} /|/"); } else { printf(" } / "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 7: { if ((x+y)%2==0) { printf("//>##< "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 8: { if ((x+y)%2==0) { printf("//> < "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 9: { if ((x+y)%2==0) { printf("//<#>//"); } else { printf(" <#> "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 10: { if ((x+y)%2==0) { printf("//< >//"); } else { printf(" < > "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 11: { if ((x+y)%2==0) { printf("//<#>//"); } else { printf(" <#> "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 12: { if ((x+y)%2==0) { printf("//< >//"); } else { printf(" < > "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } default: { if ((x+y)%2==0) { printf("///////"); } else { printf(" "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } } break; } case 4: { switch (tab[x][y][0]) { case 1: { if ((x+y)%2==0) { printf("/{###}/"); } else { printf(" {###} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 2: { if ((x+y)%2==0) { printf("/{ }/"); } else { printf(" { } "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 3: { if ((x+y)%2==0) { printf("/[###]/"); } else { printf(" [###] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 4: { if ((x+y)%2==0) { printf("/[ ]/"); } else { printf(" [ ] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 5: { if ((x+y)%2==0) { printf("/{##}//"); } else { printf(" {##} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 6: { if ((x+y)%2==0) { printf("/{ }//"); } else { printf(" { } "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 7: { if ((x+y)%2==0) { printf("/[###]/"); } else { printf(" [###] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 8: { if ((x+y)%2==0) { printf("/[ ]/"); } else { printf(" [ ] "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 9: { if ((x+y)%2==0) { printf("/{###}/"); } else { printf(" {###} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 10: { if ((x+y)%2==0) { printf("/{ }/"); } else { printf(" { } "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 11: { if ((x+y)%2==0) { printf("/{###}/"); } else { printf(" {###} "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 12: { if ((x+y)%2==0) { printf("/{ }/"); } else { printf(" { } "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } default: { if ((x+y)%2==0) { printf("///////"); } else { printf(" "); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } } break; } case 5: { switch (tab[x][y][0]) { case 1: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 2: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 3: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 4: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 5: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 6: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 7: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 8: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 9: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 10: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 11: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } case 12: { printf("_______"); printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } default: { if ((x+y)%2==0) { printf("_______"); } else { printf("_______"); } printf("|"); if (x==7) { printf(" "); printf("\n"); } else{} break; } } break; } } } } } printf("\n"); printf(" "); printf(" A B C D E F G H "); printf(" "); printf("\n"); printf("\n"); l=0; do { l++; do { if (l==1) { printf("Ingrese posicion de pieza a mover: "); } else { switch (tab[h][i][0]) { case 1: case 2: printf("Peon "); if (turno%2==1) pieza=1; else pieza=2; break; case 3: case 4: printf("Torre "); if (turno%2==1) pieza=3; else pieza=4; break; case 5: case 6: printf("Caballo "); if (turno%2==1) pieza=5; else pieza=6; break; case 7: case 8: printf("Alfil "); if (turno%2==1) pieza=7; else pieza=8; break; case 9: case 10: printf("Reina "); if (turno%2==1) pieza=9; else pieza=10; break; case 11: case 12: printf("Rey "); if (turno%2==1) pieza=11; else pieza=12; break; } printf("a casilla: "); } cin >> b; printf("\n"); for(d=0;d<16;++d) { if (b[0]==co1[d]) { e=d; break; } else {} } for(f=0;f<8;++f) { if (b[1]==co2[f]) { g=f; break; } else {} } if (d==16||f==8) { printf("\n"); printf("Valor erroneo, ingrese un valor valido"); printf("\n"); printf("\n"); printf("\n"); } }while (d==16||f==8); switch (e) { case 0: case 1: h=0; break; case 2: case 3: h=1; break; case 4: case 5: h=2; break; case 6: case 7: h=3; break; case 8: case 9: h=4; break; case 10: case 11: h=5; break; case 12: case 13: h=6; break; case 14: case 15: h=7; break; } switch (g) { case 0: i=7; break; case 1: i=6; break; case 2: i=5; break; case 3: i=4; break; case 4: i=3; break; case 5: i=2; break; case 6: i=1; break; case 7: i=0; break; } if (l==1) { j=h; k=i; if (tab[h][i][0]==0) { printf("\n"); printf("Casilla vacia, ingrese otra posicion."); printf("\n"); printf("\n"); printf("\n"); l=0; } else { if (turno%2==1 && tab[h][i][0]%2==0) { printf("\n"); printf("Juegan las Blancas, escoja un a pieza Blanca."); printf("\n"); printf("\n"); printf("\n"); l=0; } else { if (turno%2==0 && tab[h][i][0]%2==1) { printf("\n"); printf("Juegan las Negras, escoja un a pieza Negra."); printf("\n"); printf("\n"); printf("\n"); l=0; } } } } else { } if (l==2) { if (tab[j][k][0]==tab[h][i][0]) { printf("\n"); printf("Movimineto invalido"); printf("\n"); printf("\n"); printf("\n"); l=1; } else { } switch (pieza) { case 1: if (k==6) { if ( (j==h) && ( (k==i+1) || (k==i+2) ) ) { continue; } else { if ((( ( (j==h+1)||( (j==h-1)&&(k==i+1) ) )&&(tab[h][i][0]!=0)&&(tab[h][i][0]%2==0)))) { continue; } else { printf("\n"); printf("Movimineto invalido"); printf("\n"); printf("\n"); printf("\n"); l=1; } } } else { if ((j==h) && (k==i+1)) { continue; } else { if ((j==h+1)||((j==h-1)&&(k==i+1))) { continue; } else { printf("\n"); printf("Movimineto invalido"); printf("\n"); printf("\n"); printf("\n"); l=1; } } } break; case 2: if (k==1) { if ( (j==h) && ( (k==i-1) || (k==i-2) ) ) { continue; } else { if ((j==h+1)||((j==h-1)&&(k==i-1))) { continue; } else { printf("\n"); printf("Movimineto invalido"); printf("\n"); printf("\n"); printf("\n"); l=1; } } } else { if ((j==h) && (k==i-1)) { continue; } else { if ((j==h+1)||((j==h-1)&&(k==i-1))) { continue; } else { printf("\n"); printf("Movimineto invalido"); printf("\n"); printf("\n"); printf("\n"); l=1; } } } break; case 3: case 4: break; case 5: case 6: break; case 7: case 8: break; case 9: case 10: break; case 11: case 12: break; } } }while (l<2); tab[h][i][0]=tab[j][k][0]; tab[j][k][0]=0; turno++; }while (1==1); return 0; }