Advertisement
W1llow

Untitled

Nov 13th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h> // getch()
  3. #include <cstdlib> // system ("cls")
  4. #include <time.h>
  5. #include <windows.h>
  6. using namespace std;
  7.  
  8. int szerokosc, wysokosc, szybkosc;
  9. int gora, dol, lewo, prawo;
  10. char pole [35][35];
  11. int wspolzednaXweza, wspolzednaYweza;
  12. int wspolzednaXjedzenia, wspolzednaYjedzenia;
  13. int dlugosc=4, historiaWspozendnejX[10000], historiaWspozendnejY[10000];
  14. int ile=0;
  15. int klawisz;
  16. char waz=219, jed=178, pd=188, pg=187, lg=201, ld=200, poz=205, pio=186;
  17. char kierunek='p';
  18.  
  19. void idzdoxy (int x, int y)
  20. {
  21. HANDLE hCon;
  22. COORD dwPos;
  23.  
  24. dwPos.X=x;
  25. dwPos.Y=y;
  26.  
  27. hCon = GetStdHandle(STD_OUTPUT_HANDLE) ;
  28. SetConsoleCursorPosition(hCon, dwPos) ;
  29. }
  30.  
  31. int zwymyslaj( int &x)
  32. {
  33. cout << "Mialo byc od 5 do 35:" << endl;
  34. cout << "Masz ostatnia szanse" << endl;
  35. cin >> x;
  36. if (x<5 || x>35 ) x = 14;
  37. }
  38.  
  39. int main()
  40. {
  41. cout << "Podaj szerokosc planszy od 5 do 35!" << endl;
  42. cin >> szerokosc;
  43. if ( szerokosc<5 || szerokosc>35 ) zwymyslaj(szerokosc);
  44.  
  45.  
  46. cout << "Podaj wysokosc planszy od 5 do 35!" << endl;
  47. cin >> wysokosc;
  48. if ( wysokosc<5 || wysokosc>35 ) zwymyslaj(wysokosc);
  49.  
  50.  
  51. cout << "Podaj szybkosc weza od 1 do 10" << endl;
  52. cin >> szybkosc;
  53. if ( szybkosc<1 || szybkosc>10 )szybkosc = 5 ;
  54.  
  55. cout << "Nasicnik klawisze ktorymi chcesz grac" << endl;
  56.  
  57. cout << "GORA" << endl;
  58. gora=getch();
  59. if(gora==224)gora=+getch();
  60. if(gora==0)gora=-getch();
  61.  
  62. cout << "DOL" << endl;
  63. dol=getch();
  64. if(dol==224)dol=+getch();
  65. if(dol==0)dol=-getch();
  66.  
  67. cout << "LEWO" << endl;
  68. lewo=getch();
  69. if(lewo==224)lewo=+getch();
  70. if(lewo==0)lewo=-getch();
  71.  
  72. cout << "PRAWO" << endl;
  73. prawo=getch();
  74. if(prawo==224)prawo=+getch();
  75. if(prawo==0)prawo=-getch();
  76.  
  77. for(int i=0 ; i<wysokosc; i++)
  78. {
  79. for(int j=0 ; j<szerokosc; j++)
  80. {
  81. pole[j][i]='p';
  82. }
  83. }
  84. srand(time(NULL));
  85.  
  86. wspolzednaXweza=rand()%szerokosc;
  87. wspolzednaYweza=rand()%wysokosc;
  88.  
  89. pole[wspolzednaXweza][wspolzednaYweza]='w';
  90.  
  91. do{
  92. wspolzednaXjedzenia=rand()%szerokosc;
  93. wspolzednaYjedzenia=rand()%wysokosc;
  94. }while(pole[wspolzednaXjedzenia][wspolzednaYjedzenia]!='p');
  95.  
  96. pole[wspolzednaXjedzenia][wspolzednaYjedzenia]='j';
  97.  
  98. system("CLS");
  99.  
  100. for(;;)
  101. {
  102. ile++;
  103. historiaWspozendnejX[ile]=wspolzednaXweza;
  104. historiaWspozendnejY[ile]=wspolzednaYweza;
  105.  
  106. pole[historiaWspozendnejX[ile-dlugosc]][historiaWspozendnejY[ile-dlugosc]]='p';
  107.  
  108. // rysowanie planszy
  109.  
  110. idzdoxy(0,0);
  111.  
  112. //gorna ramka
  113. cout << lg;
  114. for(int i=0; i<szerokosc ; i++)
  115. {
  116. cout << poz << poz;
  117. }
  118.  
  119. cout << pg;
  120.  
  121. for(int i=0; i<wysokosc ; i++)
  122. {
  123. cout << endl << pio ;
  124. for(int j=0; j<szerokosc ; j++)
  125. {
  126. if (pole[i][j]=='p') cout << " ";
  127. if (pole[i][j]=='w') cout << waz << waz;
  128. if (pole[i][j]=='j') cout << jed << jed;
  129. }
  130. cout << pio;
  131. }
  132.  
  133. cout << endl;
  134. cout << ld;
  135. for(int i=0; i<szerokosc ; i++)
  136. {
  137. cout << poz << poz;
  138. }
  139. cout << pd ;
  140. Sleep(1000/szybkosc);
  141. if(kbhit())
  142. {
  143. klawisz=getch();
  144. if (klawisz==224)klawisz+=getch();
  145. if (klawisz==0)klawisz-=getch();
  146.  
  147. if(klawisz==gora && (kierunek=='l' || kierunek=='p')) kierunek='g';
  148. if(klawisz==dol && (kierunek=='l' || kierunek=='p')) kierunek='d';
  149. if(klawisz==lewo && (kierunek=='g' || kierunek=='d')) kierunek='l';
  150. if(klawisz==prawo && (kierunek=='g' || kierunek=='d')) kierunek='p';
  151. }
  152. if(kierunek=='d') wspolzednaXweza++;
  153. if(kierunek=='g') wspolzednaXweza--;
  154. if(kierunek=='l') wspolzednaYweza--;
  155. if(kierunek=='p') wspolzednaYweza++;
  156.  
  157. if(wspolzednaXweza==szerokosc) wspolzednaXweza=0;
  158. if(wspolzednaXweza==-1) wspolzednaXweza=szerokosc-1;
  159. if(wspolzednaYweza==wysokosc) wspolzednaYweza=0;
  160. if(wspolzednaYweza==-1) wspolzednaYweza=wysokosc-1;
  161.  
  162. if (pole[wspolzednaXweza][wspolzednaYweza]=='w')
  163. {
  164. cout << endl << "KONIEC dlugosc - " << dlugosc;
  165. break;
  166. }
  167.  
  168. if (pole[wspolzednaXweza][wspolzednaYweza]=='j')
  169. {
  170. dlugosc++;
  171.  
  172. do{
  173. wspolzednaXjedzenia=rand()%szerokosc;
  174. wspolzednaYjedzenia=rand()%wysokosc;
  175. }while(pole[wspolzednaXjedzenia][wspolzednaYjedzenia]!='p');
  176.  
  177. pole[wspolzednaXjedzenia][wspolzednaYjedzenia]='j';
  178.  
  179. }
  180.  
  181.  
  182. pole[wspolzednaXweza][wspolzednaYweza]='w';
  183.  
  184. }
  185. getch();
  186. return 0 ;
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement