Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // zmienne/argumenty - camelCase
- // funkcje/metody - snake_case
- // klasy - PascelCase
- #include <iostream>
- #include <vector>
- #include <string>
- #include <cstdlib>
- using namespace std;
- class Entity
- {
- private:
- string name;
- int health;
- int maxHealth;
- int damage;
- public:
- Entity(string entityName)
- {
- name = entityName;
- maxHealth = 10;
- health = maxHealth;
- damage = 2;
- }
- string get_name()
- {
- return name;
- }
- int get_health()
- {
- return health;
- }
- int get_max_health()
- {
- return maxHealth;
- }
- int get_damage()
- {
- return damage;
- }
- void lower_health(int value)
- {
- health -= value;
- if (health < 0)
- {
- health = 0;
- }
- }
- void add_health(int value)
- {
- health += value;
- if (health > maxHealth)
- {
- health = maxHealth;
- }
- }
- };
- class Player : public Entity
- {
- private:
- int metal;
- int oxygen;
- public:
- Player(string playerName) : Entity(playerName)
- {
- metal = 0;
- oxygen = 100;
- }
- Player() : Entity("John")
- {
- }
- int get_metal()
- {
- return metal;
- }
- int get_oxygen()
- {
- return oxygen;
- }
- void display_player_info()
- {
- cout << "Stan gracza" << endl;
- cout << "------------------------------------------------" << endl;
- cout << "Życie: " << get_health() << "/" << get_max_health() << endl;
- cout << "Atak: " << get_damage() << endl;
- cout << "Tlen: " << oxygen << "%" << endl;
- cout << "Metal: " << metal << "/50" << endl;
- }
- void rest()
- {
- cout << get_name() << " odpoczywa. Zużycie 2% tlenu." << endl << endl;
- lower_oxygen(2);
- add_health(5);
- display_player_info();
- }
- void lower_oxygen(int value)
- {
- oxygen -= value;
- }
- void add_oxygen(int value)
- {
- if(oxygen + value > 100)
- {
- oxygen = 100;
- }
- else
- {
- oxygen += value;
- }
- }
- void add_metal(int value)
- {
- metal += value;
- }
- };
- class Game
- {
- private:
- Player player;
- public:
- Game(string playerName)
- {
- player = Player(playerName);
- cout << player.get_name() << endl;
- }
- void start_game()
- {
- cout << "------------------------------------------------" << endl;
- cout << "Rozbiłeś się na księżycu!" << endl;
- cout << "Twoim zadaniem jest przetrwanie i zdobycie wystarczająco dużo surowców by zbudować statek do domu." << endl;
- cout << "Uważaj na zapasy swojego tlenu, bez niego nie możesz kontynuować gry." << endl ;
- cout << "Powodzenia " << player.get_name() << "!" << endl << endl;
- player.display_player_info();
- bool gameRunning = true;
- int playerChoice;
- while(gameRunning)
- {
- print_main_menu();
- cout << "Wpisz numer: ";
- cin >> playerChoice;
- switch (playerChoice)
- {
- case 1:
- player.display_player_info();
- break;
- case 2:
- player.rest();
- break;
- case 3:
- search_resources();
- if(player.get_health() <= 0)
- {
- cout << "Gracz przegrywa!" << endl;
- cout << "Koniec gry! Spróbuj ponownie!" << endl;
- gameRunning = false;
- }
- break;
- case 4:
- if(player.get_metal() >= 50)
- {
- cout << "Gracz wygrywa!" << endl;
- cout << "Pomyślnie zbudowałeś statek i wydostałeś się z księżyca!" << endl;
- cout << "Dzięki za gre!" << endl;
- }
- else
- {
- cout << "Nie masz wystarczająco dużo metalu by zbudować statek." << endl;
- }
- break;
- case 0:
- cout << "Koniec gry!" << endl;
- gameRunning = false;
- break;
- }
- }
- }
- void print_main_menu()
- {
- cout << endl << "Co chcesz zrobić?" << endl;
- cout << "------------------------------------------------" << endl;
- cout << "[1] Sprawdź swój stan." << endl;
- cout << "[2] Odpocznij." << endl;
- cout << "[3] Szukaj zasobów." << endl;
- if (player.get_metal() >= 50)
- {
- cout << "[4] Zbuduj statek." << endl;
- }
- cout << "[0] Skończ grę." << endl;
- }
- void search_resources()
- {
- cout << endl << player.get_name() <<" wybiera się na zewnątrz by szukać zasobów. Zużycie 5% tlenu." << endl;
- player.lower_oxygen(5);
- cout << "------------------------------------------------" << endl;
- int encounter = rand() % 3;
- switch(encounter)
- {
- case 0:
- cout << player.get_name() << " ma szczęście. Natrafił na mały zbiornik tlenu!" << endl;
- cout << "Zasób tlenu zwiększony o 7%!" << endl << endl;
- player.add_oxygen(7);
- player.display_player_info();
- break;
- case 1:
- cout << player.get_name() << " natrafił na małe złoże metalu!" << endl;
- cout << "Zasób metalu zwiększony o 5!" << endl << endl;
- player.add_metal(5);
- player.display_player_info();
- break;
- case 2:
- cout << player.get_name() << " napotkał na przeciwnika!" << endl;
- start_combat();
- break;
- }
- }
- void start_combat()
- {
- Entity enemy = Entity("Kosmita");
- bool combatRunning = true;
- int choice, playerDamage, enemyDamage;
- while (combatRunning)
- {
- cout << endl << "Co chcesz zrobić?" << endl;
- cout << "------------------------------------------------" << endl;
- cout << "Twoje życie: " << player.get_health() << " | Życie przeciwnika: " << enemy.get_health() << endl;
- cout << "------------------------------------------------" << endl;
- cout << "[1] Atakuj!" << endl;
- cout << "[2] Uciekaj!" << endl << endl;
- cout << "Wpisz numer: ";
- cin >> choice;
- switch (choice)
- {
- case 1: // Gracz atakuje
- playerDamage = rand() % player.get_damage() + 1;
- cout << player.get_name() << " atakuje! Rani przeciwnika o " << playerDamage << " punkty!" << endl;
- enemy.lower_health(playerDamage);
- if(enemy.get_health() > 0)
- {
- enemyDamage = rand() % enemy.get_damage() + 1;
- cout << enemy.get_name() << " kontratakuje! Rani bohatera o " << enemyDamage << " punkty!" << endl;
- player.lower_health(enemyDamage);
- if(player.get_health() <= 0)
- {
- cout << player.get_name() << " przegrywa! Koniec walki!" << endl;
- combatRunning = false;
- }
- }
- else
- {
- cout << enemy.get_name() << " przegrywa! Koniec walki!" << endl;
- cout << player.get_name() << " znajduje 10 metalu!" << endl;
- player.add_metal(10);
- combatRunning = false;
- }
- break;
- case 2: // Gracz ucieka
- cout << player.get_name() << " ucieka tracąc kolejne 5% tlenu! Koniec walki!" << endl;
- player.lower_oxygen(5);
- combatRunning = false;
- break;
- }
- }
- }
- };
- int main()
- {
- cout << "Witaj w grze SpaceRescue!" << endl;
- string name;
- cout << "Podaj nazwę swojego bohatera: ";
- cin >> name;
- Game game = Game(name);
- game.start_game();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement