Advertisement
ada1711

lekcja10_gotowe

Sep 10th, 2023
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.08 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 << " is attacking with strength " << strength << endl;
  34.     }
  35.  
  36.     void defend()
  37.     {
  38.         // Symulacja obrony
  39.         cout << name << " is defending with health " << health << endl;
  40.     }
  41.  
  42.     void gather_resources()
  43.     {
  44.         // Symulacja zbierania surowców
  45.         cout << name << " is gathering resources with intelligence " << 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 = {"alien", "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.         // Symulacja ataku
  74.         cout << type << " is attacking with strength " << strength << endl;
  75.     }
  76.  
  77.     void defend() {
  78.         // Symulacja obrony
  79.         cout << type << " is defending with health " << health << endl;
  80.     }
  81.  
  82. };
  83.  
  84.  
  85. // Klasa dla Surowców (Resources)
  86. class Resources {
  87.  
  88. public:
  89.  
  90.     // Atrybuty
  91.     int metal;
  92.     int fuel;
  93.     int food;
  94.  
  95.     // Konstruktor
  96.     Resources(int initialMetal, int initialFuel, int initialFood) {
  97.         metal = initialMetal;
  98.         fuel = initialFuel;
  99.         food = initialFood;
  100.  
  101.     }
  102.  
  103.    // Metody
  104.     void gather_metal() {
  105.         // Symulacja zbierania metalu
  106.         cout << "Gathering metal. Current metal: " << ++metal << endl;
  107.  
  108.     }
  109.  
  110.     void gather_fuel() {
  111.         // Symulacja zbierania paliwa
  112.         cout << "Gathering fuel. Current fuel: " << ++fuel << endl;
  113.  
  114.     }
  115.  
  116.     void gather_food() {
  117.         // Symulacja zbierania jedzenia
  118.         cout << "Gathering food. Current food: " << ++food << endl;
  119.  
  120.     }
  121.  
  122. };
  123.  
  124.  
  125. class Game
  126. {
  127. public:
  128.  
  129.     // Atrybuty
  130.     Hero hero;
  131.     Resources resources;
  132.  
  133.     // Konstruktor
  134.     Game(Hero gameHero, Resources gameResources) :
  135.         hero(gameHero), resources(gameResources) {}
  136.  
  137.  
  138.  
  139.     // Metody
  140.     void start_game()
  141.     {
  142.  
  143.         // Rozpoczęcie gry
  144.         cout << "Game has started. Good luck, " << hero.name << "!" << endl;
  145.         bool game;
  146.  
  147.         while (game)
  148.         {
  149.             cout << "\n**************\n" << endl;
  150.             cout << "What action would you like to take?" << endl;
  151.             cout << "1. Look for resources." << endl;
  152.             cout << "2. Fight an enemy." << endl;
  153.             cout << "3. Attempt to build the spacecraft." << endl;
  154.             cout << "4. Check inventory." << endl;
  155.             cout << "5. Rest and regenerate health." << endl;
  156.  
  157.             cout << "Enter your choice: ";
  158.            
  159.             int choice;
  160.             int type;
  161.  
  162.             cin >> choice;
  163.  
  164.             cout << "\n**************\n" << endl;
  165.  
  166.             switch (choice)
  167.             {
  168.                 case 1:
  169.                     type = rand() % 3;
  170.                     switch (type)
  171.                     {
  172.  
  173.                     case 0:
  174.                         resources.gather_metal();
  175.                         break;
  176.  
  177.                     case 1:
  178.  
  179.                         resources.gather_fuel();
  180.                         break;
  181.  
  182.                     case 2:
  183.                         resources.gather_food();
  184.                         break;
  185.                     }
  186.                     break;
  187.  
  188.                 case 2:
  189.                     battle();
  190.                     if (hero.health <= 0)
  191.                     {
  192.                         game = false;
  193.                         cout << "You perished stranded on the alien world!" << endl;
  194.                     }
  195.                    
  196.                     break;
  197.  
  198.                 case 3:
  199.                     if (resources.fuel > 5 && resources.metal > 10)
  200.                     {
  201.                         cout << "You succeed in building an airship! You won!" << endl;
  202.                         end_game();
  203.                         game = false;
  204.                     }
  205.                     else
  206.                     {
  207.                         cout << "You don't have enough resources to build an airship..." << endl;
  208.                     }
  209.                     break;
  210.  
  211.                 case 4:
  212.                     cout << "You check your inventory, you find: " << endl;
  213.                     cout << resources.metal << " metal " << endl;
  214.                     cout << resources.food << " food " << endl;
  215.                     cout << resources.fuel << " fuel " << endl;
  216.                     break;
  217.  
  218.                 case 6:
  219.                     cout << "You feel well rested." << endl;
  220.                     hero.health += 15;
  221.                     break;
  222.  
  223.                 default:
  224.                     cout << "Invalid choice. Try again." << endl;
  225.             }
  226.         }
  227.        
  228.  
  229.     }
  230.  
  231.  
  232.  
  233.     void end_game()
  234.     {
  235.         // Zakończenie gry
  236.         cout << "Game over. Thanks for playing!" << endl;
  237.     }
  238.  
  239.  
  240.  
  241.     void battle()
  242.     {
  243.         Enemy enemy = Enemy();
  244.         cout << "Battle has started!" << endl;
  245.         bool battleOn = true;
  246.  
  247.         while (battleOn) {
  248.             cout << "\n**************\n" << endl;
  249.             cout << "Your health: " << hero.health << endl;
  250.             cout << "Enemy's health: " << enemy.health << "\n" << endl;
  251.  
  252.             cout << "What action would you like to take?" << endl;
  253.             cout << "1. Fight!" << endl;
  254.             cout << "2. Run away!" << endl;
  255.  
  256.             cout << "Enter your choice: ";
  257.            
  258.             int choice;
  259.  
  260.             cin >> choice;
  261.             cout << "\n**************\n" << endl;
  262.  
  263.             switch (choice)
  264.             {
  265.                 // Atakowanie
  266.                 case 1:
  267.                     hero.attack();
  268.                     enemy.health -= hero.strength;
  269.                     enemy.defend();
  270.  
  271.                     if (enemy.health <= 0)
  272.                     {
  273.                         battleOn = false;
  274.                         cout << "You win the fight!" << endl;
  275.                     }
  276.                     else
  277.                     {
  278.                         enemy.attack();
  279.                         hero.health -= enemy.strength;
  280.                         hero.defend();
  281.                         if (hero.health <= 0)
  282.                         {
  283.                             battleOn = false;
  284.                             cout << "You lost the fight!" << endl;
  285.                         }
  286.                     }
  287.                     break;
  288.                 case 2:
  289.                     battleOn = false;
  290.                     cout << "You run away from the fight!" << endl;
  291.  
  292.                 default:
  293.                     cout << "Invalid choice. Try again." << endl;
  294.             }
  295.         }
  296.     }
  297.  
  298.     void show_menu()
  299.     {
  300.  
  301.         int choice;
  302.         cout << "Welcome to Galactic Survivor!" << endl;
  303.         cout << "1. Start New Game" << endl;
  304.         cout << "0. Quit Game" << endl;
  305.  
  306.         cout << "Enter your choice: ";
  307.         cin >> choice;
  308.  
  309.  
  310.         switch (choice)
  311.         {
  312.             case 1:
  313.                 start_game();
  314.                 break;
  315.  
  316.             case 0:
  317.                 end_game();
  318.                 break;
  319.  
  320.             default:
  321.                 cout << "Invalid choice. Try again." << endl;
  322.         }
  323.     }
  324. };
  325.  
  326.  
  327. int main()
  328. {
  329.     // Stworzenie bohatera
  330.     Hero hero("John", 100, 10, 30);
  331.  
  332.     // Stworzenie surowców
  333.     Resources resources(0, 0, 0);
  334.  
  335.     // Stworzenie gry
  336.     Game game(hero, resources);
  337.  
  338.  
  339.     // Symulacja bitwy
  340.     game.show_menu();
  341.  
  342.     return 0;
  343. }
  344.  
  345.  
  346.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement