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);

Argumentos:

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.

Salida:

La función devuelve false si la pieza no es comida y true si sí lo es.

¿Cómo lo hace?

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;
⚠️ **GitHub.com Fallback** ⚠️