c++如何返回到某行代码?

rur96b6h  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(114)

TL;DR -我正在寻找一种方法来返回到cin语句之后的一行代码。
我对C++完全陌生,学习还不到一个星期,我给自己设定了一个小挑战,创建一个简短的基于文本的冒险概念证明,有基本的故事和战斗。
我已经编写了我的第一个战斗场景,我在挣扎。下面是我的代码:

int action;

cout << "Health:" << health << "Defence:" << defence << "\n";
cout<< "Actions: 1. Inspect. 2. Attack. 3. Defend";
cin >> action;
if (action == 1) {
    cout << "  Infront of you are 2 drunkars with knives. Not particularly wise, but fairly deadly.\n";
}

字符串
我想做的是,如果玩家选择Inspect(1),它将返回到以下代码行:

cout << "Health:" << health << "Defence:" << defence << "\n";
cout << "Actions: 1. Inspect. 2. Attack. 3. Defend";
cin >> action;


现在,如果玩家选择Inspect,它会告诉他们信息,然后代码结束。当然,我可以在这段代码之后复制并粘贴代码,但前提是玩家不会再次选择Inspect。
我想我可以通过创建一个名为Inspectint来放置在while循环中,每当玩家选择检查时,同名的int就会增加1。但我实际上不知道如何使它返回到脚本行的顶部,所以它没有真正帮助。
再一次,完全C++ noob,所以我为任何愚蠢道歉。

brtdzjyr

brtdzjyr1#

简单地把你的代码放入一个循环中,例如:

int action;

do
{
    cout << "Health:" << health << " Defense:" << defense << "\n";
    cout << "Actions: 1. Inspect. 2. Attack. 3. Defend. 4. Exit";
    cin >> action;
    switch (action) {
        case 1: {
            cout << "  Infront of you are 2 drunkards with knives. Not particularly wise, but fairly deadly.\n";
            break;
        }
        case 2: {
            // attack something...
            break;
        }
        case 3: {
            // defend from something...
            break;
        }
    }
}
while (action != 4);

字符串

相关问题