Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <windows.h>
- #include <conio.h>
- struct place
- {
- int x;
- int y;
- };
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X = x - 1;
- c.Y = y - 1;
- SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- int main(void)
- {
- struct place head, body1, body2, body3, body4, tail;
- head.x=40;
- head.y=12;
- body1.x=39;
- body1.y=12;
- body2.x=38;
- body2.y=12;
- body3.x=37;
- body3.y=12;
- body4.x=36;
- body4.y=12;
- tail.x=35;
- tail.y=12;
- int r,lag=50,dir=1;
- srand(time(NULL));
- printf("tempo de delay: ");
- scanf("%d",&lag);
- system("cls");
- fflush(stdin);
- while(kbhit()==0)
- {
- gotoxy(tail.x,tail.y);
- printf(" ");
- gotoxy(body4.x,body4.y);
- printf("%c",176);
- gotoxy(body3.x,body3.y);
- printf("%c",177);
- gotoxy(body2.x,body2.y);
- printf("%c",177);
- gotoxy(body1.x,body1.y);
- printf("%c",178);
- gotoxy(head.x,head.y);
- printf("%c",178);
- tail=body4;
- body4=body3;
- body3=body2;
- body2=body1;
- body1=head;
- r=rand() %20;
- switch (r)
- {
- case 0: dir++; break;
- case 1: dir--; break;
- }
- if(dir==-1) dir=3;
- if(dir==4) dir=0;
- switch(dir)
- {
- case 0: head.y++; break; //baixo
- case 1: head.x--; break; //esquerda
- case 2: head.y--; break; // cima
- case 3: head.x++; break; //direita
- }
- int q;
- if(head.y==1)
- {
- if(dir==2)
- q=rand() %2;
- if(q==0)
- dir++;
- else
- dir--;
- }
- else
- {
- q=rand() %5;
- if(q==0)
- dir=0;
- }
- if(head.y==25)
- {
- if(dir==0)
- q=rand() %2;
- if(q==0)
- dir++;
- else
- dir--;
- }
- else
- {
- q=rand() %5;
- if(q==0)
- dir=2;
- }
- if(head.x==1)
- {
- if(dir==1)
- q=rand() %2;
- if(q==0)
- dir++;
- else
- dir--;
- }
- else
- {
- q=rand() %5;
- if(q==0)
- dir=3;
- }
- if(head.x==80)
- {
- if(dir==3)
- q=rand() %2;
- if(q==0)
- dir++;
- else
- dir--;
- }
- else
- {
- q=rand() %5;
- if(q==0)
- dir=1;
- }
- _sleep(40);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment