Это просто потому, что ваш выбор TURN
находится внутри выбора INSPECT
:
if(choice == "INSPECT") {
...
if(choice == "BACK") {
cout << "You went back." << endl;
goto stupid2;
} else if(choice == "TURN"){
...
}
}
, вы должны переместить его на TURN
из блока INSPECT
, если это так:
if(choice == "INSPECT") {
...
}
...
if(choice == "BACK") {
cout << "You went back." << endl;
goto stupid2;
} else if(choice == "TURN"){
...
}
Подробнее:
Вам следует избегать использования goto
в своем коде, потому что отладка кода goto
действительно сложна, пожалуйста, читайте больше на Код спагетти .Вы можете реструктурировать свой код, используя цикл while
для игрового цикла и function
для каждого на ваш выбор.
Вот рабочая версия с while
петлей:
#include <iostream>
using namespace std;
void startRoom()
{
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " |__________________________________________" << endl;
cout << " /..........................................." << endl;
cout << " /............................................" << endl;
cout << " /............................................." << endl;
cout << " /.............................................." << endl;
cout << " /..............................................." << endl;
cout << " /................................................" << endl;
cout << " /................................................." << endl;
cout << " /.................................................." << endl;
cout << " /..................................................." << endl;
cout << " /...................................................." << endl;
cout << " /....................................................." << endl;
cout << " /......................................................" << endl;
cout << " /......................................................." << endl;
cout << " /........................................................" << endl;
cout << " /........................................................." << endl;
cout << " /.........................................................." << endl;
cout << "/..........................................................." << endl;
cout << "You wake-up in a empty room, you are on the ground." << endl;
}
void standChoice()
{
cout << " you stood up." << endl;
cout << " | ---------------------------- " << endl;
cout << " | | ---------------------- | " << endl;
cout << " | | | _____ | | " << endl;
cout << " | | | / | | | " << endl;
cout << " | | | | | | | " << endl;
cout << " | | | \ / | | " << endl;
cout << " | | | __| |___ | | " << endl;
cout << " | | | / \ | | " << endl;
cout << " | | |___|____________|_____| | " << endl;
cout << " | |__________________________| " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " |_________________________________________________________" << endl;
cout << " /.........................................................." << endl;
cout << "/..........................................................." << endl;
cout << " You see a painting on the wall." << endl;
}
void notChoice()
{
cout << "That is not a choice." << endl;
}
void inspectChoice()
{
cout << " " << endl;
cout << " __________________________________________________ " << endl;
cout << " | | " << endl;
cout << " | | " << endl;
cout << " | | " << endl;
cout << " | | " << endl;
cout << " | _____________ | " << endl;
cout << " | / \ | " << endl;
cout << " | | | | " << endl;
cout << " | | __ __ | | " << endl;
cout << " | | O | O | | " << endl;
cout << " | | | | | " << endl;
cout << " | | |_ | | " << endl;
cout << " | | | | " << endl;
cout << " | \ ----- / | " << endl;
cout << " | _____| |_______ | " << endl;
cout << " | __/ \____ | " << endl;
cout << " | / \ | " << endl;
cout << " | / \ | " << endl;
cout << " | | | | " << endl;
cout << " | | | | " << endl;
cout << " |_____|______________________________________|_____| " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "You inspected the painting." << endl;
}
void turnChoice()
{
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " | " << endl;
cout << " /-\/-\ | " << endl;
cout << " | | | | " << endl;
cout << " | | | | " << endl;
cout << " _____\ | /__ | " << endl;
cout << " / \ | " << endl;
cout << " | _____ _____ | | " << endl;
cout << " | W | | " << endl;
cout << " \____ __/ | " << endl;
cout << " / \ | " << endl;
cout << "__________________/_ _\____________________| " << endl;
cout << "....................| |.......................\ " << endl;
cout << "....................| |........................\ " << endl;
cout << "....................|_/-\_|.........................\ " << endl;
cout << ".....................................................\ " << endl;
cout << "......................................................\ " << endl;
cout << ".......................................................\ " << endl;
cout << "........................................................\ " << endl;
cout << ".........................................................\ " << endl;
cout << "..........................................................\ " << endl;
cout << "............................................................" << endl;
cout << "You saw Kyung" << endl;
}
void gameLoop()
{
string choice;
startRoom();
cout << "Choices: type STAND to stand." << endl;
while(true)
{
cin >> choice;
if(choice == "STAND")
{
standChoice();
cout << "Choices, type TURN to turn around, or type INSPECT to inspect painting." << endl;
}
else if(choice == "INSPECT")
{
inspectChoice();
cout << "Type BACK to go back." << endl;
}
else if(choice == "TURN")
{
turnChoice();
cout << "Type BACK to go back." << endl;
}
else if(choice == "BACK")
{
cout << "You went back." << endl;
standChoice();
cout << "Choices, type TURN to turn around, or type INSPECT to inspect painting." << endl;
}
else if(choice == "EXIT")
{
break;
}
else
{
notChoice();
cout << "Choices: type STAND to stand." << endl;
}
}
}
int main()
{
gameLoop();
return 0;
}