-
-
Save parzibyte/f26c5d358b81bcf16b4f36b4c48ae5b0 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
/* | |
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