giganciprogramowania

l9 gra rpg po 9 lekcji

Oct 27th, 2023
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7.  
  8. class Entity
  9. {
  10. private:
  11.  
  12. string name;
  13. int health;
  14. int maxHealth;
  15. int damage;
  16.  
  17. public:
  18.  
  19. Entity(string entityName)
  20. {
  21. name = entityName;
  22. maxHealth = 10;
  23. health = maxHealth;
  24. damage = 2;
  25. }
  26.  
  27. string get_name()
  28. {
  29. return name;
  30. }
  31.  
  32. int get_health()
  33. {
  34. return health;
  35. }
  36.  
  37. int get_max_health()
  38. {
  39. return maxHealth;
  40. }
  41.  
  42. int get_damage()
  43. {
  44. return damage;
  45. }
  46.  
  47. void lower_health(int value)
  48. {
  49. health -= value;
  50. if (health < 0)
  51. {
  52. health = 0;
  53. }
  54. }
  55. void add_health(int value)
  56. {
  57. health += value;
  58. if (health > maxHealth)
  59. {
  60. health = maxHealth;
  61. }
  62. }
  63. };
  64.  
  65. class Player : public Entity
  66. {
  67. private:
  68.  
  69. int metal;
  70. int oxygen;
  71.  
  72. public:
  73.  
  74. Player(string playerName) : Entity(playerName)
  75. {
  76. metal = 0;
  77. oxygen = 100;
  78. }
  79.  
  80. Player() : Entity("John")
  81. {
  82.  
  83. }
  84.  
  85. int get_metal()
  86. {
  87. return metal;
  88. }
  89.  
  90. int get_oxygen()
  91. {
  92. return oxygen;
  93. }
  94.  
  95. void display_player_info()
  96. {
  97. cout << "Stan gracza" << endl;
  98. cout << "------------------------------------------------" << endl;
  99. cout << "Życie: " << get_health() << "/" << get_max_health() << endl;
  100. cout << "Atak: " << get_damage() << endl;
  101. cout << "Tlen: " << oxygen << "%" << endl;
  102. cout << "Metal: " << metal << "/50" << endl;
  103. }
  104.  
  105. void rest()
  106. {
  107. cout << get_name() << " odpoczywa. Zużycie 2% tlenu." << endl << endl;
  108. lower_oxygen(2);
  109. add_health(5);
  110. display_player_info();
  111. }
  112.  
  113. void lower_oxygen(int value)
  114. {
  115. oxygen -= value;
  116. }
  117.  
  118. void add_oxygen(int value)
  119. {
  120. if(oxygen + value > 100)
  121. {
  122. oxygen = 100;
  123. }
  124. else
  125. {
  126. oxygen += value;
  127. }
  128. }
  129.  
  130. void add_metal(int value)
  131. {
  132. metal += value;
  133. }
  134. };
  135.  
  136. class Game
  137. {
  138. private:
  139.  
  140. Player player;
  141.  
  142.  
  143. public:
  144.  
  145. Game(string playerName)
  146. {
  147. player = Player(playerName);
  148. cout << player.get_name() << endl;
  149. }
  150.  
  151. void start_game()
  152. {
  153. cout << "------------------------------------------------" << endl;
  154. cout << "Rozbiłeś się na księżycu!" << endl;
  155. cout << "Twoim zadaniem jest przetrwanie i zdobycie wystarczająco dużo surowców by zbudować statek do domu." << endl;
  156. cout << "Uważaj na zapasy swojego tlenu, bez niego nie możesz kontynuować gry." << endl ;
  157. cout << "Powodzenia " << player.get_name() << "!" << endl << endl;
  158.  
  159. player.display_player_info();
  160.  
  161. bool gameRunning = true;
  162. int playerChoice;
  163.  
  164. while(gameRunning)
  165. {
  166. print_main_menu();
  167. cout << "Wpisz numer: ";
  168. cin >> playerChoice;
  169.  
  170. switch (playerChoice)
  171. {
  172. case 1:
  173. player.display_player_info();
  174. break;
  175. case 2:
  176. player.rest();
  177. break;
  178. case 3:
  179. search_resources();
  180. if(player.get_health() <= 0)
  181. {
  182. cout << "Gracz przegrywa!" << endl;
  183. cout << "Koniec gry! Spróbuj ponownie!" << endl;
  184. gameRunning = false;
  185. }
  186. break;
  187. case 4:
  188. if(player.get_metal() >= 50)
  189. {
  190. cout << "Gracz wygrywa!" << endl;
  191. cout << "Pomyślnie zbudowałeś statek i wydostałeś się z księżyca!" << endl;
  192. cout << "Dzięki za gre!" << endl;
  193. }
  194. else
  195. {
  196. cout << "Nie masz wystarczająco dużo metalu by zbudować statek." << endl;
  197. }
  198. break;
  199. case 0:
  200. cout << "Koniec gry!" << endl;
  201. gameRunning = false;
  202. break;
  203. }
  204. }
  205. }
  206.  
  207. void print_main_menu()
  208. {
  209. cout << endl << "Co chcesz zrobić?" << endl;
  210. cout << "------------------------------------------------" << endl;
  211. cout << "[1] Sprawdź swój stan." << endl;
  212. cout << "[2] Odpocznij." << endl;
  213. cout << "[3] Szukaj zasobów." << endl;
  214. if (player.get_metal() >= 50)
  215. {
  216. cout << "[4] Zbuduj statek." << endl;
  217. }
  218. cout << "[0] Skończ grę." << endl;
  219. }
  220. }
Add Comment
Please, Sign In to add comment