rod1231234

snakewindows

Oct 28th, 2011
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <windows.h>
  5. #include <conio.h>
  6. void gotoxy(int x, int y)
  7. {
  8.     COORD c;
  9.     c.X = x - 1;
  10.     c.Y = y - 1;
  11.     SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
  12. }
  13. struct andar
  14. {
  15.     int x;
  16.     int y;
  17. };
  18. int main (void)
  19. {
  20.     int a,b,c=1,d,e,i,j,x;
  21.     srand(time(NULL));
  22.     struct andar cabeca,corpo1,corpo2,corpo3,corpo4,corpo5;
  23.     cabeca.x=10;
  24.     cabeca.y=10;
  25.     corpo1.x=9;
  26.     corpo1.y=10;
  27.     corpo2.x=8;
  28.     corpo2.y=10;
  29.     corpo3.x=7;
  30.     corpo3.y=10;
  31.     corpo4.x=6;
  32.     corpo4.y=10;
  33.     gotoxy(26,1);
  34.     printf("INSIRA A VELOCIDADE DA COBRA:");
  35.     gotoxy(15,2);
  36.     printf("VELOCIDADE:");
  37.     fflush(stdin);
  38.     scanf("%d",&a);
  39.     fflush(stdin);
  40.     system("cls");
  41.     switch (a)
  42.     {
  43.         case 1:x=50;break;
  44.     }
  45.     do
  46.     {
  47.         gotoxy(cabeca.x,cabeca.y);
  48.         printf("%c",178);
  49.         gotoxy(corpo1.x,corpo1.y);
  50.         printf("%c",178);
  51.         gotoxy(corpo2.x,corpo2.y);
  52.         printf("%c",177);
  53.         gotoxy(corpo3.x,corpo3.y);
  54.         printf("%c",177);
  55.         gotoxy(corpo4.x,corpo4.y);
  56.         printf("%c",176);
  57.         gotoxy(corpo5.x,corpo5.y);
  58.         printf(" ");
  59.         corpo5=corpo4;
  60.         corpo4=corpo3;
  61.         corpo3=corpo2;
  62.         corpo2=corpo1;
  63.         corpo1=cabeca;
  64.         if(cabeca.x!=80 && cabeca.x!=1 && cabeca.y!=1 && cabeca.y!=25)
  65.         {
  66.         b=rand() %20;
  67.         switch(b)
  68.         {
  69.             case 0:c--;break;
  70.             case 19:c++;break;
  71.         }
  72.         if(c==-1) c=3;
  73.         if(c==4) c=0;
  74.         switch(c)
  75.         {
  76.             case 0:cabeca.y--;break;//cima
  77.             case 1:cabeca.x++;break;//direita
  78.             case 2:cabeca.y++;break;//baixo
  79.             case 3:cabeca.x--;break;//esquerda
  80.         }
  81.         }
  82.         else
  83.         {
  84.         if(cabeca.x==80)
  85.         {
  86.             if(cabeca.x==80 && cabeca.y==1)
  87.             {}
  88.             if(cabeca.x==80 && cabeca.y==25)
  89.             {
  90.                 if(c==1 || c==2)
  91.                 {
  92.                     if(c==1)
  93.                         c=0;
  94.                     if(c==2)
  95.                         c=3;
  96.                 }
  97.                 else
  98.                 {
  99.                     e=rand() %100;
  100.                     switch(e)
  101.                     {
  102.                     case 2:c=3;break;
  103.                     }
  104.                 }
  105.             }
  106.             else
  107.             {
  108.             if(c==1)
  109.             {
  110.                 d=rand() %2;
  111.                 switch(d)
  112.                 {
  113.                     case 0:c--;break;
  114.                     case 1:c++;break;
  115.                 }
  116.             }
  117.             else
  118.             {
  119.                 e=rand() %100;
  120.                 switch(e)
  121.                 {
  122.                     case 2:c=3;break;
  123.                 }
  124.             }
  125.             }
  126.         }
  127.         if(cabeca.x==1)
  128.         {
  129.             if(cabeca.x==1 && cabeca.y==25)
  130.             {}
  131.             if(cabeca.x==1 && cabeca.y==1)
  132.             {
  133.                 if(c==3 || c==0)
  134.                 {
  135.                     if(c==3)
  136.                         c=2;
  137.                     if(c==0)
  138.                         c=1;
  139.                 }
  140.                 else
  141.                     {
  142.                         e=rand() %100;
  143.                         switch(e)
  144.                         {
  145.                         case 2:c=3;break;
  146.                         }
  147.                     }
  148.             }
  149.             else
  150.             {
  151.                 if(c==3)
  152.                 {
  153.                     d=rand() %2;
  154.                     switch(d)
  155.                     {
  156.                         case 0:c--;break;
  157.                         case 1:c++;break;
  158.                     }
  159.  
  160.                 }
  161.                 else
  162.                 {
  163.                     e=rand() %100;
  164.                     switch(e)
  165.                     {
  166.                         case 2:c=1;break;
  167.                     }
  168.                 }
  169.             }
  170.         }
  171.         if(cabeca.y==25)
  172.         {
  173.             if(cabeca.x==80 && cabeca.y==25)
  174.             {}
  175.             if(cabeca.x==1 && cabeca.y==25)
  176.             {
  177.                 if(c==3 || c==2)
  178.                 {
  179.                     if(c==3)
  180.                         c=0;
  181.                     if(c==2)
  182.                         c=1;
  183.  
  184.                 }
  185.                 else
  186.                     {
  187.                         e=rand() %100;
  188.                         switch(e)
  189.                         {
  190.                         case 2:c=3;break;
  191.                         }
  192.                     }
  193.             }
  194.             else
  195.             {
  196.                 if(c==2)
  197.                 {
  198.                     d=rand() %2;
  199.                     switch(d)
  200.                     {
  201.                         case 0:c--;break;
  202.                         case 1:c++;break;
  203.                     }
  204.                 }
  205.                 else
  206.                 {
  207.                     e=rand() %100;
  208.                     switch(e)
  209.                     {
  210.                         case 2:c=0;break;
  211.                     }
  212.                 }
  213.             }
  214.         }
  215.         if(cabeca.y==1)
  216.         {
  217.             if(cabeca.x==1 && cabeca.y==1)
  218.             {}
  219.             if(cabeca.x==80 && cabeca.y==1)
  220.             {
  221.                 if(c==1 || c==0)
  222.                 {
  223.                     if(c==1)
  224.                         c=2;
  225.                     if(c==0)
  226.                         c=3;
  227.                 }
  228.                 else
  229.                 {
  230.                     e=rand() %100;
  231.                     switch(e)
  232.                     {
  233.                     case 2:c=3;break;
  234.                     }
  235.                 }
  236.             }
  237.             else
  238.             {
  239.             if(c==0)
  240.             {
  241.                 d=rand() %2;
  242.                 switch(d)
  243.                 {
  244.                     case 0:c--;break;
  245.                     case 1:c++;break;
  246.                 }
  247.             }
  248.             else
  249.             {
  250.                 e=rand() %100;
  251.                 switch(e)
  252.                 {
  253.                     case 2:c=2;break;
  254.                 }
  255.             }
  256.             }
  257.         }
  258.         if(c==-1) c=3;
  259.         if(c==4) c=0;
  260.         switch(c)
  261.         {
  262.             case 0:cabeca.y--;break;//cima
  263.             case 1:cabeca.x++;break;//direita
  264.             case 2:cabeca.y++;break;//baixo
  265.             case 3:cabeca.x--;break;//esquerda
  266.         }
  267.         }
  268.         _sleep(x);
  269.     }while(kbhit()!=1);
  270. }
  271.  
  272.  
Advertisement
Add Comment
Please, Sign In to add comment