#include #include #include #include #include #include struct segment {int dir, x, y;}; struct segment segments[2520]; void definedir() { if (key == 80) { segments[0].dir = up; } if (key == 72) { segments[0].dir = down; } if (key == 77) { segments[0].dir = right; } if (key == 75) { segments[0].dir = left; } } void movehead() { if (segments[0].dir == up) { segments[0].x; segments[0].y+10; } if (segments[0].dir == down) { segments[0].x; segments[0].y-10; { if (segments[0].dir == right) { segments[0].x+10; segments[0].y; } if (segments[0].dir == left) { segments[0].x-10; segments[0].y; } } void main (void) { int gdriver = DETECT, gmode, errorcode; initgraph (&gdriver, &gmode, "C:\\BC\\BGI"); errorcode = graphresult(); if (errorcode != grOk) { clrscr (); printf ("Graphics error: %s\n", grapherrormsg (errorcode)); printf ("Press any key to halt"); getch (); exit (1); } ////////////////////////////////////////////////////////////////// int x1, y1, l, m; randomize(); rectangle (13, 13, 627, 397); /*l = random (62); m = random (39); if (l == 0) l+10; if (l == 62) l-10; if (m == 0) m+10; if (m == 39) m-10; x1 = l*10; y1 = m*10;*/ int key; segments[0].x = 310; segments[0].y = 200; setcolor (7); circle (segments[0].x, segments[0].y, 5); int up, down, left, right, length, score = 0; while (key!=27) { if (kbhit()) key = getch(); definedir(); delay (150); movehead(); setcolor(7); circle (segments[0].x, segments[0].y, 5); } getch(); closegraph(); } } }