Advertisement
ada1711

C++ - Lekcja 10

Sep 18th, 2023
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7.  
  8. class Hero
  9. {
  10. public:
  11.  
  12. // Atrybuty
  13. string name;
  14. int health;
  15. int strength;
  16. int intelligence;
  17. vector<string> equipment;
  18.  
  19. // Konstruktor
  20. Hero(string heroName, int heroHealth, int heroStrength, int heroIntelligence)
  21. {
  22. name = heroName;
  23. health = heroHealth;
  24. strength = heroStrength;
  25. intelligence = heroIntelligence;
  26. }
  27.  
  28. // Metody
  29.  
  30. void attack()
  31. {
  32. // Symulacja ataku
  33. cout << name << " atakuje z siłą " << strength << endl;
  34. }
  35.  
  36. void defend()
  37. {
  38. // Symulacja obrony
  39. cout << name << " broni się z życiem " << health << endl;
  40. }
  41.  
  42. void gather_resources()
  43. {
  44. // Symulacja zbierania surowców
  45. cout << name << " zbiera surowce z inteligencją " << intelligence << endl;
  46.  
  47. }
  48. };
  49.  
  50. // Klasa dla Przeciwnika (Enemy)
  51.  
  52. class Enemy
  53. {
  54.  
  55. public:
  56.  
  57. // Atrybuty
  58. vector<string> types = {"Kosmita", "Robot"};
  59.  
  60. string type;
  61. int health;
  62. int strength;
  63.  
  64. // Konstruktor
  65. Enemy() {
  66. type = types[rand() % types.size()];
  67. health = rand() % 25 + 25;
  68. strength = rand() % 3 + 5;
  69. }
  70.  
  71. // Metody
  72. void attack()
  73. {
  74. // Symulacja ataku
  75. cout << type << " atakuje z siłą " << strength << endl;
  76. }
  77.  
  78. void defend()
  79. {
  80. // Symulacja obrony
  81. cout << type << " broni się z życiem " << health << endl;
  82. }
  83. };
  84.  
  85.  
  86. // Klasa dla Surowców (Resources)
  87. class Resources {
  88.  
  89. public:
  90.  
  91. // Atrybuty
  92. int metal;
  93. int fuel;
  94. int food;
  95.  
  96. // Konstruktor
  97. Resources(int initialMetal, int initialFuel, int initialFood) {
  98. metal = initialMetal;
  99. fuel = initialFuel;
  100. food = initialFood;
  101.  
  102. }
  103.  
  104. // Metody
  105. void gather_metal() {
  106. // Symulacja zbierania metalu
  107. cout << "Zbieranie metalu. Aktualna ilość: " << ++metal << endl;
  108.  
  109. }
  110.  
  111. void gather_fuel() {
  112. // Symulacja zbierania paliwa
  113. cout << "Zbieranie paliwa. Aktualna ilość: " << ++fuel << endl;
  114.  
  115. }
  116.  
  117. void gather_food() {
  118. // Symulacja zbierania jedzenia
  119. cout << "Zbieranie jedzenia. Aktualna ilość: " << ++food << endl;
  120.  
  121. }
  122.  
  123. };
  124.  
  125.  
  126. class Game
  127. {
  128. public:
  129.  
  130. // Atrybuty
  131. Hero hero;
  132. Resources resources;
  133.  
  134. // Konstruktor
  135. Game(Hero gameHero, Resources gameResources) :
  136. hero(gameHero), resources(gameResources) {}
  137.  
  138.  
  139.  
  140. // Metody
  141. void start_game()
  142. {
  143.  
  144. // Rozpoczęcie gry
  145. cout << "Gra się rozpoczęła, powodzenia, " << hero.name << "!" << endl;
  146. bool game;
  147.  
  148. while (game)
  149. {
  150. cout << "\n**************\n" << endl;
  151. cout << "Co byś chciał teraz zrobić?" << endl;
  152. cout << "1. Szukaj zasobów." << endl;
  153. cout << "2. Walka z przeciwnikiem." << endl;
  154. cout << "3. Spróbuj zbudować statek do domu." << endl;
  155. cout << "4. Sprawdź ekwipunek." << endl;
  156. cout << "5. Odpocznij i zregeneruj życie." << endl;
  157.  
  158. cout << "Wpisz swój wybór: ";
  159.  
  160. int choice;
  161. int type;
  162.  
  163. cin >> choice;
  164.  
  165. cout << "\n**************\n" << endl;
  166.  
  167. switch (choice)
  168. {
  169. case 1:
  170. type = rand() % 3;
  171. switch (type)
  172. {
  173.  
  174. case 0:
  175. resources.gather_metal();
  176. break;
  177.  
  178. case 1:
  179.  
  180. resources.gather_fuel();
  181. break;
  182.  
  183. case 2:
  184. resources.gather_food();
  185. break;
  186. }
  187. break;
  188.  
  189. case 2:
  190. battle();
  191. if (hero.health <= 0)
  192. {
  193. game = false;
  194. cout << "Zginąłeś!" << endl;
  195. }
  196.  
  197. break;
  198.  
  199. case 3:
  200. if (resources.fuel > 5 && resources.metal > 10)
  201. {
  202. cout << "Zbudowałeś statek do domu! Wygrałeś!" << endl;
  203. end_game();
  204. game = false;
  205. }
  206. else
  207. {
  208. cout << "Nie masz wystarczająco dużo zasobów by zbudować statek..." << endl;
  209. }
  210. break;
  211.  
  212. case 4:
  213. cout << "Sprawdzasz swój ekwipunek: " << endl;
  214. cout << resources.metal << " metalu " << endl;
  215. cout << resources.food << " jedzenia " << endl;
  216. cout << resources.fuel << " paliwa " << endl;
  217. break;
  218.  
  219. case 6:
  220. cout << "Czujesz się dobrze wypoczęty." << endl;
  221. hero.health += 15;
  222. break;
  223.  
  224. default:
  225. cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
  226. }
  227. }
  228.  
  229.  
  230. }
  231.  
  232.  
  233.  
  234. void end_game()
  235. {
  236. // Zakończenie gry
  237. cout << "Koniec gry, dzięki za spróbowanie!" << endl;
  238. }
  239.  
  240.  
  241.  
  242. void battle()
  243. {
  244. Enemy enemy = Enemy();
  245. cout << "Walka się zaczęła!" << endl;
  246. bool battleOn = true;
  247.  
  248. while (battleOn) {
  249. cout << "\n**************\n" << endl;
  250. cout << "Twoje życie: " << hero.health << endl;
  251. cout << "Życie przeciwnika: " << enemy.health << "\n" << endl;
  252.  
  253. cout << "Co byś chciał teraz zrobić?" << endl;
  254. cout << "1. Atakuj!" << endl;
  255. cout << "2. Uciekaj!" << endl;
  256.  
  257. cout << "Wpisz swój wybór: ";
  258.  
  259. int choice;
  260.  
  261. cin >> choice;
  262. cout << "\n**************\n" << endl;
  263.  
  264. switch (choice)
  265. {
  266. // Atakowanie
  267. case 1:
  268. hero.attack();
  269. enemy.health -= hero.strength;
  270. enemy.defend();
  271.  
  272. if (enemy.health <= 0)
  273. {
  274. battleOn = false;
  275. cout << "Wygrałeś walkę!" << endl;
  276. }
  277. else
  278. {
  279. enemy.attack();
  280. hero.health -= enemy.strength;
  281. hero.defend();
  282. if (hero.health <= 0)
  283. {
  284. battleOn = false;
  285. cout << "Przegrałeś walkę!" << endl;
  286. }
  287. }
  288. break;
  289. case 2:
  290. battleOn = false;
  291. cout << "Uciekasz od walki!" << endl;
  292.  
  293. default:
  294. cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
  295. }
  296. }
  297. }
  298.  
  299. void show_menu()
  300. {
  301.  
  302. int choice;
  303. cout << "Witaj w Galactic Survivor!" << endl;
  304. cout << "1. Zacznij nową grę" << endl;
  305. cout << "0. Zakończ grę" << endl;
  306.  
  307. cout << "Wpisz swój wybór: ";
  308. cin >> choice;
  309.  
  310.  
  311. switch (choice)
  312. {
  313. case 1:
  314. start_game();
  315. break;
  316.  
  317. case 0:
  318. end_game();
  319. break;
  320.  
  321. default:
  322. cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
  323. }
  324. }
  325. };
  326.  
  327.  
  328. int main()
  329. {
  330. // Stworzenie bohatera
  331. Hero hero("Adam", 100, 10, 30);
  332.  
  333. // Stworzenie surowców
  334. Resources resources(0, 0, 0);
  335.  
  336. // Stworzenie gry
  337. Game game(hero, resources);
  338.  
  339.  
  340. // Symulacja bitwy
  341. game.show_menu();
  342.  
  343. return 0;
  344. }
  345.  
  346.  
  347.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement