Tengo ya casi todo los movimientos yo hice esto para verlo mejor
Código:
int i,j,x;
for (i=1;i<9;i=i+1) //peones
{
StringGrid1->Cells[i-1][6]=1;
StringGrid1->Cells[i-1][1]=-1;
}
//torres
StringGrid1->Cells[0][0]=-5;
StringGrid1->Cells[7][0]=-5;
StringGrid1->Cells[0][7]=5;
StringGrid1->Cells[7][7]=5;
//caballos
StringGrid1->Cells[1][7]=3;
StringGrid1->Cells[6][7]=3;
StringGrid1->Cells[1][0]=-3;
StringGrid1->Cells[6][0]=-3;
//alfiles
StringGrid1->Cells[2][0]=-4;
StringGrid1->Cells[5][0]=-4;
StringGrid1->Cells[2][7]=4;
StringGrid1->Cells[5][7]=4;
//Rey
StringGrid1->Cells[3][7]=10;
StringGrid1->Cells[3][0]=-10;
//Reyna
StringGrid1->Cells[4][7]=8;
StringGrid1->Cells[4][0]=-8;
for (i=1;i<9;i=i+1) //celdas vacias
{
for (j=1;j<9;j=j+1)
{
if(StringGrid1->Cells[i-1][j-1].IsEmpty()==true)
{
StringGrid1->Cells[i-1][j-1]=0;
}
}
}
Un ejemplo sobre el movimiento del caballo
Código:
//[col_ini][ren_ini] posicion inicial de caballo y [col_fin][ren_fin] donde se desea mover
if (StringGrid1->Cells[col_ini-1][ren_ini-1]==3)
{
if ((((col_ini-col_fin==2)&((ren_ini-ren_fin==1)|(ren_ini-ren_fin==-1)))|((col_ini-col_fin==-2)&((ren_ini-ren_fin==1)|(ren_ini-ren_fin==-1)))|((col_ini-col_fin==1)&((ren_ini-ren_fin==2)|(ren_ini-ren_fin==-2)))|((col_ini-col_fin==-1)&((ren_ini-ren_fin==2)|(ren_ini-ren_fin==-2))))&(StringGrid1->Cells[col_fin-1][ren_fin-1]<=0))
{
StringGrid1->Cells[col_ini-1][ren_ini-1]=0;
StringGrid1->Cells[col_fin-1][ren_fin-1]=3;
}
else
{
ShowMessage("Movimiento Falso");
}
}
Por esto ahora me preocupa como enlazar este movimiento a una imagen, es decir que me busque entre todos los caballo a quien deseo mover(quien esta en cordenada(x*col_ini,y*ren_ini), donde x,y seria el tamaño de la imagen si la esquina superior del tablero estaria en (0,0) de la ventana) espero y se entienda, bueno es la forma en que pienso ahora, no se si haria otra...