C ++的新手,这是学校的作业。我应该做一个猜谜游戏,显示以下消息:
您下侧太冷(显示-----)
您的下方很烫(显示---)
您的上方很烫(显示+++)
上父您太冷了(显示+++++)
你在那里(###### YOU WON ####)
输入猜想后,我总是遇到“ +++++++++ ...”或“ ------...”的墙,我不知道为什么。这是我到目前为止的代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int num, guess;
bool correct = false;
srand((int)time(0));
//generating random number 1-100
num = rand()%100+1;
cout<<num;
cout<<"Let's play a game! I'll think of a number and you can try to guess it."<<endl;
cout<<"Let's begin! I'm thinking of a number 1-100. What's my number?"<<endl;
cin>>guess;
while(correct==false)
{
if(guess<num)
{
cout<<"---";
}
if (guess<(num/2))
{
cout<<"-----";
}
if(guess>num)
{
cout<<"+++";
}
if (guess>(num+num/2))
{
cout<<"+++++";
}
if(guess==num)
{
cout<<"########YOU WON!########";
correct=true;
}
}
}
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
我不确定实现此猜谜游戏所需的所有详细信息,但这是我能说的。当您在第一次尝试中没有猜到正确答案时,就会陷入无限循环。这是因为您的while
循环条件基于一个布尔值,该布尔值仅被分配给条件内以猜测正确的答案(您在if
循环中的最终while
语句)。
第二,您的if语句可以在每次迭代中打印多个字符串。例如,如果用户猜测10
且随机数为80
,则前两个if语句为true,并且由于10 < 80
为true和{{1} }也是如此。考虑根据条件嵌套if语句。
话虽如此,这是我运行的一个实现。通过这段代码并理解它。我在while循环中为用户添加了一个提示,以便用户可以继续猜测该数字,直到正确为止。希望这可以帮助。
注意:我没有对此代码进行深入测试,因为您有责任根据需要理解和调试代码,因为这是任务。
10 < 80/2 //ie 40