Lógica del juego 4.5: Función noEsComidaAlMover - aigora/twIE_2021-chkr_s-l GitHub Wiki
bool noEsComidaAlMover(int tablero[], int pieza, int posicion, int turno);
La función noEsComidaAlMover toma el tablero, donde se encuentra la información de que tipo de pieza hay en cada casilla; la pieza que se quiere saber si es comida; la posición en la que se quiere saber si es comida y el turno actual.
La función devuelve false si la pieza no es comida y true si sí lo es.
Lo primero que hace la función es sacar una copia del tablero pero con la pieza movida a la posición indicada.
for (i=0; i<32; i++) //Para cada casilla
{
if (pieza == i) { tablero1[i] = 2; } //Si la casilla esa donde está la pieza bórrala
else if (posicion == i) {tablero1[i] = tablero[pieza]; }//Si la casilla es la posición pon la pieza en ese lugar
else { tablero1[i] = tablero[i]; } //Deja el resto del tablero igual
}
Tras esto se mira si la pieza es comida y devuelve la respuesta.
nComidas = puedeComer(tablero1, turno + 1, comidasPosibles);
if (nComidas != -1) //Si en el siguiente turno el oponente puede comer
{
for (i=0; i<=nComidas; i++) //Para cada comida que puede hacer
{
if (posicion == comidasPosibles[i][1] || pieza == comidasPosibles[i][2]) { return false; } //Si la pieza es
//comida
}
}
return true;