Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <cstdlib>
- using namespace std;
- class Hero
- {
- public:
- // Atrybuty
- string name;
- int health;
- int strength;
- int intelligence;
- vector<string> equipment;
- // Konstruktor
- Hero(string heroName, int heroHealth, int heroStrength, int heroIntelligence)
- {
- name = heroName;
- health = heroHealth;
- strength = heroStrength;
- intelligence = heroIntelligence;
- }
- // Metody
- void attack()
- {
- // Symulacja ataku
- cout << name << " atakuje z siłą " << strength << endl;
- }
- void defend()
- {
- // Symulacja obrony
- cout << name << " broni się z życiem " << health << endl;
- }
- void gather_resources()
- {
- // Symulacja zbierania surowców
- cout << name << " zbiera surowce z inteligencją " << intelligence << endl;
- }
- };
- // Klasa dla Przeciwnika (Enemy)
- class Enemy
- {
- public:
- // Atrybuty
- vector<string> types = {"Kosmita", "Robot"};
- string type;
- int health;
- int strength;
- // Konstruktor
- Enemy() {
- type = types[rand() % types.size()];
- health = rand() % 25 + 25;
- strength = rand() % 3 + 5;
- }
- // Metody
- void attack()
- {
- // Symulacja ataku
- cout << type << " atakuje z siłą " << strength << endl;
- }
- void defend()
- {
- // Symulacja obrony
- cout << type << " broni się z życiem " << health << endl;
- }
- };
- // Klasa dla Surowców (Resources)
- class Resources {
- public:
- // Atrybuty
- int metal;
- int fuel;
- int food;
- // Konstruktor
- Resources(int initialMetal, int initialFuel, int initialFood) {
- metal = initialMetal;
- fuel = initialFuel;
- food = initialFood;
- }
- // Metody
- void gather_metal() {
- // Symulacja zbierania metalu
- cout << "Zbieranie metalu. Aktualna ilość: " << ++metal << endl;
- }
- void gather_fuel() {
- // Symulacja zbierania paliwa
- cout << "Zbieranie paliwa. Aktualna ilość: " << ++fuel << endl;
- }
- void gather_food() {
- // Symulacja zbierania jedzenia
- cout << "Zbieranie jedzenia. Aktualna ilość: " << ++food << endl;
- }
- };
- class Game
- {
- public:
- // Atrybuty
- Hero hero;
- Resources resources;
- // Konstruktor
- Game(Hero gameHero, Resources gameResources) :
- hero(gameHero), resources(gameResources) {}
- // Metody
- void start_game()
- {
- // Rozpoczęcie gry
- cout << "Gra się rozpoczęła, powodzenia, " << hero.name << "!" << endl;
- bool game;
- while (game)
- {
- cout << "\n**************\n" << endl;
- cout << "Co byś chciał teraz zrobić?" << endl;
- cout << "1. Szukaj zasobów." << endl;
- cout << "2. Walka z przeciwnikiem." << endl;
- cout << "3. Spróbuj zbudować statek do domu." << endl;
- cout << "4. Sprawdź ekwipunek." << endl;
- cout << "5. Odpocznij i zregeneruj życie." << endl;
- cout << "Wpisz swój wybór: ";
- int choice;
- int type;
- cin >> choice;
- cout << "\n**************\n" << endl;
- switch (choice)
- {
- case 1:
- type = rand() % 3;
- switch (type)
- {
- case 0:
- resources.gather_metal();
- break;
- case 1:
- resources.gather_fuel();
- break;
- case 2:
- resources.gather_food();
- break;
- }
- break;
- case 2:
- battle();
- if (hero.health <= 0)
- {
- game = false;
- cout << "Zginąłeś!" << endl;
- }
- break;
- case 3:
- if (resources.fuel > 5 && resources.metal > 10)
- {
- cout << "Zbudowałeś statek do domu! Wygrałeś!" << endl;
- end_game();
- game = false;
- }
- else
- {
- cout << "Nie masz wystarczająco dużo zasobów by zbudować statek..." << endl;
- }
- break;
- case 4:
- cout << "Sprawdzasz swój ekwipunek: " << endl;
- cout << resources.metal << " metalu " << endl;
- cout << resources.food << " jedzenia " << endl;
- cout << resources.fuel << " paliwa " << endl;
- break;
- case 6:
- cout << "Czujesz się dobrze wypoczęty." << endl;
- hero.health += 15;
- break;
- default:
- cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
- }
- }
- }
- void end_game()
- {
- // Zakończenie gry
- cout << "Koniec gry, dzięki za spróbowanie!" << endl;
- }
- void battle()
- {
- Enemy enemy = Enemy();
- cout << "Walka się zaczęła!" << endl;
- bool battleOn = true;
- while (battleOn) {
- cout << "\n**************\n" << endl;
- cout << "Twoje życie: " << hero.health << endl;
- cout << "Życie przeciwnika: " << enemy.health << "\n" << endl;
- cout << "Co byś chciał teraz zrobić?" << endl;
- cout << "1. Atakuj!" << endl;
- cout << "2. Uciekaj!" << endl;
- cout << "Wpisz swój wybór: ";
- int choice;
- cin >> choice;
- cout << "\n**************\n" << endl;
- switch (choice)
- {
- // Atakowanie
- case 1:
- hero.attack();
- enemy.health -= hero.strength;
- enemy.defend();
- if (enemy.health <= 0)
- {
- battleOn = false;
- cout << "Wygrałeś walkę!" << endl;
- }
- else
- {
- enemy.attack();
- hero.health -= enemy.strength;
- hero.defend();
- if (hero.health <= 0)
- {
- battleOn = false;
- cout << "Przegrałeś walkę!" << endl;
- }
- }
- break;
- case 2:
- battleOn = false;
- cout << "Uciekasz od walki!" << endl;
- default:
- cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
- }
- }
- }
- void show_menu()
- {
- int choice;
- cout << "Witaj w Galactic Survivor!" << endl;
- cout << "1. Zacznij nową grę" << endl;
- cout << "0. Zakończ grę" << endl;
- cout << "Wpisz swój wybór: ";
- cin >> choice;
- switch (choice)
- {
- case 1:
- start_game();
- break;
- case 0:
- end_game();
- break;
- default:
- cout << "Nieprawidłowy wybór. Spróbuj ponownie." << endl;
- }
- }
- };
- int main()
- {
- // Stworzenie bohatera
- Hero hero("Adam", 100, 10, 30);
- // Stworzenie surowców
- Resources resources(0, 0, 0);
- // Stworzenie gry
- Game game(hero, resources);
- // Symulacja bitwy
- game.show_menu();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement