2023-02-23 21:49:03 +01:00

2131 lines
61 KiB
C++

#include <stdio.h>
#include <iostream>
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("//>#<//");
}
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 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("//>#<//");
}
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 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;
}