Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - cisar

#1
#include <stdio.h>
#include <stdlib.h>

int juego();
int main()
{

   int d, played=0;

    while(d!=2)
    {   system("cls");
      printf("Conecta 4\n------\n");
      printf("1)Jugar\n");
      printf("2)Salir\n\n");
      printf("\tJuegos jugados:%d\n", played);
       scanf("%d", &d);                //pide opción del menú.
       switch(d)
       {   case 1:
              juego();                //llama a la función juego.
              played++;              //el contador de juegos se incrementa.
          break;
          case 2:
          break;
          default:
              printf("\nError.. Solo elige 1 o 2...\n");

          break;
      }
   }
    return 0;

   }

int juego()
{
    int tablero[6][7], i, j, won=0, turno=1, seleccion;
    for(i=0;i<7;i++)
        for(j=0;j<6;j++)
            tablero[j]=0;     //Pone todo vacio
    while(!won)
    {   system("cls");
        for(i=0;i<7;i++)
            printf(" %d\t", i+1);  //imprime la numeración de las columnas
        printf("\n");
        for(i=0;i<6;i++)
        {    for(j=0;j<7;j++)                    //recorre cada espacio del tablero
                if(tablero[j]==0)
                   printf("( )\t");            //imprimiendo la matriz, y segun lo que tenga
                else if(tablero[j]==1)
                   printf("(X)\t");            //pone un espacio, X, o O
                else
                    printf("(O)\t");
            printf("\n");
        }
        if(turno==1)
            printf("\nTurno de X.");
        else
            printf("\nTurno de O.");
        printf("En que columna tiraras?");
        scanf("%d", &seleccion);
        seleccion--;  //porque esta numerado desde el 1, y la compu cuenta desde el 0.
        if(tablero[seleccion][0]!=0)
            printf("\nError columna llena o fuera de rango\n");
        else
        {   for(i=0;i<6;i++)
                if(tablero[seleccion][i+1]!=0||i==5)
                {   tablero[seleccion]=turno;   //si el espacio que sigue esta lleno, o esta en el borde, lo ocupa.
                    i=6;
                }

            for(i=0;i<7;i++)
            {   for(j=0;j<6;j++)
                {   if(tablero[j]==1||tablero[j]==2)
                       {
                            if(tablero[j]==tablero[j+1]&&tablero[j]==tablero[j+2]&&tablero[j]==tablero[j+3])
                                won=1; //checa para la derecha

                            if(tablero[j]==tablero[i+1][j]&&tablero[j]==tablero[i+2][j]&&tablero[j]==tablero[i+3][j])
                                won=1;  //checa para abajo

                            if(tablero[j]==tablero[i+1][j+1]&&tablero[j]==tablero[i+2][j+2]&&tablero[j]==tablero[i+3][j+3])
                                won=1;//diagonal a derecha
                        if(tablero[j]==tablero[i+1][j-1]&&tablero[j]==tablero[i+2][j-2]&&tablero[j]==tablero[i+3][j-3])
                                won=1; //diag izquierda
                    }
                }
            }
            if(won==1)
            {   system("cls");

                for(i=0;i<7;i++)
                    printf(" %d\t", i+1);  //imprime la numeración de las columnas
                printf("\n");
                for(i=0;i<7;i++)
                {
                    for(j=0;j<6;j++)
                        if(tablero[j]==0)
                            printf("( )\t");
                        else if(tablero[j]==1)
                            printf("(X)\t");
                        else
                            printf("(O)\t");
                    printf("\n");
                }
                printf("Bien! gano ");
                if(turno==1)
                    printf("X\n");
                else
                    printf("O\n");
            }
            if(turno==1)
                turno=2;     //cambia los turnos
            else
                turno=1;

        }
    }
    fflush(stdin);
    getchar();

    return juego;
}