Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <Windows.h>
  4. using namespace std;
  5. bool koniecGry;
  6. const int szerokosc = 20;
  7. const int wysokosc = 20;
  8. int xWeza, yWeza, owocX, owocY, wynik;
  9. int xOgon[100], yOgon[100];
  10. //dlugosc ogona
  11. int dlugoscOgona;
  12. enum kierunek { STOP = 0, LEWO, PRAWO, GORA, DOL };
  13. kierunek kWeza;
  14. void konfiguracja()
  15. {
  16. koniecGry = false;
  17. kWeza = STOP;
  18. xWeza = szerokosc / 2;
  19. yWeza = wysokosc / 2;
  20. owocX = rand() % szerokosc;
  21. owocY = rand() % wysokosc;
  22. wynik = 0;
  23. }
  24.  
  25. void rysuj()
  26. {
  27. system("cls");
  28.  
  29. //gorna sciana
  30. for (int i = 0; i < szerokosc+2; i++)
  31. cout << "#";
  32. cout << endl;
  33. //boczne sciany
  34. for (int i = 0; i < wysokosc; i++)
  35. {
  36. for (int j = 0; j < szerokosc; j++)
  37. {
  38. if (j == 0)
  39. cout << "#";
  40. if (i == yWeza && j == xWeza)
  41. cout << "O";
  42. else if (i == owocY && j == owocX)
  43. cout << "F";
  44. else
  45. {
  46. bool wyswietl = false;
  47.  
  48. for (int k = 0; k < dlugoscOgona; k++)
  49. {
  50. if (xOgon[k] == j && yOgon[k] == i)
  51. {
  52. cout << "o";
  53. wyswietl = true;
  54. }
  55. }
  56. if (!wyswietl)
  57. cout << " ";
  58. }
  59. //cout << " ";
  60. if (j == szerokosc - 1)
  61. cout << "#";
  62. }
  63. cout << endl;
  64. }
  65. //dolna sciana
  66. for (int i = 0; i < szerokosc+2; i++)
  67. cout << "#";
  68. cout << endl;
  69. cout << "Wynik: " << wynik << endl;
  70. }
  71.  
  72. void wejscie()
  73. {
  74. if (_kbhit())
  75. {
  76. switch (_getch())
  77. {
  78. case 'a':
  79. kWeza = LEWO;
  80. break;
  81. case 'd':
  82. kWeza = PRAWO;
  83. break;
  84. case 'w':
  85. kWeza = GORA;
  86. break;
  87. case 's':
  88. kWeza = DOL;
  89. break;
  90. case 'x':
  91. koniecGry = true;
  92. break;
  93.  
  94. default:
  95. break;
  96. }
  97. }
  98. }
  99.  
  100. void logika()
  101. {
  102. int poprzedniX = xOgon[0];
  103. int poprzedniY = yOgon[0];
  104. int poprzedni2X, poprzedni2Y;
  105. xOgon[0] = xWeza;
  106. yOgon[0] = yWeza;
  107.  
  108. for (int i = 1; i < dlugoscOgona; i++)
  109. {
  110. poprzedni2X = xOgon[i];
  111. poprzedni2Y = yOgon[i];
  112. xOgon[i] = poprzedniX;
  113. yOgon[i] = poprzedniY;
  114. poprzedniX = poprzedni2X;
  115. poprzedniY = poprzedni2Y;
  116. }
  117. switch (kWeza)
  118. {
  119. case LEWO:
  120. xWeza--;
  121. break;
  122. case PRAWO:
  123. xWeza++;
  124. break;
  125. case GORA:
  126. yWeza--;
  127. break;
  128. case DOL:
  129. yWeza++;
  130. break;
  131. default:
  132. break;
  133. }
  134. if (xWeza > szerokosc || xWeza < 0 || yWeza > wysokosc || yWeza < 0)
  135. koniecGry = true;
  136. for (int i = 0; i < dlugoscOgona; i++)
  137. if (xOgon[i] == xWeza && yOgon[i] == yWeza)
  138. koniecGry = true;
  139. if (xWeza == owocX && yWeza == owocY)
  140. {
  141. wynik = wynik + 10;
  142. owocX = rand() % szerokosc;
  143. owocY = rand() % wysokosc;
  144. dlugoscOgona++;
  145. }
  146. }
  147.  
  148.  
  149.  
  150.  
  151. int main()
  152. {
  153. konfiguracja();
  154. while (!koniecGry)
  155. {
  156. rysuj();
  157. wejscie();
  158. logika();
  159. //ustawianie szybkosci;
  160. Sleep(50);
  161. }
  162. return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement