//programa para jugar al gato
#include <stdio.h>
#include <conio.h>
#include <graphics.h>

void inigraf(),fingraf();

void main()
{
 int m,ancx,xi,yi,xf,yf,ren,col;
 char opc,tec;
 char cad[20];
 int casilla[3][3],gana,numjug;
 inigraf();
 do
 {
  setbkcolor(0);  //color de fondo negro
  setfillstyle(3,7); //relleno diagonales, color gris
  bar(0,0,639,479);
  setcolor(15);
  setlinestyle(0,0,1); //linea delgada normal
  for(m=1;m<20;m++) rectangle(m,m,639-m,479-m);
  settextstyle(4,0,4); //letra gotica
  strcpy(cad,"GATO");
  ancx=textwidth(cad);
  setcolor(14);
  outtextxy((639-ancx)/2,30,cad);
  setlinestyle(0,0,3); //linea gruesa
  setcolor(10);
  setfillstyle(1,4);
  bar(170,90,470,390);
  rectangle(170,90,470,390);
  for(m=1;m<3;m++) line(170+100*m,90,170+100*m,390);
  for(m=1;m<3;m++) line(170,90+100*m,470,90+100*m);
  setcolor(15);
  xi=170; yi=90; xf=270; yf=190;
  rectangle(xi,yi,xf,yf);
  for(ren=1;ren<=3;ren++)
   for(col=1;col<=3;col++)
    casilla[ren][col]=0;
  gana=0;
  numjug=1;
  do
  {
   do
   {
    tec=getch();
    sound(600);
    delay(5);
    nosound();
    sound(100);
    delay(5);
    nosound();
    setcolor(10);
    rectangle(xi,yi,xf,yf);
    switch(tec)
    {
     case 72:
      yi=yi-100; if(yi<90) yi=90; yf=yi+100; break;/*tecla arriba*/
     case 80:
      yi=yi+100; if(yi>290) yi=290; yf=yi+100; break;/*tecla abajo*/
     case 75:
      xi=xi-100; if(xi<170) xi=170; xf=xi+100; break;/*tecla izquierda*/
     case 77:
      xi=xi+100; if(xi>370) xi=370; xf=xi+100; break;/*tecla derecha*/
    }
    setcolor(15);
    rectangle(xi,yi,xf,yf);
   }while(tec!=13);
   setcolor(14);
   if(numjug==1)
   {
    line(xi+20,yi+20,xf-20,yf-20);
    line(xi+20,yi+21,xf-20,yf-19);
    line(xi+20,yi+22,xf-20,yf-18);
    line(xf-20,yi+20,xi+20,yf-20);
    line(xf-20,yi+21,xi+20,yf-19);
    line(xf-20,yi+21,xi+20,yf-18);
    numjug=2;
   }
   else
    {
     circle((xi+xf)/2,(yi+yf)/2,30);
     circle((xi+xf)/2,(yi+yf)/2,31);
     circle((xi+xf)/2,(yi+yf)/2,32);
     numjug=1;
    }
  }while(gana==0);
  opc=getch();
 }while(opc!=27);
 fingraf();
}

void inigraf()
{
 int ag=DETECT,mg;
 initgraph(&ag,&mg,"c:\\borlandc\\bgi");
}

void fingraf()
{
 closegraph();
}