Commit 89190682 by Silvia Barrientos

Tarea

parents
Instrucciones
Por consola
-Abrir la consola.
-Ubicarse donde se encuentra el archivo .c
-Ejecutar el comando gcc nombreArchivo(ta-te-ti.c) para compilar
-Ejecutar el comando ./a.out para ejecutar el archivo
Observaciones
-El programa no esta terminado.
#include <stdio.h>
#include <string.h>
#define CRUZ 'X'
#define CARA 'O'
#define VACIO ' '
#define TRES 3
#define ABC "ABC"
void imprimirCabecera();
void imprimirTabla(char [][TRES]);
char validarJugada(char [][TRES], char, int, char);
int fila(char [][TRES]);
int columna(char [][TRES]);
int diagonalPrincipal(char [][TRES]);
int diagonalSecundaria(char [][TRES]);
char turnoVal(char);
int main(void){
char matriz[TRES][TRES] = {{VACIO, VACIO, VACIO},{VACIO, VACIO, VACIO},{VACIO, VACIO, VACIO}};
char ganador = VACIO;
imprimirCabecera();
imprimirTabla(matriz);
ganador = validarJugada(matriz, CRUZ, 0, VACIO);
if(ganador == VACIO){
printf("\nEMPATE\nFIN DEL JUEGO\n");
}else if(ganador == CRUZ){
printf("\nGANADOR %c: \nFIN DEL JUEGO\n", ganador);
}else if(ganador == CARA){
printf("\nGANADOR %c: \nFIN DEL JUEGO\n", ganador);
}
return 0;
}
/*IMPRIME LA CABECERA*/
void imprimirCabecera(){
printf("\n Bienvenidos al TA-TE-TI de <Silvia Barrientos> del BootCamp 008 de Roshka.\n");
}
/*IMPRIME LA TABLA DE JUEGO*/
void imprimirTabla(char mat[][TRES]){
printf("\n\t 1 2 3\n");
for(int i = 0; i < TRES; i++){
printf("\n%c\t %c | %c | %c \n", ABC[i], mat[i][0], mat[i][1], mat[i][2]);
if(i < 2) {
printf("\t---|---|---");
}
}
printf("\n");
}
/*VALIDACIÓN PARCIAL DE LAS JUGADAS*/
char validarJugada(char mat[][TRES], char turno, int contador, char ganador){
char jugada[2];
if((contador >= TRES*TRES) || (ganador != VACIO)){
return ganador;
}else{
printf("%c -> Ingrese jugada: ", turno);
scanf("%s", jugada);
if( strcmp(jugada, "A1") == 0)
if(mat[0][0] == VACIO){
mat[0][0] = turno;
contador++;
}else{
printf("\nERR: Jugada Inválida - Casilla Ocupada\n");
}
else if( strcmp(jugada, "A2") == 0 )
if(mat[0][1] == VACIO){
mat[0][1] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "A3") == 0 )
if(mat[0][2] == VACIO){
mat[0][2] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "B1") == 0 )
if(mat[1][0] == VACIO){
mat[1][0] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "B2") == 0 )
if(mat[1][1] == VACIO){
mat[1][1] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "B3") == 0 )
if(mat[1][2] == VACIO){
mat[1][2] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "C1") == 0 )
if(mat[2][0] == VACIO){
mat[2][0] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "C2") == 0 )
if(mat[2][1] == VACIO){
mat[2][1] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
else if( strcmp(jugada, "C3") == 0 )
if(mat[2][2] == VACIO){
mat[2][2] = turno;
contador++;
}else{
printf("ERR: Jugada Inválida - Casilla Ocupada");
}
imprimirTabla(mat);
if(fila(mat)==0 || columna(mat)==0 || diagonalPrincipal(mat)==0 || diagonalSecundaria(mat)==0){
ganador = turno;
}
turno = turnoVal(turno);
validarJugada(mat, turno, contador++, ganador);
}
}
//Cambia turno de jugador
char turnoVal(char t){
if(t == CRUZ){
return CARA;
}else{
return CRUZ;
}
}
int fila(char mat[][TRES]){
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;
}else{
bandera = 0;
}
}
}
return bandera;
}
int columna(char mat[][TRES]){
int bandera = 0;
for(int fila = 0; fila < TRES - 1; fila++){
for(int columna = 0; columna < TRES; columna++){
if( mat[fila][columna] == mat[fila + 1][columna] ) {
bandera = 1;
}else{
bandera = 0;
}
}
}
return bandera;
}
int diagonalPrincipal(char mat[][TRES]){
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;
}
}
return bandera;
}
int diagonalSecundaria(char mat[][TRES]){
int bandera = 0;
int columna = TRES - 1;
for(int fila = 0; fila < TRES - 1; fila++){
if( mat[fila][columna - fila] == mat[fila + 1][columna - (fila + 1)] ) {
bandera = 1;
}else{
bandera = 0;
}
}
return bandera;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment