Advertisement
Guest User

Untitled

a guest
Dec 30th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <random>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. default_random_engine randomGenerator(time(NULL));
  9. uniform_real_distribution<float> attackChance(0.0f, 1.0f);
  10.  
  11. bool canAttack() {
  12.     float chance = attackChance(randomGenerator);
  13.     if (chance <= 0.35f) return true;
  14.     return false;
  15. }
  16.  
  17. class Character {
  18. private:
  19.     float _health;
  20.     float _attackDamage;
  21. public:
  22.    
  23.     virtual void attack(Character& other) {
  24.         other.getAttacked(*this);
  25.     }
  26.     virtual void getAttacked(Character& other) {
  27.         this->_health -= other.getAttackDamage();
  28.     }
  29.     virtual float getAttackDamage() {
  30.         return this->_attackDamage;
  31.     }
  32. };
  33.  
  34. class Player : public Character{
  35. private:
  36.     float _health = 100.0f;
  37.     float _attackDamage = 100.0f;
  38.     string _name;
  39.     void say(string act) {
  40.         if (act == "hurt") cout << _name << "says \"Auch!!\"\n";
  41.         else if (act == "attack") cout << _name << "says \"Argh!!!\"\n";
  42.         else if (act == "dead") cout << _name << "says \"Ahhhhh! You have defeated.... me....\"\n";
  43.         else if (act == "missed") cout << _name << "says \"Oh, I missed my attack!\"\n";
  44.         else cout << _name << "says \"Argh!!!\"\n";
  45.     }
  46.     void dead() {
  47.         say("dead");
  48.     }
  49.  
  50. public:
  51.  
  52.     float getHealth() {
  53.         return _health;
  54.     }
  55.     void setHealth(float health) {
  56.         _health = health;
  57.     }
  58.     string getName() {
  59.         return _name;
  60.     }
  61.     void setName() {
  62.         cout << "What is your name Sir?: ";
  63.         cin >> _name;
  64.         cout << "\n";
  65.     }
  66.     void setName(string name) {
  67.         _name = name;
  68.     }
  69.     bool isDead() {
  70.         if (_health <= 0.0f) {
  71.             dead();
  72.             return true;
  73.         }
  74.         return false;
  75.     }
  76.  
  77. };
  78.  
  79. class Skeleton : public Character{
  80. private:
  81.     float _health = 100.0f;
  82.     float _attackDamage = 100.0f;
  83.     string _name;
  84.     void say(string act) {
  85.         if (act == "hurt") cout << _name << "says \"Arghhh!!!\"\n";
  86.         else if (act == "attack") cout << _name << "says \"Growl!\"\n";
  87.         else if (act == "dead") cout << _name << "says \"Ourgh! Me.... died......\"\n";
  88.         else if (act == "missed") cout << _name << "says \"Rrraghh....\"\n";
  89.         else cout << _name << "says \"Growl!\"\n";
  90.     }
  91.     void dead() {
  92.         say("dead");
  93.     }
  94.  
  95. public:
  96.  
  97.     float getHealth() {
  98.         return _health;
  99.     }
  100.     string getName() {
  101.         return _name;
  102.     }
  103.     void setHealth(float health) {
  104.         _health = health;
  105.     }
  106.     void setName(string name) {
  107.         _name = name;
  108.     }
  109.  
  110.     bool isDead() {
  111.         if (_health <= 0.0f) {
  112.             dead();
  113.             return true;
  114.         }
  115.         return false;
  116.     }
  117. };
  118.  
  119.  
  120. int main(int argc, char* argv[]) {
  121.     Player player;
  122.     Skeleton skeleton;
  123.  
  124.     player.setName("Player");
  125.     skeleton.setName("M");
  126.  
  127.     cout << player.getAttackDamage() << endl;
  128.     cout << skeleton.getAttackDamage() << endl;
  129.  
  130.     for (int i = 0; i < 10; i++) {
  131.         cout << i << endl;
  132.         player.attack(skeleton);
  133.         cout << skeleton.getHealth();
  134.         if (skeleton.isDead())
  135.             return 0;
  136.         skeleton.attack(player);
  137.         cout << player.getHealth() << endl << endl;
  138.         if (player.isDead())
  139.             return 0;
  140.     }
  141.  
  142.     system("PAUSE");
  143.  
  144.  
  145.     return 0;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement