Как вернуться к определенной части кода при каком-либо условии?

Здраствуйте, только-только изучаю с++ и знаю небольшие основы, но уже хочу попробовать сделать текстовую игру в консоли, вопрос, как сделать так, чтобы при выборе 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 шт):

Автор решения: Neuro

Вам для такой цели нужен конечный автомат. Это такой граф, для которого вершинами являются состояния вашей программы, а ребрами случаи перехода. Делается это просто пишем цикл 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
}

→ Ссылка