Advertisement
Guest User

loccos new battle arena main code

a guest
Mar 27th, 2017
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.21 KB | None | 0 0
  1. #include "Game.h"
  2. #include <iostream>
  3. #include "Enemies.h"
  4. #include "Dragon.h"
  5. #include "WarElephant.h"
  6. #include "Ape.h"
  7. #include "Zombie.h"
  8. #include <time.h>
  9. using namespace std;
  10.  
  11. Game::Game()
  12. {
  13.     srand(time(NULL));
  14.     redsAlive = 10;
  15.     bluesAlive = 10;
  16. }
  17.  
  18.  
  19. Game::~Game()
  20. {
  21. }
  22. void Game::GenerateNumbers()
  23. {
  24.     RandomTeam = rand() % 2 + 1;
  25.     Victim = rand() % 10;
  26.     Attacker = rand() % 10;
  27.     DamageMultiplier = rand() % 50 + 1;
  28.     DefenceMultiplier = rand() % 50 + 1;
  29. }
  30. void Game::BattleSequence()
  31. {
  32.     while (redsAlive > 0 && bluesAlive > 0)
  33.     {
  34.             switch(RandomTeam)
  35.             {
  36.             case 1://Red team picked first
  37.                 if (BlueTeam[Victim]->IsAlive() && RedTeam[Attacker]->IsAlive())
  38.                 {
  39.                     int redDamage = RedTeam[Attacker]->GetDamage();
  40.                     int blueHealth = BlueTeam[Victim]->GetHealth();
  41.                     if(redDamage >= blueHealth)
  42.                     {
  43.                         BlueTeam[Victim]->takeDamage((DamageMultiplier + redDamage) - DefenceMultiplier);
  44.                         cout << "A Blue Team " << BlueTeam[Victim]->GetName() << " Has been slain by a " << RedTeam[Attacker]->GetName() << endl;
  45.                         bluesAlive--;
  46.                     }
  47.                     else
  48.                     {
  49.                         BlueTeam[Victim]->takeDamage((DamageMultiplier + redDamage) - DefenceMultiplier);
  50.                         cout << "A Blue Team " << BlueTeam[Victim]->GetName() << " Has been attacked by a " << RedTeam[Attacker]->GetName() << " For " << ((DamageMultiplier + redDamage) - DefenceMultiplier) << " Damage! " << endl;
  51.                     }
  52.                     cin.get();
  53.                     GenerateNumbers();
  54.                 }
  55.                 break;
  56.             case 2://Blue team picked first
  57.                 if (RedTeam[Victim]->IsAlive() && BlueTeam[Attacker]->IsAlive())
  58.                 {
  59.                     int blueDamage = RedTeam[Attacker]->GetDamage();
  60.                     int redHealth = BlueTeam[Victim]->GetHealth();
  61.                     if (blueDamage >= redHealth)
  62.                     {
  63.                         RedTeam[Victim]->takeDamage((DamageMultiplier + blueDamage) - DefenceMultiplier);
  64.                         cout << "A Red Team " << RedTeam[Victim]->GetName() << " Has been slain by a " << BlueTeam[Attacker]->GetName() << endl;
  65.                         redsAlive--;
  66.                     }
  67.                     else
  68.                     {
  69.                         RedTeam[Victim]->takeDamage((DamageMultiplier + blueDamage) - DefenceMultiplier);
  70.                         cout << "A Red Team " << RedTeam[Victim]->GetName() << " Has been attacked by a " << BlueTeam[Attacker]->GetName() << " For " << ((DamageMultiplier + blueDamage) - DefenceMultiplier) << " Damage! " << endl;
  71.                     }
  72.                     cin.get();
  73.                     GenerateNumbers();
  74.                 }
  75.                 break;
  76.             default:
  77.                 break;
  78.             }
  79.             GenerateNumbers();
  80.             cout << "Blues Alive: "<< bluesAlive << endl << endl << "Reds Alive:" << redsAlive << endl << endl << endl;
  81.         }
  82.     }
  83. void BubbleSort(Enemies** Team, int count)
  84. {
  85.     for (int i = 0; i > 10; i++)
  86.     {
  87.         for (int j = 0; j > 10; j++)
  88.         {
  89.             if (Team[j]->GetHealth() < Team[j + 1]->GetHealth())//if current enemy is less health than next enemy up swap them
  90.             {
  91.                 //this version should sort from low health to high health. 0 being the lowest 9 being the highest.
  92.                 //Enemies* swap;
  93.                 //swap = Team[j + 1];
  94.                 //Team[j + 1] = Team[j];
  95.                 //Team[j] = swap;
  96.  
  97.                 //this version should sort from high health to low health. 0 being the highest 9 being the lowest.
  98.                 Enemies* swap;
  99.                 swap = Team[j];
  100.                 Team[j] = Team[j + 1];
  101.                 Team[j + 1] = swap;
  102.             }
  103.         }
  104.     }
  105. }
  106. void Game::Sort()
  107. {
  108.     BubbleSort(RedTeam, 10);
  109.     BubbleSort(BlueTeam, 10);
  110. }
  111. void Game::PrintEnemies()
  112. {
  113.     for (int i = 0; i < 10; i++)
  114.     {
  115.         cout << "RedTeam " << RedTeam[i]->GetName() << "Number: " << i << "  " << endl;
  116.         cout << "Damage: " << RedTeam[i]->GetDamage() << endl;
  117.         cout << "Health: " << RedTeam[i]->GetHealth() << endl << endl;
  118.     }
  119.  
  120.     for (int j = 0; j < 10; j++)
  121.     {
  122.         cout << "Blueteam " << BlueTeam[j]->GetName() << "Number: " << j << "  " << endl;
  123.         cout << "Damage: " << BlueTeam[j]->GetDamage() << endl;
  124.         cout << "Health: " << BlueTeam[j]->GetHealth() << endl << endl;
  125.     }
  126. }
  127. void Game::Initialize()
  128. {
  129.     int Random = rand() % 4 + 1;
  130.     RedTeam = new Enemies*[10]; //Pointer to array on the Heap, containing 10 pointers.
  131.     for (int i = 0; i < 10; ++i)
  132.     {
  133.         switch (Random) { //Filling array with enemies on the Heap.
  134.             {
  135.         case 1:
  136.             RedTeam[i] = new Dragon();
  137.             break;
  138.         case 2:
  139.             RedTeam[i] = new WarElephant();
  140.             break;
  141.         case 3:
  142.             RedTeam[i] = new Ape();
  143.             break;
  144.         case 4:
  145.             RedTeam[i] = new Zombie();
  146.             break;
  147.         default:
  148.             break;
  149.             }
  150.         }
  151.         Random = rand() % 4 + 1;
  152.     }
  153.  
  154.     BlueTeam = new Enemies*[10]; //Pointer to array on the Heap, containing 10 pointers.
  155.     for (int i = 0; i < 10; ++i)
  156.     {
  157.         switch (Random) { //Filling array with enemies on the Heap.
  158.             {
  159.         case 1:
  160.             BlueTeam[i] = new Dragon();
  161.             break;
  162.         case 2:
  163.             BlueTeam[i] = new WarElephant();
  164.             break;
  165.         case 3:
  166.             BlueTeam[i] = new Ape();
  167.             break;
  168.         case 4:
  169.             BlueTeam[i] = new Zombie();
  170.             break;
  171.         default:
  172.             break;
  173.             }
  174.         }
  175.         Random = rand() % 4 + 1;
  176.     }
  177.     cout << "Welcome to battle arena\n\n" << endl;
  178. }
  179. void Game::Winner()
  180. {
  181.     if (redsAlive > 0 && bluesAlive <= 0)cout << endl << "Red team wins!" << endl;
  182.     else if (bluesAlive > 0 && redsAlive <= 0)cout << endl << "Blue team wins!" << endl;
  183.     else if (bluesAlive <= 0 && redsAlive <= 0)cout << endl << "Both teams died!" << endl;
  184. }
  185. void Game::Update()
  186. {
  187.     Initialize();
  188.     Sort();
  189.     GenerateNumbers();
  190.     cin.get();
  191.     BattleSequence();
  192.     Winner();
  193.     system("pause");
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement