//Ni mas ni menos que el unico y el inolvidable JUEGO DEL GATO

#include<stdio.h>
#include<conio.h>

char x[9];

void tablero(char i,char letra)
{
switch(i)
{
case 0:gotoxy(29,9);break;
case 1:gotoxy(38,9);break;
case 2:gotoxy(48,9);break;
case 3:gotoxy(29,13);break;
case 4:gotoxy(38,13);break;
case 5:gotoxy(48,13);break;
case 6:gotoxy(29,17);break;
case 7:gotoxy(38,17);break;
case 8:gotoxy(48,17);break;
}
textcolor(14);
cprintf("%c",letra);
}

char revisa(char j)
{
char s=0;
if(x[0]==j&x[1]==j&x[2]==j)s=1;
if(x[3]==j&x[4]==j&x[5]==j)s=1;
if(x[6]==j&x[7]==j&x[8]==j)s=1;
if(x[0]==j&x[3]==j&x[6]==j)s=1;
if(x[1]==j&x[4]==j&x[7]==j)s=1;
if(x[2]==j&x[5]==j&x[8]==j)s=1;
if(x[0]==j&x[4]==j&x[8]==j)s=1;
if(x[2]==j&x[4]==j&x[6]==j)s=1;
if(s==0)
{
s=2;
for(char i=0;i<=8;i++)
if(x[i]==0){ s=0; break; }
}
return s;
}

void main()
{
clrscr();
textcolor(14);
gotoxy(30,3);cprintf("El GATO DEL PACO");
textcolor(1);
gotoxy(25,7);cprintf( " 0 ³ 1 ³ 2 ");
gotoxy(25,8);cprintf( " ³ ³ ");
gotoxy(25,9);cprintf( " ³ ³ ");
gotoxy(25,10);cprintf( "ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ");
gotoxy(25,11);cprintf( " 3 ³ 4 ³ 5 ");
gotoxy(25,12);cprintf( " ³ ³ ");
gotoxy(25,13);cprintf( " ³ ³ ");
gotoxy(25,14);cprintf( "ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ");
gotoxy(25,15);cprintf( " 6 ³ 7 ³ 8 ");
gotoxy(25,16);cprintf( " ³ ³ ");
gotoxy(25,17);cprintf( " ³ ³ ");
char z;
for(char i=0;i<=8;i++) x[i]=0;
while(1)
{
while(1)
{
gotoxy(15,19);printf("ELIJA CASILLA DEL JUGADOR 1: ");
scanf("%d",&z);
if(x[z]==0&z>=0&z<9){ x[z]=1; tablero(z,'x'); break; }
else
{
gotoxy(15,19);printf(" CASILLA OCUPADA ");
getch();
}
}
z=revisa(1);
if(z==1)
{
gotoxy(15,19);printf(" GANO EL JUGADOR 1 ");getch(); break;
}
if(z==2)
{
gotoxy(15,19);printf(" EMPATE ");getch();break;
}
while(1)
{
gotoxy(15,19);printf("ELIJA CASILLA DEL JUGADOR 2: ");
scanf("%d",&z);
if(x[z]==0&z>=0&z<9){ x[z]=2; tablero(z,'o'); break; }
else
{
gotoxy(15,19);printf(" CASILLA OCUPADA ");
getch();
}
}
z=revisa(2);
if(z==1)
{
gotoxy(15,19);printf(" GANO EL JUGADOR 2 ");getch();break;
}
if(z==2)
{
gotoxy(15,19);printf(" EMPATE ");getch();break;
}
}
}