(dev C++を使用しています)私はC++を初めて使ったので、基本的なテキストRPGゲームを作ることにしました。私は何度もプログラムをデバッグしましたが、それはまったく何も起こりません。私はプログラムをテストするたびに、私は旅行者を攻撃したいと言うことができる、それはTESTを印刷します(私は問題を解決することができるまで、私は一度そこに置いた)。 if(attack == "talk" || "Talk")をif(attack == "attack" || "Attack")で切り替えると、印刷した旅行者と話をしたいと思います。彼が武装していないことを見つける旅行者!すべての助けに感謝します。これは常にtrue
ように、第2の部分"Right"
を評価してifステートメントの問題 - 比較演算子
||
演算子を使用している
#include <iostream>
#include <string>
using namespace std;
int main() {
string dir, attack, trade;
string inventory[] = {"Food", "Sword", "Armor"};
cout << "Do you go left, right or forward?" << endl;
cin >> dir;
if(dir=="left"||"Left") {
cout << "You decide to go left" << endl;
cout << "On the way you meet a traveller, do you attack or talk?" << endl;
cin >> attack;
if(attack=="talk"||"Talk") {
cout << "TEST" << endl;
}
else if(attack=="attack"||"Attack") {
cout << "You rush forward and murder the traveller to find he was un-armed!\a" << endl;
}
else {
cout << "test" << endl;
}
}
else if(dir=="Right"||"Right") {
cout << "You decide to go right" << endl;
}
else {
cout << "You decide to go forward" << endl;
}
system("PAUSE");
return 0;
}
'dir ==" left "|| dir ==" Left "'に変更します。それ以外の場合は常に「真」になります。 – songyuanyao
インターネットで "C++ transform string"を検索します。比較する前に文字列をすべて大文字またはすべて小文字に変換する場合は、比較を1つのみ行う必要があります。 –
ところで、 "正しい"方向のチェックにタイプミスがあります。両方の比較テキストは同じです。 –