Как правильно вернуть параметр и передать в main C++?
Задали сделать небольшую игру, подскажите, как правильно вернуть параметр и передать значение, выбранное по циклу, в main? Какие данные передать в параметр и что вызвать в основной функции из функции createCharacter() ?
P.S. там есть ещё 2 функции void, их сюда не вставлял.
struct UserCharacter {
int x = 0;
int y = 0;
float health = 0;
int armor = 0;
int damage = 0;
};
static UserCharacter createCharacter(UserCharacter& character) {
using namespace std;
char ch;
cout << "******** Welcome to Dungeon & Dragon ********\n";
cout << "******* Select a chatacter class *******\n";
cout << "Press one to select a warrior or two to select a mage:\n ";
ch = _getwch();
do {
if (ch == 'w') {
UserCharacter character = { 10, 10, 125, 15, 11 };
cout << "Selected class - warrior\n";
}
else if (ch == 'm') {
UserCharacter charater = { 10, 10, 100, 10, 20 };
cout << "Selected class - mage\n";
}
return character;
} while (ch != ' ');
cout << "Try again\n";
}
int main() {
using namespace std;
createCharacter();
trainedGame();
system("pause");
return 0;
}
static void createCharacter(UserCharacter& character) {
...
/* Возврат значений происходит через ссылку, переданную в параметре.
В return ничего возвращать не нужно.
Создавать другие объекты UserCharacter не нужно. */
character.x = 10;
character.y = 10;
...
}
int main() {
UserCharacter character;
...
createCharacter(character);
...
}
Спасибо большое разобрался!)
Вот только при вызове функции createCharacter компилятор ругался на ссылку переменной character, я убрал её, но значение он сохранил