gpt4 book ai didi

c++ - 基于文本的游戏 - std::string 来自新手的一些问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:55 26 4
gpt4 key购买 nike

我可能有一个非常简单的问题,但作为编程新手,即使多次尝试和错误,我也找不到解决方案。我正在训练我迄今为止在一个简单的基于文本的冒险游戏中学到的知识,但我遇到了问题。首先,我使用的是字符串,但我无法在 if 中使用两个字符串来找出合适的情况。

#include<iostream>
#include <string>
using namespace std;

int main ()
{
string podpalam = "podpalam";
string papier = "papier";
cout << "Stoisz w wielkim ciemny pokoju. W reku trzymasz kawalek PAPIERU, \n a w kieszeni spoczywa pudelko ZAPALEK. Co robisz?" << endl;
cin >> podpalam >> papier;
if ( podpalam == "podpalam")
cout << "Pokoj rozswietla sie od plomieni palacej sie kartki.";
else
cout << "Pomysl przez chwile. To niekoniecznie prawidlowe wyjscie." << endl;
cout << " \nKoniec" << endl;
return 0;
}

所以你可以看到我有两个字符串,两者的名称不同,但只有一个被添加到 if,但你仍然需要 cin 另一个字符串才能继续冒险,但第二个字符串可以只是一个简单的字母或符号。我尝试向 if 添加两个字符串,但我做不到。也许这是不可能的,我正在与空气战斗,但我见过像 Zork 这样使用两个词并且效果完美的游戏。

另一件事是我不希望我的程序在你出错时结束,我希望它再次重新启动。就像你犯了一个错误,你死了,现在你可以重新开始。真的不知道它的命令,也无法在 Google 或 Youtube 中找到答案。

最佳答案

对于初学者来说,尤其是当您正在学习编程时,如果使用大括号,管理您的代码块会容易得多。它们使查看哪些行与哪个 block 相关变得容易得多(尽管你有很好的缩进)。例如:

cin >> podpalam >> papier;
if ( podpalam == "podpalam"){
cout << "Pokoj rozswietla sie od plomieni palacej sie kartki." << endl;
}
else{
cout << "Pomysl przez chwile. To niekoniecznie prawidlowe wyjscie." << endl;
}

cout << " \nKoniec" << endl;

其次,您的部分问题可能是您在 else 中有一个 endl 而在 if 中没有。将其添加到 if 应该会有所帮助,因为行尾字符会强制控制台刷新输出。如果没有,可能是您的字符串正在打印,但它保存在尚未显示在屏幕上的缓冲区中。

关于c++ - 基于文本的游戏 - std::string 来自新手的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com