Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created May 21, 2021 18:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/f26c5d358b81bcf16b4f36b4c48ae5b0 to your computer and use it in GitHub Desktop.
Save parzibyte/f26c5d358b81bcf16b4f36b4c48ae5b0 to your computer and use it in GitHub Desktop.
/*
Esta función cuenta y te dice el mayor puntaje, pero no te dice en cuál X ni cuál Y. Está pensada
para ser llamada desde otra función que lleva cuenta de X e Y
*/
static int contarSinSaberCoordenadas(char jugador, char[][] copiaTablero) {
int conteoMayor = 0;
int x, y;
for (y = 0; y < FILAS; y++) {
for (x = 0; x < COLUMNAS; x++) {
// Colocamos y contamos el puntaje
int conteoTemporal;
conteoTemporal = contarHaciaArriba(x, y, jugador, copiaTablero);
if (conteoTemporal > conteoMayor) {
conteoMayor = conteoTemporal;
}
conteoTemporal = contarHaciaArribaDerecha(x, y, jugador, copiaTablero);
if (conteoTemporal > conteoMayor) {
conteoMayor = conteoTemporal;
}
conteoTemporal = contarHaciaDerecha(x, y, jugador, copiaTablero);
if (conteoTemporal > conteoMayor) {
conteoMayor = conteoTemporal;
}
conteoTemporal = contarHaciaAbajoDerecha(x, y, jugador, copiaTablero);
if (conteoTemporal > conteoMayor) {
conteoMayor = conteoTemporal;
}
}
}
return conteoMayor;
}
/*
Esta función complementa a contarSinSaberCoordenadas. Te dice en qué X e Y el jugador [jugador]
obtendrá el mayor puntaje si pone ahí su pieza
*/
static int[] coordenadasParaMayorPuntaje(char jugador, char[][] tableroOriginal) {
int y, x;
int conteoMayor = 0,
xConteoMayor = -1,
yConteoMayor = -1;
for (y = 0; y < FILAS; y++) {
for (x = 0; x < COLUMNAS; x++) {
char[][] copiaTablero = clonarMatriz(tableroOriginal);
if (!coordenadasVacias(y, x, copiaTablero)) {
continue;
}
// Colocamos y contamos el puntaje
colocarPieza(y, x, jugador, copiaTablero);
int conteoTemporal = contarSinSaberCoordenadas(jugador, copiaTablero);
if (conteoTemporal > conteoMayor) {
conteoMayor = conteoTemporal;
yConteoMayor = y;
xConteoMayor = x;
}
}
}
return new int[]{conteoMayor, xConteoMayor, yConteoMayor};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment