#include #include /* TRES EN RAYA */ #define TAM 3 int main(){ // Variables int tablero[TAM][TAM]={0}; int i,j,final, fila, columna, tirada=0; char estado[1]="-"; // Variables de comprobación int ganador1=3; int ganador2=15; do{ //Muestra el estado del tablero printf("\n |\t0\t1\t2\t<< Columna\n"); printf("_____|____________________________________\n"); printf(" |\n"); for(i=0; i2){ printf("\nSolo hay filas del 0 al 2."); printf("\nVuelve a intentarlo: "); } }while (fila<-1||fila>2); printf(" Elige una columna: "); // Pedir Columna y control de nº columna correcto do{ scanf("%d", &columna); if(columna<0||columna>2){ printf("\nSolo hay columnas del 0 al 3."); printf("\nVuelve a intentarlo: "); } }while (columna<-1||columna>2); // Control si la posición está ocupada (error) o es una posición correcta if(tablero[fila][columna]!=0){ printf("\nCasilla ocupada."); printf("\nVuelve a intentarlo:\n"); }else{ tablero[fila][columna]=1; tirada=1; } }while(tirada!=1); tirada=0; //Comprobar si hay ganador o empate if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ printf("\n#########################"); printf("\n# GANADOR JUGADOR 1 #"); printf("\n#########################\n"); final=1; } if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ printf("\n#########################"); printf("\n# GANADOR JUGADOR 2 #"); printf("\n#########################\n"); final=1; } if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ printf("\n##############"); printf("\n# EMPATE #"); printf("\n##############\n"); final=1; } //Muestra el estado del tablero printf("\n |\t0\t1\t2\t<< Columna\n"); printf("_____|____________________________________\n"); printf(" |\n"); for(i=0; i2){ printf("\nSolo hay filas del 0 al 2."); printf("\nVuelve a intentarlo: "); } }while (fila<-1||fila>2); printf(" Elige una columna: "); // Pedir Columna y control de nº columna correcto do{ scanf("%d", &columna); if(columna<0||columna>2){ printf("\nSolo hay columnas del 0 al 3."); printf("\nVuelve a intentarlo: "); } }while (columna<-1||columna>2); // Control si la posición está ocupada (error) o es una posición correcta if(tablero[fila][columna]!=0){ printf("\nCasilla ocupada."); printf("\nVuelve a intentarlo:\n"); }else{ tablero[fila][columna]=5; tirada=1; } }while(tirada!=1); tirada=0; //Comprobar si hay ganador o empate if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ printf("\n#########################"); printf("\n# GANADOR JUGADOR 1 #"); printf("\n#########################\n"); final=1; } if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ printf("\n#########################"); printf("\n# GANADOR JUGADOR 2 #"); printf("\n#########################\n"); final=1; } if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ printf("\n##############"); printf("\n# EMPATE #"); printf("\n##############\n"); final=1; } }while(final!=1); return 0; }