Juego Checkers o Damas

JuaQ
13 de Mayo del 2010
Buenos dias. Estoy haciendo mi primer programa en c++ y es un juego de damas. No se como hacer que obligue a matar una ficha, como en las reglas.
Este es el código que tengo por ahora:
#include
#include
#include
#include
#include

char MAT[8][8] = {'N',' ','N',' ','N',' ','N',' ',
' ','N',' ','N',' ','N',' ','N',
'N',' ','N',' ','N',' ','N',' ',
' ',' ',' ',' ',' ',' ',' ',' ',
' ',' ',' ',' ',' ',' ',' ',' ',
' ','B',' ','B',' ','B',' ','B',
'B',' ','B',' ','B',' ','B',' ',
' ','B',' ','B',' ','B',' ','B',};

int FIL,COL,FIL1,FIL2,COL1,COL2,SEGUIR;
char FICHAS = 'B';
char C;
int L;
int Blancas=12;
int Negras=12;

char otra_ficha(char A){
char R;
if (A == 'N') R = 'B';
else R = 'N';
return R;
}


void dibujar_matriz(){

system("CLS");
printf (" 0 1 2 3 4 5 6 7 n");
printf (" %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cn",
218,196,194,196,194,196,194,196,194,196,194,196,194,196,194,196,191);
for(int F=0;F<=7;F++){
printf("%1i %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cn",F,
179,MAT[F][0],179,MAT[F][1],179,MAT[F][2],179,MAT[F][3],179,MAT[F][4],
179,MAT[F][5],179,MAT[F][6],179,MAT[F][7],179);
if (F<7)
printf (" %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cn",
195,196,197,196,197,196,197,196,197,196,197,196,197,196,197,196,180);
else
printf (" %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cn",
192,196,193,196,193,196,193,196,193,196,193,196,193,196,193,196,217);

}
}

void cambio_fichas(){
if (FICHAS == 'N') FICHAS = 'B';
else FICHAS = 'N';
}

int movimiento_correcto_dama(){
int R = 0;
if (FIL1 >= 0 and FIL1 <=7 and COL1 >=0 and COL1 <=7 and
FIL2 >= 0 and FIL2 <=7 and COL2 >=0 and COL2 <=7 and
MAT[FIL2][COL2] == ' ' and
((FIL2 == FIL1 - 1 and COL2 == COL1 - 1) or
(FIL2 == FIL1 + 1 and COL2 == COL1 - 1) or
(FIL2 == FIL1 + 1 and COL2 == COL1 + 1) or
(FIL2 == FIL1 - 1 and COL2 == COL1 + 1) or
(FIL2 == FIL1 - 2 and COL2 == COL1 - 2 and MAT[FIL1 - 1][COL1 - 1] == otra_ficha(MAT[FIL1][COL1])) or
(FIL2 == FIL1 + 2 and COL2 == COL1 - 2 and MAT[FIL1 + 1][COL1 - 1] == otra_ficha(MAT[FIL1][COL1])) or
(FIL2 == FIL1 + 2 and COL2 == COL1 + 2 and MAT[FIL1 + 1][COL1 + 1] == otra_ficha(MAT[FIL1][COL1])) or
(FIL2 == FIL1 - 2 and COL2 == COL1 + 2 and MAT[FIL1 - 1][COL1 + 1] == otra_ficha(MAT[FIL1][COL1])))){
R = 1;
}
}


int realizar_movimiento_dama(){
int R = 0;
MAT[FIL2][COL2] = MAT[FIL1][COL1];
MAT[FIL1][COL1] = ' ';
if (FIL2 == FIL1 - 2 and COL2 == COL1 - 2 and MAT[FIL1 - 1][COL1 - 1] == otra_ficha(MAT[FIL1][COL1])){
MAT[FIL1 - 1][COL1 - 1] = ' ';
}
if (FIL2 == FIL1 + 2 and COL2 == COL1 - 2 and MAT[FIL1 + 1][COL1 - 1] == otra_ficha(MAT[FIL1][COL1])){
MAT[FIL1 + 1][COL1 - 1] = ' ';
}
if (FIL2 == FIL1 + 2 and COL2 == COL1 + 2 and MAT[FIL1 + 1][COL1 + 1] == otra_ficha(MAT[FIL1][COL1])){
MAT[FIL1 + 1][COL1 + 1] = ' ';
}
if (FIL2 == FIL1 - 2 and COL2 == COL1 + 2 and MAT[FIL1 - 1][COL1 + 1] == otra_ficha(MAT[FIL1][COL1])){
MAT[FIL1 - 1][COL1 + 1] = ' ';
}
cambio_fichas();

}

void introducir_movimiento(){
printf("Mueven %cn",FICHAS);
printf("BLANCAS %in",Blancas);
printf("NEGRAS %in",Negras);
printf("Introduzca fila columna origen :");
scanf ("%i",&FIL1);
scanf("%i",&COL1);
printf("ntroduzca fila columna destino :");
scanf ("%i",&FIL2);
scanf("%i",&COL2);
}





main(){

SEGUIR = 1;
while (SEGUIR){
dibujar_matriz();
introducir_movimiento();
if (FIL1 < 0 or FIL2 < 0 or COL1 < 0 or COL2 < 0) SEGUIR = 0;
else {
if (movimiento_correcto_dama()){
realizar_movimiento_dama();
}



}
}
system("PAUSE");


}

Les agradeceria vuestra ayuda si es posible.
Y si alguien me puede indicar lo que tengo que hacer para el movimiento de las reinas.
Muchas gracias

JuaQ
13 de Mayo del 2010
no salen los #includes #include
#include /
#include /
#include /
#include /
y el codigo sale con barras '/' que no tocan.

JuaQ
13 de Mayo del 2010
los includes son stdio.h y stdlib.h