Как вернуться к определенной части кода при каком-либо условии?
Здраствуйте, только-только изучаю с++ и знаю небольшие основы, но уже хочу попробовать сделать текстовую игру в консоли, вопрос, как сделать так, чтобы при выборе case 2 выводилось что "данная функция в разработке, потом system("pause"); и далее возвращало бы обратно в меню которое выше, но как это сделать? Это первое. Второе: Как сделать так чтобы в подтверждении выхода "Вы действительно хотите выйти из игры?" и при нажатии "Нет" возвращало бы снова в рабочее меню сверху. Так же если вы обнаружили какую-то ещё ошибку в коде, то прошу меня исправить, буду благодарен!
Код:
int SelectMenu;
char PlayerName[12];
int ReallyQuit;
{
cout << "1. Новая игра." << endl;
cout << "\n";
cout << "2. Загрузить игру." << endl;
cout << "\n";
cout << "3. Настройки." << endl;
cout << "\n";
cout << "4. Инструкция." << endl;
cout << "\n";
cout << "5. Выйти из игры." << endl;
cin >> SelectMenu;
switch (SelectMenu)
{
case 1:
cout << "Введите ваше имя: " << endl;
cin >> PlayerName;
system("pause");
break;
case 2:
cout << "Данная функция находиться в разработке." << endl;
system("pause");
//Надо как-то вернуться к меню которое выше, и выполнить его снова.
break;
case 3:
cout << "Данная функция находиться в разработке." << endl;
system("pause");
//Надо как-то вернуться к меню которое выше, и выполнить его снова.
break;
case 4:
cout << "Для того чтобы выбрать вариант ответа, вводите номер нужного вам варианта с клавиатуры." << endl;
system("pause");
//Надо как-то вернуться к меню которое выше, и выполнить его снова.
break;
case 5:
cout << "Вы действительно хотите выйти из игры?" << endl;
cout << "1. Да." << "\n" << "2. Нет." << endl;
cin >> ReallyQuit;
if (ReallyQuit = 1)
{
return;
}
if (ReallyQuit = 2)
{
//Надо как-то вернуться к меню которое выше, и выполнить его снова.
}
else
{
cout << "Кажеться вы ввели не верную команду, попробуйте снова" << endl;
system("pause");
//Надо как-то вернуться к меню которое выше, и выполнить его снова.
}
}
} // тут будет продолжаться код игры при выборе новой игры и ввода имени
}
Ответы (1 шт):
Вам для такой цели нужен конечный автомат. Это такой граф, для которого вершинами являются состояния вашей программы, а ребрами случаи перехода. Делается это просто пишем цикл while и заводим переменной state и рассматриваем случаи, например, если у вас переменная a==b, то переходим в состояние 3, а если кто то ввел ник, то переходим в состояние 7 из которого мы пишем break. Выглядит примерно так:
short int state = 0;
while(true){
if (state==0){
/* code */
}
else if (state==1){
/* code */
}
/ i t c
}