Estoy haciendo este juego. Hice el planteamiento de las comprobaciones.
La profe me dice que no es necesario recorrer toda la matriz y hacer comprobaciones innecesarias.
Esto es lo que hice.
No se cómo hacerlo de otra manera. Ayuda porfa. Me dice que solo compruebe con la fila que tenga las 4 columnas ocupadas
Adjunto la comprobación.
Trabajo en C, borland
#include <stdio.h>
#include >stdlib.h>
int comprobar_final()
{
int i,j;
int ganador; // -1: no gana nadie, 1: gana jug1, 2: gana jug2
ganador=-1;
//Comprobar si hay cuatro en horizontal
for(i=0;i<FILAS;i++)
{
for(j=0;j<COLUMNAS-3;j++)
{
if (tablero[j]==2 && tablero[j+1]==2 && tablero[j+2]==2 && tablero[j+3]==2)
ganador=2;
else if (tablero[j]==1 && tablero[j+1]==1 && tablero[j+2]==1 && tablero[j+3]==1)
ganador=1;
}
}
if (ganador==-1)
{
//Comprobar si hay cuatro en vertical
for(i=0;i<FILAS-3;i++)
{
for(j=0;j<COLUMNAS;j++)
{
if (tablero[j]==2 && tablero[i+1][j]==2 && tablero[i+2][j]==2 && tablero[i+3][j]==2)
ganador=2;
else if (tablero[j]==1 && tablero[i+1][j]==1 && tablero[i+2][j]==1 && tablero[i+3][j]==1)
ganador=1;
}
}
}
La profe me dice que no es necesario recorrer toda la matriz y hacer comprobaciones innecesarias.
Esto es lo que hice.
No se cómo hacerlo de otra manera. Ayuda porfa. Me dice que solo compruebe con la fila que tenga las 4 columnas ocupadas
Adjunto la comprobación.
Trabajo en C, borland
#include <stdio.h>
#include >stdlib.h>
int comprobar_final()
{
int i,j;
int ganador; // -1: no gana nadie, 1: gana jug1, 2: gana jug2
ganador=-1;
//Comprobar si hay cuatro en horizontal
for(i=0;i<FILAS;i++)
{
for(j=0;j<COLUMNAS-3;j++)
{
if (tablero[j]==2 && tablero[j+1]==2 && tablero[j+2]==2 && tablero[j+3]==2)
ganador=2;
else if (tablero[j]==1 && tablero[j+1]==1 && tablero[j+2]==1 && tablero[j+3]==1)
ganador=1;
}
}
if (ganador==-1)
{
//Comprobar si hay cuatro en vertical
for(i=0;i<FILAS-3;i++)
{
for(j=0;j<COLUMNAS;j++)
{
if (tablero[j]==2 && tablero[i+1][j]==2 && tablero[i+2][j]==2 && tablero[i+3][j]==2)
ganador=2;
else if (tablero[j]==1 && tablero[i+1][j]==1 && tablero[i+2][j]==1 && tablero[i+3][j]==1)
ganador=1;
}
}
}