Я написал код для генерации плеера, но застрял на том, как генерировать 2-й.В конечном итоге мне нужно будет поработать с целой кучей из них. / N Должно быть что-то чрезвычайно элементарное, чего мне не хватает ...
Определение класса
class Player
{
public:
Player(personal_information pi, player_skill pskill, player_trait ptrait);
void generatePlayer();
private:
personal_information pinfo;
player_skill pskill;
player_trait ptrait;
};
Реализация класса
Player::Player(personal_information pi, player_skill psk, player_trait pt)
{
this->pinfo = pi;
this->pskill = psk;
this->ptrait = pt;
}
Создание удовольствия игрока
void Player::generatePlayer()
{
printf(" %s %s (%dyo, %dcm, %dkg)\n", this->pinfo.first_name, this->pinfo.last_name, this->pinfo.years, this->pinfo.height, this->pinfo.weight);
printf(" Can play as (%s)\n", this->pskill.position);
printf(" Player Skills:\n");
printf(" Fitness (%d)\n", this->pskill.fitness);
printf(" Strenght (%d)\n", this->pskill.strenght);
printf(" Goalkeeping (%d)\n", this->pskill.goalkeeping);
printf(" Passing (%d)\n", this->pskill.passing);
printf(" Shooting (%d)\n", this->pskill.shooting);
printf(" Traits:");
// printf("\n");
// printf(" Player is");
if (true == this->ptrait.tall) { printf(" Tall"); };
if (true == this->ptrait.raz) {printf(" Short");};
if (true == this->ptrait.fat) {printf(" Fat");};
if (true == this->ptrait.skinny) {printf(" Skinny");};
printf(".\n");
printf("\n");
}
Main
int main()
{
initSystem();
// Random player generator data
personal_information pi = { 0 };
pi.first_name = nameEng[rand() % ARR_SIZE(nameEng)];
pi.last_name = nameEngSurname[rand() % ARR_SIZE(nameEngSurname)];
pi.years = Min_Age_Player + random(Min_Age_Player - Max_Age_Player);
pi.height = MIN_HEIGHT + random(MAX_HEIGHT - MIN_HEIGHT);
// pi.height = 140;
pi.weight = MIN_WEIGHT + random(MAX_WEIGHT - MIN_WEIGHT);
// pi.weight = 120;
player_skill psk = { 0 };
psk.position = positionsList[rand() % ARR_SIZE(positionsList)];
psk.fitness = random(10);
psk.strenght = random(10);
psk.goalkeeping = random(5);
psk.passing = random(10);
psk.shooting = random(10);
player_trait pt = { 0 };
// tall/short
if (pi.height > 186) {pt.tall = true;
psk.goalkeeping = psk.goalkeeping + 2;
};
if (pi.height < 165) { pt.raz = true;
psk.goalkeeping = psk.goalkeeping - 2;
};
// fat/skinny
if (pi.weight > 100) { pt.fat = true;
psk.fitness = psk.fitness - 2;
psk.strenght = psk.strenght + 2;
};
if (pi.weight < 85) { pt.skinny = true;
psk.strenght = psk.strenght - 2;
};
Player P1genStats(pi, psk, pt);
P1genStats.generatePlayer();
Player P2genStats(pi, psk, pt);
P2genStats.generatePlayer();
return 0;
}
Я был достаточно наивен, чтобы думать, что это даст мне 2 отдельных набора значений, но когда я его запусту,это дает мне один и тот же набор значений дважды.
По сути, дает мне один и тот же игрок дважды.
В идеале я бы не хотел, чтобы это было даже в основном, что было бы самым элегантным способомнаписать одну функцию для генерации игрока с такой статистикой?