Advertisement
rowers

snejk2

Mar 26th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.87 KB | None | 0 0
  1. #include "GraphLib.h"
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. struct WarmSegment
  8. {
  9.     int x;
  10.     int y;
  11. };
  12.  
  13.  
  14. struct MoveDirecton
  15. {
  16.     int dx;
  17.     int dy;
  18. };
  19.  
  20.  
  21. // head is at Warm[0]
  22. struct WarmSegment Warm[100] = { { 40, 10 }, { 41, 10 }, { 42, 10 }, { 43, 10 }, { 44, 10 } };
  23. int WarmLength = 5;
  24. struct{
  25.         int x;
  26.         int y;
  27.     }owoc;
  28.  
  29. // current direction
  30. struct MoveDirecton WarmDirection = { -1, 0 };
  31.  
  32. void DrawScreen()            //rysowanie weza
  33. {
  34.  
  35.     int i;
  36.     hidecursor();
  37.  
  38.     for (i = 0; i < WarmLength; i++)
  39.     {
  40.         gotoxy(Warm[i].x, Warm[i].y);
  41.         printf("@");
  42.         gotoxy(Warm[WarmLength].x,Warm[WarmLength].y);
  43.         printf(" ");
  44.     }
  45. };
  46.  
  47. void ruch(int s) {              //ruch weza
  48.     int b;
  49.      for (b=WarmLength;b>0;b--) {
  50.         Warm[b].x=Warm[b-1].x;
  51.         Warm[b].y=Warm[b-1].y;
  52.  
  53.     }
  54.     if (s==1)
  55.         Warm[0].x=Warm[0].x-1;
  56.     else if (s==2)
  57.         Warm[0].x=Warm[0].x+1;
  58.     else if (s==3)
  59.         Warm[0].y=Warm[0].y-1;
  60.     else if (s==4)
  61.         Warm[0].y=Warm[0].y+1;
  62. };
  63.  
  64. void owoce(){                  //rysowanie owocu
  65.     int i;
  66.     owoc.x=(rand()%77)+1;
  67.     owoc.y=(rand()%22)+2;
  68.     for (i=0;i<WarmLength;i++)
  69.         if (owoc.x == Warm[i].x && owoc.y == Warm[i].y)
  70.             owoce();
  71.     gotoxy(owoc.x, owoc.y);
  72.         printf("o");
  73. };
  74. void Plansza(){              //rysowanie planszy
  75.     int i;
  76. for (i=0;i<80;i++){
  77.     gotoxy(i,1);
  78.     printf("=");
  79.     gotoxy(i,25);
  80.     printf("=");
  81. }
  82. for (i=0;i<24;i++){
  83.     gotoxy(0,i+1);
  84.     printf("|");
  85.     gotoxy(79,i+1);
  86.     printf("|");
  87. }
  88. }
  89. void main() {
  90.     int j,i,l=0;
  91.     int kierunek1=49;
  92.     int kierunek=1;
  93.     char sprawdz='c';
  94.     srand(time(NULL));              // Losowane wspolrzednych
  95.     system("pause");
  96.     system("cls");
  97.     owoce();
  98.     Plansza();
  99.     while ((sprawdz!='k') && (l<25))
  100.     {
  101.         for (j=0;j<30000000;j++);
  102.         if (kbhit())                            //wybranie kierunku poruszania
  103.         kierunek1=getch();
  104.         if ((kierunek1=='a') && kierunek != 2)
  105.             kierunek=1;
  106.         else if ((kierunek1=='d') && kierunek!=1)
  107.             kierunek=2;
  108.         else if ((kierunek1=='w') && kierunek!=4)
  109.             kierunek=3;
  110.         else if ((kierunek1=='s') && kierunek!=3)
  111.             kierunek=4;
  112.         ruch(kierunek);
  113.         DrawScreen();
  114.  
  115.         if ((Warm[0].x==owoc.x) &&(Warm[0].y==owoc.y)){                                // Punkty sa wyswietlane jeden po drugim
  116.             WarmLength+=1;
  117.             owoce();
  118.             l++;
  119.         }
  120.         for (i=1; i<=WarmLength; i++){         // zakazanie zjadania samego siebie
  121.             if ((Warm[0].x==Warm[i].x) && (Warm[0].y==Warm[i].y))
  122.                 sprawdz='k';
  123.         }
  124.         if ((Warm[0].x==0) || (Warm[0].y==1) || (Warm[0].x==79) || (Warm[0].y==25)){    //ograniczenie planszy
  125.             sprawdz='k';
  126.         }
  127.     }
  128.     system("cls");
  129.     if (sprawdz=='k')
  130.         printf("Przegrana \n");
  131.     else printf("Wygrana \n");
  132.     pause();
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement