diff --git a/ta-te-ti.c b/ta-te-ti.c index cf41485..758fb76 100644 --- a/ta-te-ti.c +++ b/ta-te-ti.c @@ -1,4 +1,5 @@ #include +#include #include #define CRUZ 'X' @@ -159,44 +160,76 @@ char turnoVal(char t){ int fila(char mat[][TRES]){ + int contadorX = 0; + int contadorO = 0; int bandera = 0; for(int fila = 0; fila < TRES; fila++){ - for(int columna = 0; columna < TRES-1; columna++){ - if( mat[fila][columna] == mat[fila][columna + 1] ) { - bandera = 1; + for(int columna = 0; columna < TRES; columna++){ + if( mat[fila][columna] == CRUZ ) { + contadorX++; + }else{ + contadorX=0; + } + if( mat[fila][columna] == CARA ) { + contadorO++; }else{ - bandera = 0; + contadorO=0; } } } + if((contadorX == TRES) || (contadorO == TRES)){ + bandera = 1; + } return bandera; } int columna(char mat[][TRES]){ + + int contadorX = 0; + int contadorO = 0; int bandera = 0; - for(int fila = 0; fila < TRES - 1; fila++){ + for(int fila = 0; fila < TRES; fila++){ for(int columna = 0; columna < TRES; columna++){ - if( mat[fila][columna] == mat[fila + 1][columna] ) { - bandera = 1; + if( mat[fila][columna] == CRUZ ) { + contadorX++; }else{ - bandera = 0; + contadorX=0; + } + if( mat[fila][columna] == CARA ) { + contadorO++; + }else{ + contadorO=0; } } } + if((contadorX == TRES) || (contadorO == TRES)){ + bandera = 1; + } return bandera; } int diagonalPrincipal(char mat[][TRES]){ + int contadorX = 0; + int contadorO = 0; int bandera = 0; - for(int fila = 0; fila < TRES - 1; fila++){ - if( mat[fila][fila] == mat[fila + 1][fila + 1] ) { - bandera = 1; - }else{ - bandera = 0; - } + for(int fila = 0; fila < TRES; fila++){ + + if( mat[fila][fila] == CRUZ ) { + contadorX++; + }else{ + contadorX=0; + } + if( mat[fila][fila] == CARA ) { + contadorO++; + }else{ + contadorO=0; + } + } + if((contadorX == TRES) || (contadorO == TRES)){ + bandera = 1; } return bandera; } @@ -205,16 +238,30 @@ int diagonalPrincipal(char mat[][TRES]){ int diagonalSecundaria(char mat[][TRES]){ int bandera = 0; + int contadorX = 0; + int contadorO = 0; + int contador = 1; int columna = TRES - 1; - for(int fila = 0; fila < TRES - 1; fila++){ + for(int fila = 0; fila < TRES; fila++){ - if( mat[fila][columna - fila] == mat[fila + 1][columna - (fila + 1)] ) { - bandera = 1; - }else{ - bandera = 0; - } + if( mat[fila][columna-fila] == CRUZ ) { + contadorX++; + }else{ + contadorX=0; + } + if( mat[fila][fila] == CARA ) { + contadorO++; + + }else{ + contadorO=0; + } + } + if((contadorX == TRES) || (contadorO == TRES)){ + bandera = 1; } return bandera; } + +