#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;
}
#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;
}