Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  1
Language: C/C++
Code:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
typedef char ** tablero;
typedef char * puntero;

tablero crear(int m, int n) {
     tablero aux; char i;
     if ((aux = (tablero)malloc(m*sizeof(puntero))) == NULL)
          return 0;
     for (i=0; i<m; i++)
          if ((aux[i] = (puntero)malloc(n*sizeof(int))) == NULL)
               return 0;
     return aux;
}

void leer(tablero p, int m, int n) {
     int i, c, e; char z, y;
     eleccion:
     printf("\tTRIQUI\n\n");
     printf("\tDesea escoger O u X?: ");
     scanf("%c", &z);     
     if (z == 'O') {
          y = 'X';
     }
     else {
          y = 'O';
     }          
     if (z == 'O' || z == 'X') {
          for (i=0; i<5; i++) {
               printf("\n\tQue casilla desea marcar?: ");
               scanf("%d", &e);          
               if (e == 1) {
                    p[0][0] = z;
               }
               if (e == 2) {
                    p[0][1] = z;
               }
               if (e == 3) {
                    p[0][2] = z;
               }
               if (e == 4) {
                    p[0][3] = z;
               }
               if (e == 5) {
                    p[1][0] = z;
               }
               if (e == 6) {
                    p[1][1] = z;
               }
               if (e == 7) {
                    p[1][2] = z;
               }
               if (e == 8) {
                    p[1][3] = z;
               }
               if (e == 9) {
                    p[2][0] = z;
               }
               if (e == 10) {
                    p[2][1] = z;
               }
               if (e == 11) {
                    p[2][2] = z;
               }
               if (e == 12) {
                    p[2][3] = z;
               }
               if (e == 13) {
                    p[3][0] = z;
               }
               if (e == 14) {
                    p[3][1] = z;
               }
               if (e == 15) {
                    p[3][2] = z;
               }
               if (e == 16) {
                    p[3][3] = z;
               }
               for (int a=0; a<4; a++) {
                    for (int b=0; b<4; b++) {
                         if (p[0][0] == z && p[0][1] == z && p[0][2] == z || p[0][1] == z && p[0][2] == z && p[0][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                         if (p[1][0] == z && p[1][1] == z && p[1][2] == z || p[1][1] == z && p[1][2] == z && p[1][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                         if (p[2][0] == z && p[2][1] == z && p[2][2] == z || p[2][1] == z && p[2][2] == z && p[2][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                         if (p[3][0] == z && p[3][1] == z && p[3][2] == z || p[3][1] == z && p[3][2] == z && p[3][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                         if (p[0][0] == z && p[1][1] == z && p[2][2] == z || p[1][1] == z && p[2][2] == z && p[3][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                         if (p[3][0] == z && p[2][1] == z && p[1][2] == z || p[2][1] == z && p[1][2] == z && p[0][3] == z) {
                              printf ("El ganador es: %c", z);
                         }
                    }
               }
               printf("\n\tQue casilla desea marcar?: ");
               scanf("%d", &c);
               if (c == 1) {
                    p[0][0] = y;
               }
               if (c == 2) {
                    p[0][1] = y;
               }
               if (c == 3) {
                    p[0][2] = y;
               }
               if (c == 4) {
                    p[0][3] = y;
               }
               if (c == 5) {
                    p[1][0] = y;
               }
               if (c == 6) {
                    p[1][1] = y;
               }
               if (c == 7) {
                    p[1][2] = y;
               }
               if (c == 8) {
                    p[1][3] = y;
               }
               if (c == 9) {
                    p[2][0] = y;
               }
               if (c == 10) {
                    p[2][1] = y;
               }
               if (c == 11) {
                    p[2][2] = y;
               }
               if (c == 12) {
                    p[2][3] = y;
               }
               if (c == 13) {
                    p[3][0] = y;
               }
               if (c == 14) {
                    p[3][1] = y;
               }
               if (c == 15) {
                    p[3][2] = y;
               }
               if (c == 16) {
                    p[3][3] = y;
               }
               for (int a=0; a<4; a++) {
                    for (int b=0; b<4; b++) {
                         if (p[0][0] == y && p[0][1] == y && p[0][2] == y || p[0][1] == y && p[0][2] == y && p[0][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                         if (p[1][0] == y && p[1][1] == y && p[1][2] == y || p[1][1] == y && p[1][2] == y && p[1][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                         if (p[2][0] == y && p[2][1] == y && p[2][2] == y || p[2][1] == y && p[2][2] == y && p[2][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                         if (p[3][0] == y && p[3][1] == y && p[3][2] == y || p[3][1] == y && p[3][2] == y && p[3][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                         if (p[0][0] == y && p[1][1] == y && p[2][2] == y || p[1][1] == y && p[2][2] == y && p[3][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                         if (p[3][0] == y && p[2][1] == y && p[1][2] == y || p[2][1] == y && p[1][2] == y && p[0][3] == y) {
                              printf ("El ganador es: %c", y);
                         }
                    }
               }
          }
     }
     else {
          system("cls");
          goto eleccion;
     }
}

void mostrar(tablero p, int m, int n) {
     int i, j;
     for (i=0; i<m; i++) {
          for (j=0; j<n; j++) {
               printf("\t%c ", p[i][j]);
          }
          printf("\t\n\n");
     }
}

int main (char ** argv, int argc) {
     int m=4, n=4, z; tablero A;
     A = crear(m,n);
     leer(A,m,n);
     system("cls");
     printf("\tTablero\n\n");
     mostrar(A,m,n);
     A = NULL;
     return 0;
}
Comments: