Я работал над созданием боевого симуала RPG для практики кода.Один «бой» представляет собой трехмерный вектор, основанный на количестве раундов, количестве бойцов и количестве бросков (на бойца в каждом раунде) в этом порядке.После нескольких часов поиска я собрал этот код.Я знаю, что есть более простые способы сделать это (повышение / матрица и т. Д.), Но я хочу закончить это и узнать, где мои STL::vector
манипуляции идут не так
#include <vector>
#include <algorithm>
using namespace std;
class Combat{
private:
int numberOfRounds;
int numberOfCombatants;
int numberOfRolls;
int sidesDie;
vector <vector <vector <int> > > result;
public:
void printMenu();
void battle();
void printResult();
int roll(int die);
};
int Combat::roll(int die)
{
die=sidesDie;
srand(time(0));
int r=(1+rand()%die);
return r;
void Combat::battle(){
cout<<setw(10)<<" Computing results of battle ...\n";
int i,j,k;
for (i=0;i<numberOfRounds;++i){
cout<<"Round number "<<i+1;
for(j=0;j<numberOfCombatants;++j){
for(k=0;k<numberOfRolls;++k){
result[i][j].push_back(roll(sidesDie));
}
cout<<endl;
}
cout<<endl;
}
}
Предполагается, что приведенный выше кодсоздайте трехмерный векторный «результат», который должен хранить броски кубиков внутри клеток на игрока за раунд.Сбой во время выполнения без отображения ошибки.я подозреваю, что ошибка заключается в том, что я храню значения внутри трехмерного вектора