#include "graphics.h"
#include"math.h"
#include"conio.h"
main( )
{
int driver,mode;
int x,y=60,i=1,n=1,x1,y1,a,c=1,sum=0,x2,y2;
driver=DETECT;
initgraph(&driver,&mode," ");
setbkcolor(WHITE);
setcolor(GREEN);
setfillstyle(1,GREEN);
rectangle(30,30,510,420);
bar(75,75,140,105);
bar(165,75,225,105);
bar(255,30,285,135);
bar(315,75,375,105);
bar(405,75,465,105);
bar(75,135,225,165);
bar(315,135,465,165);
bar(25,195,195,255);
bar(230,195,315,255);
bar(345,195,510,255);
bar(75,285,225,315);
bar(315,285,465,315);
bar(75,345,140,375);
bar(165,345,225,375);
bar(315,345,375,375);
bar(405,345,465,375);
outtextxy(540,60,"point:");
while(n<13)
{
i=1;
n++;
while(i<16)
{
circle(i*30+30,y,1) ;
i++; }
y=y+30;
}
x1=270,y1=330,x2=60,y2=60;
setcolor(YELLOW);
circle(x1,y1,13);
setcolor(WHITE);
circle(x1,y1,1);
circle(x2,y2,1);
setcolor(RED);
circle(x2,y2,13);
a=bioskey(0);
while(a!=283)
{
if(x1==x2&&y1==y2)
a=283;
else
setcolor(WHITE);
circle(x2,y2,13);
circle(x2,y2,1);
if(x1>x2)
x2=x2+30;
if(x1<x2)
x2=x2-30;
if(y1>y2)
y2=y2+30;
if(y1<y2)
y2=y2-30; setcolor(RED);
circle(x2,y2,13);
setcolor(WHITE);
circle(x2,y2,1);
while(kbhit()==0)
{
if(c==1)
{if(y1<90||y1==120&&x1>75&&x1<140||y1==120&&x1>165&&x1<225||y1==120&&x1>315&&x1<375||y1==120&&x1>405&&x1<465||y1==150&&x1==270||y1==180&&x1>75&&x1<225||y1==180&&x1>315&&x1<465||y1==270&&x1<195||y1==270&&x1>225&&x1<315||y1==270&&x1>345||y1==330&&x1>75&&x1<225||y1==330&&x1>315&&x1<465||y1==390&&x1==90||y1==390&&x1==120||y1==390&&x1>165&&x1<225||y1==390&&x1>315&&x1<375||y1==390&&x1>405&&x1<465)continue;
circle(x1,y1,13);y1=y1-30;setcolor(YELLOW);sum++;
circle(x1,y1,13);
setcolor(WHITE);
circle(x1,y1,1);}
if(c==2)
{if(y1>370||y1==60&&x1>75&&x1<140||y1==60&&x1>165&&x1<225||y1==60&&x1>315&&x1<375||y1==60&&x1>405&&x1<465||y1==120&&x1>75&&x1<225||y1==120&&x1>315&&x1<465||y1==180&&x1<195||y1==180&&x1>225&&x1<315||y1==180&&x1>345||y1==270&&x1>75&&x1<225||y1==270&&x1>315&&x1<465||y1==330&&x1==90||y1==330&&x1==120||y1==330&&x1>165&&x1<225||y1==330&&x1>315&&x1<375||y1==330&&x1>405&&x1<465)continue;
circle(x1,y1,13);y1=y1+30;setcolor(YELLOW);sum++;
circle(x1,y1,13);
setcolor(WHITE);
circle(x1,y1,1);}
if(c==3)
{if(x1<90||x1==300&&y1<135||x1==150&&y==90||x1==150&&y1==360||x1==240&&y1==90||x1==240&&y1==150||x1==240&&y1==300||x1==240&&y1==360||x1==210&&y1>195&&y1<255||x1==390&&y1==90||x1==390&&y1==360||x1==480&&y1==90||x1==480&&y1==150||x1==480&&y1==300||x1==480&&y1==360||x1==330&&y1>195&&y1<255)continue;
circle(x1,y1,13);x1=x1-30;setcolor(YELLOW);sum++;
circle(x1,y1,13);
setcolor(WHITE);
circle(x1,y1,1);}
if(c==4)
{if(x1>460||x1==240&&y1<135||x1==150&&y==90||x1==150&&y1==360||x1==60&&y1==90||x1==60&&y1==150||x1==60&&y1==300||x1==60&&y1==360||x1==330&&y1>195&&y1<255||x1==390&&y1==90||x1==390&&y1==360||x1==300&&y1==90||x1==300&&y1==150||x1==300&&y1==300||x1==300&&y1==360||x1==210&&y1>195&&y1<255)continue;
circle(x1,y1,13);x1=x1+30;setcolor(YELLOW);sum++;
circle(x1,y1,13);
setcolor(WHITE);
circle(x1,y1,1);}
delay(10000000);
}
if(sum>150)a=283;
else
a=bioskey(0);
if(a==18432) c=1;
if(a==20480) c=2;
if(a==19200) c=3;
if(a==19712) c=4; } return 0; getch( );
closegraph( );
}