-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSource.cpp
More file actions
133 lines (101 loc) · 3.55 KB
/
Source.cpp
File metadata and controls
133 lines (101 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include "GameClass.h"
#include <vector>
int main() {
std::srand(time(NULL));
begining://Ñòàðüå è ñïàãåòòè êîä íî ìíå âñå ðàâíî. Òî÷êà ïåðåíîñà â íà÷àëî
int round=0;
int weWantToWatchRounds;
unsigned numberOfAllies, numberOfEnemies ;
std::cout << "Number of allies:";
std::cin >> numberOfAllies;
std::cout << std::endl << "Number of Enemies:";
std::cin >> numberOfEnemies;
std::cout << std::endl;
std::cout << "What round do you want to watch:";
std::cin >> weWantToWatchRounds;
std::cout << std::endl;
std::vector<BaseCharacter*> allieTeam(numberOfAllies,nullptr);
std::vector<BaseCharacter*> enemyTeam(numberOfEnemies,nullptr);
for (auto i = allieTeam.begin(); i != allieTeam.end(); ++i)
{
(*i) = new BaseCharacter();//ðîæäåíèå ïåðñîíàæà
}
for (auto i = enemyTeam.begin(); i != enemyTeam.end(); ++i)
{
(*i) = new BaseCharacter();// Ðîæäåíèå ïåðñîíàæà
}
while (allieTeam.size() != 0 && enemyTeam.size() != 0)
{
int i, j;//ïåðåìåííûå äëÿ ïåðåáîðà
for (i = 0, j = 0; i <allieTeam.size(); ++i, ++j) {// ÷åñòíî ãîâîðÿ äàæå êîììåíòèðîâàòü ýòîò áëîê íå õî÷ó
if (enemyTeam.empty()) break;//Åñëè âðàæåñêèé ìàññèâ ïóñò òî öèêë êîí÷àåòñÿ
if (j >= enemyTeam.size() )j = 0;// åñëè ìû âûõîäèì çà ðàìêè âåêòîðà, òî èäåì â åãî íà÷àëî
enemyTeam[j]->takeDamage(allieTeam[i]->attack());//Âðàã ïîëó÷àåò óðîí
enemyTeam[j]->deathRoll();//Ðîëèò ÷òîáû íå óìåðåòü
if (enemyTeam[j]->isAlive == false)// Ïðîâåðêà ñìåðòè
{
enemyTeam.erase(enemyTeam.begin()+j);//åãî óäàëÿþò èç ñïèñêà
j--; //÷òîáû îñòàòüñÿ íà ïðîøëîì ìåñòå íóæåí äåêðèìåíò òàê êàê âåêòîð ñäâèíåòñÿ
}
}
for (i = 0, j = 0; i < enemyTeam.size(); ++i, ++j) {// Çäåñü âñå êàê â ïðèêîëå âûøå
if (allieTeam.empty()) break;
if (j >= allieTeam.size())j = 0;
allieTeam[j]->takeDamage(enemyTeam[i]->attack());
allieTeam[j]->deathRoll();
if (allieTeam[j]->isAlive == false)
{
allieTeam.erase(allieTeam.begin() + j);
j--;
}
}
round++;
if (round == weWantToWatchRounds) {// Ïàóçà íà êîëëè÷åñòâî ïðîñìîòðåííûõ ðàóíäîâ
int allieHurt = 0;
int enemyHurt = 0;
std::cout << "Allie number:" << allieTeam.size() << std::endl;
for (size_t i = 0; i < allieTeam.size(); i++)
{
if (allieTeam[i]->howMuchDamage() > 16) allieHurt++;//Ðàíåíûå ñîþçíèêè
}
std::cout << "Allie hurted guys:" << allieHurt << std::endl;
std::cout << std::endl;
std::cout << "Enemy number:" << enemyTeam.size() << std::endl;
for (size_t i = 0; i < enemyTeam.size(); i++)
{
if (enemyTeam[i]->howMuchDamage() > 16) enemyHurt++;
}
std::cout << "Enemy hurted guys:" << enemyHurt << std::endl;
std::cout << std::endl;
std::cout << "Number of rounds:" << round << std::endl;
std::cout << std::endl;
std::cout << "What round do you want to watch:";
std::cin >> weWantToWatchRounds;
std::cout << std::endl;
}
}
int theyWillDie = 0;
if(allieTeam.size() != 0)
{
for (size_t i = 0; i < allieTeam.size(); i++)
{
if (allieTeam[i]->howMuchDamage() > 16) theyWillDie++;
}
}
else
{
for (size_t i = 0; i < enemyTeam.size(); i++)
{
if (enemyTeam[i]->howMuchDamage() > 16) theyWillDie++;
}
}
std::cout << "Allie number:" << allieTeam.size() << std::endl;
std::cout << "Enemy number:" << enemyTeam.size() << std::endl;
std::cout << "they survived but will die:" << theyWillDie << std::endl;
std::cout << "Number of rounds:" << round<<std::endl;
char request;
std::cout << "Next fight?(y|n)" << std::endl;
std::cin >> request;
if (request == 'y') goto begining;//Ñòàðüå è ñïàãåòòè êîä, íî ìíå âñå ðàâíî. Ïåðåíîñ â íà÷àëî
return 0;
}