-
-
Save parzibyte/55032c9e98d19152858a22b409763a0f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int elegir_mejor_columna(char jugador, vector<vector<char> > tablero) | |
{ | |
// Voy a comprobar si puedo ganar... | |
int posibleColumnaGanadora = obtener_columna_ganadora(jugador, tablero); | |
if (posibleColumnaGanadora != -1) | |
{ | |
cout << "*elijo ganar*\n"; | |
return posibleColumnaGanadora; | |
} | |
// Si no, voy a comprobar si mi oponente gana con el siguiente movimiento, para evitarlo | |
char oponente = obtener_oponente(jugador); | |
int posibleColumnaGanadoraDeOponente = obtener_columna_ganadora(oponente, tablero); | |
if (posibleColumnaGanadoraDeOponente != -1) | |
{ | |
cout << "*elijo evitar que mi oponente gane*\n"; | |
return posibleColumnaGanadoraDeOponente; | |
} | |
// En caso de que nadie pueda ganar en el siguiente movimiento, buscaré en dónde se obtiene el mayor | |
// puntaje al colocar la pieza | |
ConteoConColumna conteoConColumnaJugador = obtener_columna_en_la_que_se_obtiene_mayor_puntaje(jugador, tablero); | |
ConteoConColumna conteoConColumnaOponente = obtener_columna_en_la_que_se_obtiene_mayor_puntaje(oponente, tablero); | |
if (conteoConColumnaOponente.conteo > conteoConColumnaJugador.conteo) | |
{ | |
cout << "*elijo quitarle el puntaje a mi oponente*\n"; | |
return conteoConColumnaOponente.columna; | |
} | |
else if (conteoConColumnaJugador.conteo > 1) | |
{ | |
cout << "*elijo colocarla en donde obtengo un mayor puntaje*\n"; | |
return conteoConColumnaJugador.columna; | |
} | |
// Si no, regresar la central por si está desocupada | |
int columnaCentral = obtener_columna_central(jugador, tablero); | |
if (columnaCentral != -1) | |
{ | |
cout << "*elijo ponerla en el centro*\n"; | |
return columnaCentral; | |
} | |
// Finalmente, devolver la primera disponible de manera aleatoria | |
int columna = obtener_columna_aleatoria(jugador, tablero); | |
if (columna != -1) | |
{ | |
cout << "*elijo la primera vacía aleatoria*\n"; | |
return columna; | |
} | |
cout << "Esto no debería suceder\n"; | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment