Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <conio.h>
  4. #include <Windows.h>
  5. #include <random>
  6.  
  7. using namespace std;
  8. random_device device;
  9. mt19937 generator(device());
  10. uniform_int_distribution<int> distrbution1(1,38);
  11. uniform_int_distribution<int> distrbution2(1,18);
  12.  
  13.  
  14. bool koniecgry = false;
  15. string plansza [20][40];
  16. int preOwocX = 0;
  17. int preOwocY = 0;
  18. int owocX = 8 ;
  19. int owocY=15;
  20. int score = 0;
  21. int length = 1;
  22. char kierunek = 's';
  23. int wonrzTabX[100]= {7};
  24. int wonrzTabY[100]= {3};
  25.  
  26. void input()
  27. {
  28. if(_kbhit())
  29. {
  30. switch(_getch())
  31. {
  32. case 'a':
  33. kierunek = 'a';
  34. break;
  35. case 's':
  36. kierunek = 's';
  37. break;
  38. case 'd':
  39. kierunek = 'd';
  40. break;
  41. case 'w':
  42. kierunek = 'w';
  43. break;
  44.  
  45. }
  46. }
  47.  
  48. }
  49.  
  50. void draw()
  51. {
  52. for(int i = 0;i<20;i++)
  53. {
  54. for(int j=0;j<40;j++)
  55. {
  56. if(i==0 || i==19)
  57. {
  58. plansza[i][j] = "#";
  59. } else if (i>0 && i<19 && (j==0 || j==39))
  60. {
  61. plansza[i][j] = "#";
  62.  
  63. } else
  64. {
  65. plansza[i][j] = " ";
  66. }
  67. }
  68. }
  69. }
  70. void drawSnake()
  71. {
  72. plansza[owocY][owocX] = "R";
  73. for(int i =0;i<=length;i++)
  74. {
  75. plansza[wonrzTabY[i]][wonrzTabX[i]] = "O";
  76. }
  77.  
  78. switch(kierunek){
  79. case 'a':
  80.  
  81. for(int i=length;i>=1;i--)
  82. {
  83. wonrzTabX[i] = wonrzTabX[i-1];
  84. wonrzTabY[i] = wonrzTabY[i-1];
  85. }
  86. if(plansza[wonrzTabY[0]][wonrzTabX[0]-1] == "#" || plansza[wonrzTabY[0]][wonrzTabX[0]-1] == "O")
  87. {
  88. koniecgry = true;
  89. }
  90. wonrzTabX[0] -=1;
  91. break;
  92. case 's':
  93.  
  94. for(int i=length;i>=1;i--)
  95. {
  96. wonrzTabY[i] = wonrzTabY[i-1];
  97. wonrzTabX[i] = wonrzTabX[i-1];
  98. }
  99. if(plansza[wonrzTabY[0]+1][wonrzTabX[0]] == "#" || plansza[wonrzTabY[0]+1][wonrzTabX[0]] == "O")
  100. {
  101. koniecgry = true;
  102. }
  103. wonrzTabY[0] +=1;
  104.  
  105. break;
  106. case 'd':
  107.  
  108. for(int i=length;i>=1;i--)
  109. {
  110. wonrzTabX[i] = wonrzTabX[i-1];
  111. wonrzTabY[i] = wonrzTabY[i-1];
  112. }
  113. if(plansza[wonrzTabY[0]][wonrzTabX[0]+1] == "#" || plansza[wonrzTabY[0]][wonrzTabX[0]+1] == "O")
  114. {
  115. koniecgry = true;
  116. }
  117. wonrzTabX[0] +=1;
  118. break;
  119. case 'w':
  120.  
  121. for(int i=length;i>=1;i--)
  122. {
  123. wonrzTabY[i] = wonrzTabY[i-1];
  124. wonrzTabX[i] = wonrzTabX[i-1];
  125. }
  126. if(plansza[wonrzTabY[0]-1][wonrzTabX[0]] == "#" || plansza[wonrzTabY[0]-1][wonrzTabX[0]] == "O")
  127. {
  128. koniecgry = true;
  129. }
  130. wonrzTabY[0] -=1;
  131. break;
  132. }
  133. }
  134. void owocRandomize()
  135. {
  136. do{
  137. owocX=distrbution1(generator);
  138. owocY=distrbution2(generator);
  139. }while(plansza[owocY][owocX] == "O");
  140.  
  141. }
  142. void show()
  143. {
  144. system("cls");
  145. for(int i = 0;i<20;i++)
  146. {
  147. for(int j=0;j<40;j++)
  148. {
  149. cout<<plansza[i][j];
  150. }
  151. cout<<""<<endl;
  152. }
  153. }
  154.  
  155. void ogon()
  156. {
  157. switch(kierunek){
  158. case 'a':
  159. wonrzTabX[length] = wonrzTabX[0]+1;
  160. wonrzTabY[length] = wonrzTabY[0];
  161. break;
  162. case 's':
  163. wonrzTabX[length] = wonrzTabX[0];
  164. wonrzTabY[length] = wonrzTabY[0]-1;
  165.  
  166. break;
  167. case 'd':
  168. wonrzTabX[length] = wonrzTabX[0]-1;
  169. wonrzTabY[length] = wonrzTabY[0];
  170.  
  171. break;
  172. case 'w':
  173. wonrzTabX[length] = wonrzTabX[0];
  174. wonrzTabY[length] = wonrzTabY[0]+1;
  175.  
  176. break;
  177. }
  178. }
  179.  
  180. void logika() {
  181. if(plansza[wonrzTabY[0]][wonrzTabX[0]]== plansza[owocY][owocX])
  182. {
  183. score++;
  184. length++;
  185. owocRandomize();
  186. ogon();
  187. }
  188. }
  189.  
  190. int main()
  191. {
  192.  
  193. while(!koniecgry)
  194. {
  195. Sleep(100);
  196. input();
  197. draw();
  198. drawSnake();
  199. logika();
  200. show();
  201. cout<<"Punkty: "<<score;
  202. }
  203. system("pause");
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement