Facebook
From Hhhh, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 113
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. class Item {
  6. public:
  7.     std::string name;
  8.     std::string type;
  9.     int value;
  10.  
  11.     Item(std::string name, std::string type, int value) : name(name), type(type), value(value) {}
  12. };
  13.  
  14. class Character {
  15. public:
  16.     std::string name;
  17.     int level;
  18.     int hitPoints;
  19.     int manaPoints;
  20.     std::vector<Item> inventory;
  21.  
  22.     Character(std::string name, int level, int hitPoints, int manaPoints) :
  23.         name(name), level(level), hitPoints(hitPoints), manaPoints(manaPoints) {}
  24.  
  25.     void addItem(const Item& item) {
  26.         inventory.push_back(item);
  27.     }
  28. };
  29.  
  30. class Monster : public Character {
  31. public:
  32.     int strength;
  33.     int speed;
  34.  
  35.     Monster(std::string name, int level, int hitPoints, int manaPoints, int strength, int speed) :
  36.         Character(name, level, hitPoints, manaPoints), strength(strength), speed(speed) {}
  37. };
  38.  
  39. class Game {
  40. public:
  41.     std::vector<Character> characters;
  42.     std::vector<Monster> monsters;
  43.  
  44.     void createCharacter(std::string name, int level, int hitPoints, int manaPoints) {
  45.         characters.emplace_back(name, level, hitPoints, manaPoints);
  46.     }
  47.  
  48.     void createMonster(std::string name, int level, int hitPoints, int manaPoints, int strength, int speed) {
  49.         monsters.emplace_back(name, level, hitPoints, manaPoints, strength, speed);
  50.     }
  51.  
  52.     void fight(Character& character, Monster& monster) {
  53.         // Prosta symulacja walki
  54.         std::cout << "Walka rozpoczyna się między " << character.name << " a " << monster.name << std::endl;
  55.        
  56.         // Założenie: pierwszy atakuje potwór
  57.         int attack = monster.strength - character.level;
  58.         character.hitPoints -= (attack > 0 ? attack : 0);
  59.  
  60.         if (character.hitPoints > 0) {
  61.             attack = character.level - monster.speed;
  62.             monster.hitPoints -= (attack > 0 ? attack : 0);
  63.  
  64.             if (monster.hitPoints > 0) {
  65.                 std::cout << "Obie postacie nadal walczą." << std::endl;
  66.             } else {
  67.                 std::cout << character.name << " wygrywa walkę." << std::endl;
  68.             }
  69.         } else {
  70.             std::cout << monster.name << " wygrywa walkę." << std::endl;
  71.         }
  72.     }
  73. };
  74.  
  75. int main() {
  76.     Game rpgGame;
  77.  
  78.     rpgGame.createCharacter("Hero", 5, 100, 30);
  79.     rpgGame.createMonster("Goblin", 3, 50, 10, 20, 15);
  80.  
  81.     rpgGame.characters[0].addItem(Item("Miecz", "Broń", 10));
  82.  
  83.     rpgGame.fight(rpgGame.characters[0], rpgGame.monsters[0]);
  84.  
  85.     return 0;
  86. }