El jugador 1 utiliza las 'X'
El Jugador 2 utiliza los 'O' como fichas respectivamente
Estoy teniendo un problema al comparar el valor de estos chars cuando tengo que hacer un IF de 4 condiciones para verificar si hay 4 en línea diagonal, ya sea diagonal invertida o normal. Es decir, había hecho el MISMO código en enteros, pero ahora cuando lo paso a CHAR No me está funcionando, es decir el algoritmo está bien hecho, pero hay algo que me está fallando en alguna condición.
A continuación les dejo el código de la función donde estaría teniendo problemas y no me estaría funcionando.
Solo adjunto esa parte del código.
Es un tablero de 10x10
donde ultimaPosicion =3
DESDE YA MUCHAS GRACIAS A LOS QUE TOMAN SU TIEMPO PARA INTENTAR AYUDARME, SE AGRADECE.
Código
void diagonal(char cuadro[][numeroDeColumnas]) // 4 en linea diagonal { int filasARecorrer = numeroDeFilas - ultimaPosicion; int i,j; for (i=0;i<filasARecorrer;i++) { for(j=numeroDeColumnas;j>ultimaPosicion;j--) { if (cuadro[i][j]=='X' && cuadro[i+1][j-1]=='X' && cuadro[i+2][j-2]=='X' && cuadro[i+3][j-3]=='X') // Si el Jugador 1 hace 4 en linea diagonal { cout << "El jugador 1 gana!" << endl; ganador=true; } if (cuadro[i][j]=='O' && cuadro[i+1][j-1]=='O' && cuadro[i+2][j-2]=='O' && cuadro[i+3][j-3]=='O') // Si el Jugador 2 hace 4 en linea Diagonal { cout << "El jugador 2 gana!" << endl; ganador=true; } } } }