Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Game.h"
- #include <iostream>
- #include "Enemies.h"
- #include "Dragon.h"
- #include "WarElephant.h"
- #include "Ape.h"
- #include "Zombie.h"
- #include <time.h>
- using namespace std;
- Game::Game()
- {
- srand(time(NULL));
- redsAlive = 10;
- bluesAlive = 10;
- }
- Game::~Game()
- {
- }
- void Game::GenerateNumbers()
- {
- RandomTeam = rand() % 2 + 1;
- Victim = rand() % 10;
- Attacker = rand() % 10;
- DamageMultiplier = rand() % 50 + 1;
- DefenceMultiplier = rand() % 50 + 1;
- }
- void Game::BattleSequence()
- {
- while (redsAlive > 0 && bluesAlive > 0)
- {
- switch(RandomTeam)
- {
- case 1://Red team picked first
- if (BlueTeam[Victim]->IsAlive() && RedTeam[Attacker]->IsAlive())
- {
- int redDamage = RedTeam[Attacker]->GetDamage();
- int blueHealth = BlueTeam[Victim]->GetHealth();
- if(redDamage >= blueHealth)
- {
- BlueTeam[Victim]->takeDamage((DamageMultiplier + redDamage) - DefenceMultiplier);
- cout << "A Blue Team " << BlueTeam[Victim]->GetName() << " Has been slain by a " << RedTeam[Attacker]->GetName() << endl;
- bluesAlive--;
- }
- else
- {
- BlueTeam[Victim]->takeDamage((DamageMultiplier + redDamage) - DefenceMultiplier);
- cout << "A Blue Team " << BlueTeam[Victim]->GetName() << " Has been attacked by a " << RedTeam[Attacker]->GetName() << " For " << ((DamageMultiplier + redDamage) - DefenceMultiplier) << " Damage! " << endl;
- }
- cin.get();
- GenerateNumbers();
- }
- break;
- case 2://Blue team picked first
- if (RedTeam[Victim]->IsAlive() && BlueTeam[Attacker]->IsAlive())
- {
- int blueDamage = RedTeam[Attacker]->GetDamage();
- int redHealth = BlueTeam[Victim]->GetHealth();
- if (blueDamage >= redHealth)
- {
- RedTeam[Victim]->takeDamage((DamageMultiplier + blueDamage) - DefenceMultiplier);
- cout << "A Red Team " << RedTeam[Victim]->GetName() << " Has been slain by a " << BlueTeam[Attacker]->GetName() << endl;
- redsAlive--;
- }
- else
- {
- RedTeam[Victim]->takeDamage((DamageMultiplier + blueDamage) - DefenceMultiplier);
- cout << "A Red Team " << RedTeam[Victim]->GetName() << " Has been attacked by a " << BlueTeam[Attacker]->GetName() << " For " << ((DamageMultiplier + blueDamage) - DefenceMultiplier) << " Damage! " << endl;
- }
- cin.get();
- GenerateNumbers();
- }
- break;
- default:
- break;
- }
- GenerateNumbers();
- cout << "Blues Alive: "<< bluesAlive << endl << endl << "Reds Alive:" << redsAlive << endl << endl << endl;
- }
- }
- void BubbleSort(Enemies** Team, int count)
- {
- for (int i = 0; i > 10; i++)
- {
- for (int j = 0; j > 10; j++)
- {
- if (Team[j]->GetHealth() < Team[j + 1]->GetHealth())//if current enemy is less health than next enemy up swap them
- {
- //this version should sort from low health to high health. 0 being the lowest 9 being the highest.
- //Enemies* swap;
- //swap = Team[j + 1];
- //Team[j + 1] = Team[j];
- //Team[j] = swap;
- //this version should sort from high health to low health. 0 being the highest 9 being the lowest.
- Enemies* swap;
- swap = Team[j];
- Team[j] = Team[j + 1];
- Team[j + 1] = swap;
- }
- }
- }
- }
- void Game::Sort()
- {
- BubbleSort(RedTeam, 10);
- BubbleSort(BlueTeam, 10);
- }
- void Game::PrintEnemies()
- {
- for (int i = 0; i < 10; i++)
- {
- cout << "RedTeam " << RedTeam[i]->GetName() << "Number: " << i << " " << endl;
- cout << "Damage: " << RedTeam[i]->GetDamage() << endl;
- cout << "Health: " << RedTeam[i]->GetHealth() << endl << endl;
- }
- for (int j = 0; j < 10; j++)
- {
- cout << "Blueteam " << BlueTeam[j]->GetName() << "Number: " << j << " " << endl;
- cout << "Damage: " << BlueTeam[j]->GetDamage() << endl;
- cout << "Health: " << BlueTeam[j]->GetHealth() << endl << endl;
- }
- }
- void Game::Initialize()
- {
- int Random = rand() % 4 + 1;
- RedTeam = new Enemies*[10]; //Pointer to array on the Heap, containing 10 pointers.
- for (int i = 0; i < 10; ++i)
- {
- switch (Random) { //Filling array with enemies on the Heap.
- {
- case 1:
- RedTeam[i] = new Dragon();
- break;
- case 2:
- RedTeam[i] = new WarElephant();
- break;
- case 3:
- RedTeam[i] = new Ape();
- break;
- case 4:
- RedTeam[i] = new Zombie();
- break;
- default:
- break;
- }
- }
- Random = rand() % 4 + 1;
- }
- BlueTeam = new Enemies*[10]; //Pointer to array on the Heap, containing 10 pointers.
- for (int i = 0; i < 10; ++i)
- {
- switch (Random) { //Filling array with enemies on the Heap.
- {
- case 1:
- BlueTeam[i] = new Dragon();
- break;
- case 2:
- BlueTeam[i] = new WarElephant();
- break;
- case 3:
- BlueTeam[i] = new Ape();
- break;
- case 4:
- BlueTeam[i] = new Zombie();
- break;
- default:
- break;
- }
- }
- Random = rand() % 4 + 1;
- }
- cout << "Welcome to battle arena\n\n" << endl;
- }
- void Game::Winner()
- {
- if (redsAlive > 0 && bluesAlive <= 0)cout << endl << "Red team wins!" << endl;
- else if (bluesAlive > 0 && redsAlive <= 0)cout << endl << "Blue team wins!" << endl;
- else if (bluesAlive <= 0 && redsAlive <= 0)cout << endl << "Both teams died!" << endl;
- }
- void Game::Update()
- {
- Initialize();
- Sort();
- GenerateNumbers();
- cin.get();
- BattleSequence();
- Winner();
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement